diff --git a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl index 7efcdd65b0..b8da5c4840 100644 --- a/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl +++ b/staging/security/see/hwcrypto/aidl/aidl_api/android.hardware.security.see/current/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl @@ -36,6 +36,7 @@ interface IHwCryptoKey { android.hardware.security.see.hwcrypto.IHwCryptoKey.DiceCurrentBoundKeyResult deriveCurrentDicePolicyBoundKey(in android.hardware.security.see.hwcrypto.IHwCryptoKey.DiceBoundDerivationKey derivationKey); android.hardware.security.see.hwcrypto.IHwCryptoKey.DiceBoundKeyResult deriveDicePolicyBoundKey(in android.hardware.security.see.hwcrypto.IHwCryptoKey.DiceBoundDerivationKey derivationKey, in byte[] dicePolicyForKeyVersion); android.hardware.security.see.hwcrypto.IHwCryptoKey.DerivedKey deriveKey(in android.hardware.security.see.hwcrypto.IHwCryptoKey.DerivedKeyParameters parameters); + android.hardware.security.see.hwcrypto.IHwCryptoOperations getHwCryptoOperations(); enum DeviceKeyId { DEVICE_BOUND_KEY, BATCH_KEY, diff --git a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl index 939014a554..075825d809 100644 --- a/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl +++ b/staging/security/see/hwcrypto/aidl/android/hardware/security/see/hwcrypto/IHwCryptoKey.aidl @@ -15,6 +15,7 @@ */ package android.hardware.security.see.hwcrypto; +import android.hardware.security.see.hwcrypto.IHwCryptoOperations; import android.hardware.security.see.hwcrypto.IOpaqueKey; import android.hardware.security.see.hwcrypto.KeyPolicy; @@ -183,4 +184,19 @@ interface IHwCryptoKey { * HalErrorCode otherwise. */ DerivedKey deriveKey(in DerivedKeyParameters parameters); + + /* + * getHwCryptoOperations() - Returns an interface used to work on opaque keys. This interface + * can also be used to operate on any opaque key generated by + * hwkeyDeriveVersioned, even if this key has been generated after + * retrieving a IHwCryptoOperations binder object, as long as the + * parent IHwCryptoDeviceKeyAccess is not dropped between retrieving + * the IHwCryptoOperations binder object and deriving the key. + * IHwCryptoOperations can also be used to create opaque keys that + * are not bound to the device. + * + * Return: + * IHwCryptoOperations on success + */ + IHwCryptoOperations getHwCryptoOperations(); }