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

Commit 8b25958b authored by Paul Crowley's avatar Paul Crowley Committed by Gerrit Code Review
Browse files

Merge "Add getKeyCharacteristics method to KeyMint"

parents b76d8e27 dadb18dd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -48,5 +48,6 @@ interface IKeyMintDevice {
  void deviceLocked(in boolean passwordOnly, in @nullable android.hardware.security.secureclock.TimeStampToken timestampToken);
  void earlyBootEnded();
  byte[] convertStorageKeyToEphemeral(in byte[] storageKeyBlob);
  android.hardware.security.keymint.KeyCharacteristics[] getKeyCharacteristics(in byte[] keyBlob, in byte[] appId, in byte[] appData);
  const int AUTH_TOKEN_MAC_LENGTH = 32;
}
+24 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.hardware.security.keymint.AttestationKey;
import android.hardware.security.keymint.BeginResult;
import android.hardware.security.keymint.HardwareAuthToken;
import android.hardware.security.keymint.IKeyMintOperation;
import android.hardware.security.keymint.KeyCharacteristics;
import android.hardware.security.keymint.KeyCreationResult;
import android.hardware.security.keymint.KeyFormat;
import android.hardware.security.keymint.KeyMintHardwareInfo;
@@ -782,7 +783,7 @@ interface IKeyMintDevice {
     */
    void earlyBootEnded();

    /*
    /**
     * Called by the client to get a wrapped per-boot ephemeral key from a wrapped storage key.
     * Clients will then use the returned per-boot ephemeral key in place of the wrapped storage
     * key. Whenever the hardware is presented with a per-boot ephemeral key for an operation, it
@@ -802,4 +803,26 @@ interface IKeyMintDevice {
     *         place of the input storageKeyBlob
     */
    byte[] convertStorageKeyToEphemeral(in byte[] storageKeyBlob);

    /**
     * Returns parameters associated with the provided key. This should match the
     * KeyCharacteristics present in the KeyCreationResult returned by generateKey(),
     * importKey(), or importWrappedKey().
     *
     * @param keyBlob The opaque descriptor returned by generateKey, importKey or importWrappedKey.
     *
     * @param appId An opaque byte string identifying the client.  This value must match the
     *        Tag::APPLICATION_ID data provided during key generation/import.  Without the correct
     *        value, it must be computationally infeasible for the secure hardware to obtain the
     *        key material.
     *
     * @param appData An opaque byte string provided by the application.  This value must match the
     *        Tag::APPLICATION_DATA data provided during key generation/import.  Without the
     *        correct value, it must be computationally infeasible for the secure hardware to
     *        obtain the key material.
     *
     * @return Characteristics of the generated key. See KeyCreationResult for details.
     */
    KeyCharacteristics[] getKeyCharacteristics(
            in byte[] keyBlob, in byte[] appId, in byte[] appData);
}