Add more digests to AndroidKeyStore API.
This adds MD5, SHA-1, SHA-224, SHA-384, and SHA-512. SHA-256 was already there. MD5 is not exposed for HMAC on purpose, because MD5 has been deprecated for years. Bug: 18088752 Change-Id: I4df3d3f6cf10805c7910a1bdb577a91c85055945
This commit is contained in:
@@ -35,9 +35,33 @@ import javax.crypto.MacSpi;
|
||||
*/
|
||||
public abstract class KeyStoreHmacSpi extends MacSpi implements KeyStoreCryptoOperation {
|
||||
|
||||
public static class HmacSHA1 extends KeyStoreHmacSpi {
|
||||
public HmacSHA1() {
|
||||
super(KeyStoreKeyConstraints.Digest.SHA1);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HmacSHA224 extends KeyStoreHmacSpi {
|
||||
public HmacSHA224() {
|
||||
super(KeyStoreKeyConstraints.Digest.SHA224);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HmacSHA256 extends KeyStoreHmacSpi {
|
||||
public HmacSHA256() {
|
||||
super(KeyStoreKeyConstraints.Digest.SHA256, 256 / 8);
|
||||
super(KeyStoreKeyConstraints.Digest.SHA256);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HmacSHA384 extends KeyStoreHmacSpi {
|
||||
public HmacSHA384() {
|
||||
super(KeyStoreKeyConstraints.Digest.SHA384);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HmacSHA512 extends KeyStoreHmacSpi {
|
||||
public HmacSHA512() {
|
||||
super(KeyStoreKeyConstraints.Digest.SHA512);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,9 +76,9 @@ public abstract class KeyStoreHmacSpi extends MacSpi implements KeyStoreCryptoOp
|
||||
private IBinder mOperationToken;
|
||||
private Long mOperationHandle;
|
||||
|
||||
protected KeyStoreHmacSpi(@KeyStoreKeyConstraints.DigestEnum int digest, int macSizeBytes) {
|
||||
protected KeyStoreHmacSpi(@KeyStoreKeyConstraints.DigestEnum int digest) {
|
||||
mDigest = digest;
|
||||
mMacSizeBytes = macSizeBytes;
|
||||
mMacSizeBytes = KeyStoreKeyConstraints.Digest.getOutputSizeBytes(digest);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user