Merge "Keystore uses 0 for invalid operation handles." into mnc-dev

This commit is contained in:
Alex Klyubin
2015-05-06 17:26:07 +00:00
committed by Android (Google) Code Review
4 changed files with 19 additions and 13 deletions

View File

@@ -104,13 +104,13 @@ public class AndroidKeyStoreProvider extends Provider {
*
* <p>The following primitives are supported: {@link Cipher} and {@link Mac}.
*
* @return KeyStore operation handle or {@code null} if the provided primitive's KeyStore
* operation is not in progress.
* @return KeyStore operation handle or {@code 0} if the provided primitive's KeyStore operation
* is not in progress.
*
* @throws IllegalArgumentException if the provided primitive is not supported or is not backed
* by AndroidKeyStore provider.
*/
public static Long getKeyStoreOperationHandle(Object cryptoPrimitive) {
public static long getKeyStoreOperationHandle(Object cryptoPrimitive) {
if (cryptoPrimitive == null) {
throw new NullPointerException();
}

View File

@@ -134,7 +134,7 @@ public abstract class KeyStoreCipherSpi extends CipherSpi implements KeyStoreCry
* error conditions in between.
*/
private IBinder mOperationToken;
private Long mOperationHandle;
private long mOperationHandle;
private KeyStoreCryptoOperationChunkedStreamer mMainDataStreamer;
/**
@@ -247,7 +247,7 @@ public abstract class KeyStoreCipherSpi extends CipherSpi implements KeyStoreCry
mIvHasBeenUsed = false;
mAdditionalEntropyForBegin = null;
mOperationToken = null;
mOperationHandle = null;
mOperationHandle = 0;
mMainDataStreamer = null;
mCachedException = null;
}
@@ -258,7 +258,7 @@ public abstract class KeyStoreCipherSpi extends CipherSpi implements KeyStoreCry
mOperationToken = null;
mKeyStore.abort(operationToken);
}
mOperationHandle = null;
mOperationHandle = 0;
mMainDataStreamer = null;
mAdditionalEntropyForBegin = null;
mCachedException = null;
@@ -322,6 +322,9 @@ public abstract class KeyStoreCipherSpi extends CipherSpi implements KeyStoreCry
if (mOperationToken == null) {
throw new IllegalStateException("Keystore returned null operation token");
}
if (mOperationHandle == 0) {
throw new IllegalStateException("Keystore returned invalid operation handle");
}
loadAlgorithmSpecificParametersFromBeginResult(keymasterOutputArgs);
mFirstOperationInitiated = true;
@@ -471,7 +474,7 @@ public abstract class KeyStoreCipherSpi extends CipherSpi implements KeyStoreCry
}
@Override
public Long getOperationHandle() {
public long getOperationHandle() {
return mOperationHandle;
}

View File

@@ -25,7 +25,7 @@ public interface KeyStoreCryptoOperation {
/**
* Gets the KeyStore operation handle of this crypto operation.
*
* @return handle or {@code null} if the KeyStore operation is not in progress.
* @return handle or {@code 0} if the KeyStore operation is not in progress.
*/
Long getOperationHandle();
long getOperationHandle();
}

View File

@@ -75,7 +75,7 @@ public abstract class KeyStoreHmacSpi extends MacSpi implements KeyStoreCryptoOp
// Fields below are reset when engineDoFinal succeeds.
private KeyStoreCryptoOperationChunkedStreamer mChunkedStreamer;
private IBinder mOperationToken;
private Long mOperationHandle;
private long mOperationHandle;
protected KeyStoreHmacSpi(int keymasterDigest) {
mKeymasterDigest = keymasterDigest;
@@ -128,7 +128,7 @@ public abstract class KeyStoreHmacSpi extends MacSpi implements KeyStoreCryptoOp
mOperationToken = null;
mKeyStore.abort(operationToken);
}
mOperationHandle = null;
mOperationHandle = 0;
mChunkedStreamer = null;
}
@@ -138,7 +138,7 @@ public abstract class KeyStoreHmacSpi extends MacSpi implements KeyStoreCryptoOp
mOperationToken = null;
mKeyStore.abort(operationToken);
}
mOperationHandle = null;
mOperationHandle = 0;
mChunkedStreamer = null;
}
@@ -187,6 +187,9 @@ public abstract class KeyStoreHmacSpi extends MacSpi implements KeyStoreCryptoOp
if (mOperationToken == null) {
throw new IllegalStateException("Keystore returned null operation token");
}
if (mOperationHandle == 0) {
throw new IllegalStateException("Keystore returned invalid operation handle");
}
mChunkedStreamer = new KeyStoreCryptoOperationChunkedStreamer(
new KeyStoreCryptoOperationChunkedStreamer.MainDataStream(
@@ -249,7 +252,7 @@ public abstract class KeyStoreHmacSpi extends MacSpi implements KeyStoreCryptoOp
}
@Override
public Long getOperationHandle() {
public long getOperationHandle() {
return mOperationHandle;
}
}