Surface KeyPermanentlyInvalidatedException for per-op auth keys.
Bug: 20642549 Change-Id: Ibda270921f13a1fd695264583b0e4bd255f63aed
This commit is contained in:
@@ -320,6 +320,16 @@ public abstract class KeyStoreCipherSpi extends CipherSpi implements KeyStoreCry
|
||||
mMainDataStreamer = new KeyStoreCryptoOperationChunkedStreamer(
|
||||
new KeyStoreCryptoOperationChunkedStreamer.MainDataStream(
|
||||
mKeyStore, opResult.token));
|
||||
|
||||
if (opResult.resultCode != KeyStore.NO_ERROR) {
|
||||
// The operation requires user authentication. Check whether such authentication is
|
||||
// possible (e.g., the key may have been permanently invalidated).
|
||||
InvalidKeyException e =
|
||||
mKeyStore.getInvalidKeyException(mKey.getAlias(), opResult.resultCode);
|
||||
if (!(e instanceof UserNotAuthenticatedException)) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -183,6 +183,16 @@ public abstract class KeyStoreHmacSpi extends MacSpi implements KeyStoreCryptoOp
|
||||
mChunkedStreamer = new KeyStoreCryptoOperationChunkedStreamer(
|
||||
new KeyStoreCryptoOperationChunkedStreamer.MainDataStream(
|
||||
mKeyStore, mOperationToken));
|
||||
|
||||
if (opResult.resultCode != KeyStore.NO_ERROR) {
|
||||
// The operation requires user authentication. Check whether such authentication is
|
||||
// possible (e.g., the key may have been permanently invalidated).
|
||||
InvalidKeyException e =
|
||||
mKeyStore.getInvalidKeyException(mKey.getAlias(), opResult.resultCode);
|
||||
if (!(e instanceof UserNotAuthenticatedException)) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user