Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 220d33ce authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Keystore 2.0 SPI: Switch to aidl union KeyParameters"

parents 17f8ae5f ef3aaa2d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -309,7 +309,7 @@ public abstract class AndroidKeyStore3DESCipherSpi extends AndroidKeyStoreCipher
        if (parameters != null) {
            for (KeyParameter p : parameters) {
                if (p.tag == KeymasterDefs.KM_TAG_NONCE) {
                    returnedIv = p.blob;
                    returnedIv = p.value.getBlob();
                    break;
                }
            }
+1 −1
Original line number Diff line number Diff line
@@ -330,7 +330,7 @@ abstract class AndroidKeyStoreAuthenticatedAESCipherSpi extends AndroidKeyStoreC
        if (parameters != null) {
            for (KeyParameter p : parameters) {
                if (p.tag == KeymasterDefs.KM_TAG_NONCE) {
                    returnedIv = p.blob;
                    returnedIv = p.value.getBlob();
                    break;
                }
            }
+2 −2
Original line number Diff line number Diff line
@@ -366,10 +366,10 @@ public class AndroidKeyStoreProvider extends Provider {
        for (Authorization a : response.metadata.authorizations) {
            switch (a.keyParameter.tag) {
                case KeymasterDefs.KM_TAG_ALGORITHM:
                    keymasterAlgorithm = a.keyParameter.integer;
                    keymasterAlgorithm = a.keyParameter.value.getAlgorithm();
                    break;
                case KeymasterDefs.KM_TAG_DIGEST:
                    if (keymasterDigest == -1) keymasterDigest = a.keyParameter.integer;
                    if (keymasterDigest == -1) keymasterDigest = a.keyParameter.value.getDigest();
                    break;
            }
        }
+19 −12
Original line number Diff line number Diff line
@@ -102,7 +102,8 @@ public class AndroidKeyStoreSecretKeyFactorySpi extends SecretKeyFactorySpi {
                        insideSecureHardware =
                                KeyStore2ParameterUtils.isSecureHardware(a.securityLevel);
                        securityLevel = a.securityLevel;
                        origin = KeyProperties.Origin.fromKeymaster(a.keyParameter.integer);
                        origin = KeyProperties.Origin.fromKeymaster(
                                a.keyParameter.value.getOrigin());
                        break;
                    case KeymasterDefs.KM_TAG_KEY_SIZE:
                        long keySizeUnsigned = KeyStore2ParameterUtils.getUnsignedInt(a);
@@ -113,45 +114,51 @@ public class AndroidKeyStoreSecretKeyFactorySpi extends SecretKeyFactorySpi {
                        keySize = (int) keySizeUnsigned;
                        break;
                    case KeymasterDefs.KM_TAG_PURPOSE:
                        purposes |= KeyProperties.Purpose.fromKeymaster(a.keyParameter.integer);
                        purposes |= KeyProperties.Purpose.fromKeymaster(
                                a.keyParameter.value.getKeyPurpose());
                        break;
                    case KeymasterDefs.KM_TAG_PADDING:
                        int paddingMode = a.keyParameter.value.getPaddingMode();
                        try {
                            if (a.keyParameter.integer == KeymasterDefs.KM_PAD_RSA_PKCS1_1_5_SIGN
                                    || a.keyParameter.integer == KeymasterDefs.KM_PAD_RSA_PSS) {
                            if (paddingMode == KeymasterDefs.KM_PAD_RSA_PKCS1_1_5_SIGN
                                    || paddingMode == KeymasterDefs.KM_PAD_RSA_PSS) {
                                @KeyProperties.SignaturePaddingEnum String padding =
                                        KeyProperties.SignaturePadding.fromKeymaster(
                                                a.keyParameter.integer);
                                                paddingMode);
                                signaturePaddingsList.add(padding);
                            } else {
                                @KeyProperties.EncryptionPaddingEnum String jcaPadding =
                                        KeyProperties.EncryptionPadding.fromKeymaster(
                                                a.keyParameter.integer);
                                                paddingMode);
                                encryptionPaddingsList.add(jcaPadding);
                            }
                        } catch (IllegalArgumentException e) {
                            throw new ProviderException("Unsupported padding: "
                                                + a.keyParameter.integer);
                                                + paddingMode);
                        }
                        break;
                    case KeymasterDefs.KM_TAG_DIGEST:
                        digestsList.add(KeyProperties.Digest.fromKeymaster(a.keyParameter.integer));
                        digestsList.add(KeyProperties.Digest.fromKeymaster(
                                a.keyParameter.value.getDigest()));
                        break;
                    case KeymasterDefs.KM_TAG_BLOCK_MODE:
                        blockModesList.add(
                                KeyProperties.BlockMode.fromKeymaster(a.keyParameter.integer)
                                KeyProperties.BlockMode.fromKeymaster(
                                        a.keyParameter.value.getBlockMode())
                        );
                        break;
                    case KeymasterDefs.KM_TAG_USER_AUTH_TYPE:
                        int authenticatorType = a.keyParameter.value.getHardwareAuthenticatorType();
                        if (KeyStore2ParameterUtils.isSecureHardware(a.securityLevel)) {
                            keymasterHwEnforcedUserAuthenticators = a.keyParameter.integer;
                            keymasterHwEnforcedUserAuthenticators = authenticatorType;
                        } else {
                            keymasterSwEnforcedUserAuthenticators = a.keyParameter.integer;
                            keymasterSwEnforcedUserAuthenticators = authenticatorType;
                        }
                        break;
                    case KeymasterDefs.KM_TAG_USER_SECURE_ID:
                        keymasterSecureUserIds.add(
                                KeymasterArguments.toUint64(a.keyParameter.longInteger));
                                KeymasterArguments.toUint64(
                                        a.keyParameter.value.getLongInteger()));
                        break;
                    case KeymasterDefs.KM_TAG_ACTIVE_DATETIME:
                        keyValidityStart = KeyStore2ParameterUtils.getDate(a);
+1 −1
Original line number Diff line number Diff line
@@ -300,7 +300,7 @@ abstract class AndroidKeyStoreUnauthenticatedAESCipherSpi extends AndroidKeyStor
        if (parameters != null) {
            for (KeyParameter p : parameters) {
                if (p.tag == KeymasterDefs.KM_TAG_NONCE) {
                    returnedIv = p.blob;
                    returnedIv = p.value.getBlob();
                    break;
                }
            }
Loading