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

Commit befeda6b authored by Eran Messeri's avatar Eran Messeri
Browse files

Use TagType constants

Now that the aidl compiler supports it, use constants from TagType to
indicate the type of each tag, rather than duplicating the values of
the constants.

Test: atest VtsAidlKeyMintTargetTest
Bug: 183737811
Merged-In: Ie8af1f00d04fa05c59cfc72692caecbcf2fae483
Change-Id: Ie62b6ee8a8ced05a870711073bb3be16931f3d4d
parent 4f53440f
Loading
Loading
Loading
Loading
+65 −69
Original line number Diff line number Diff line
@@ -18,10 +18,6 @@ package android.hardware.security.keymint;

import android.hardware.security.keymint.TagType;

// TODO(seleneh) : note aidl currently does not support double nested enum definitions such as
// ROOT_OF_TRUST = TagType:BYTES | 704.  So we are forced to write definitions as
// ROOT_OF_TRUST = (9 << 28) for now.  Will need to flip this back later when aidl support is added.

/**
 * Tag specifies various kinds of tags that can be set in KeyParameter to identify what kind of
 * data are stored in KeyParameter.
@@ -33,7 +29,7 @@ enum Tag {
    /**
     * Tag::INVALID should never be set.  It means you hit an error.
     */
    INVALID = (0 << 28) | 0,
    INVALID = 0,

    /**
     * Tag::PURPOSE specifies the set of purposes for which the key may be used.  Possible values
@@ -47,7 +43,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    PURPOSE = (2 << 28) /* TagType:ENUM_REP */ | 1,
    PURPOSE = TagType.ENUM_REP | 1,

    /**
     * Tag::ALGORITHM specifies the cryptographic algorithm with which the key is used.  This tag
@@ -56,7 +52,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    ALGORITHM = (1 << 28) /* TagType:ENUM */ | 2,
    ALGORITHM = TagType.ENUM | 2,

    /**
     * Tag::KEY_SIZE specifies the size, in bits, of the key, measuring in the normal way for the
@@ -68,7 +64,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    KEY_SIZE = (3 << 28) /* TagType:UINT */ | 3,
    KEY_SIZE = TagType.UINT | 3,

    /**
     * Tag::BLOCK_MODE specifies the block cipher mode(s) with which the key may be used.  This tag
@@ -81,7 +77,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    BLOCK_MODE = (2 << 28) /* TagType:ENUM_REP */ | 4,
    BLOCK_MODE = TagType.ENUM_REP | 4,

    /**
     * Tag::DIGEST specifies the digest algorithms that may be used with the key to perform signing
@@ -95,7 +91,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    DIGEST = (2 << 28) /* TagType:ENUM_REP */ | 5,
    DIGEST = TagType.ENUM_REP | 5,

    /**
     * Tag::PADDING specifies the padding modes that may be used with the key.  This tag is relevant
@@ -123,7 +119,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    PADDING = (2 << 28) /* TagType:ENUM_REP */ | 6,
    PADDING = TagType.ENUM_REP | 6,

    /**
     * Tag::CALLER_NONCE specifies that the caller can provide a nonce for nonce-requiring
@@ -136,7 +132,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    CALLER_NONCE = (7 << 28) /* TagType:BOOL */ | 7,
    CALLER_NONCE = TagType.BOOL | 7,

    /**
     * Tag::MIN_MAC_LENGTH specifies the minimum length of MAC that can be requested or verified
@@ -149,7 +145,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    MIN_MAC_LENGTH = (3 << 28) /* TagType:UINT */ | 8,
    MIN_MAC_LENGTH = TagType.UINT | 8,

    // Tag 9 reserved

@@ -159,7 +155,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    EC_CURVE = (1 << 28) /* TagType:ENUM */ | 10,
    EC_CURVE = TagType.ENUM | 10,

    /**
     * Tag::RSA_PUBLIC_EXPONENT specifies the value of the public exponent for an RSA key pair.
@@ -173,7 +169,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    RSA_PUBLIC_EXPONENT = (5 << 28) /* TagType:ULONG */ | 200,
    RSA_PUBLIC_EXPONENT = TagType.ULONG | 200,

    // Tag 201 reserved

@@ -184,7 +180,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    INCLUDE_UNIQUE_ID = (7 << 28) /* TagType:BOOL */ | 202,
    INCLUDE_UNIQUE_ID = TagType.BOOL | 202,

    /**
     * Tag::RSA_OAEP_MGF_DIGEST specifies the MGF1 digest algorithms that may be used with RSA
@@ -197,7 +193,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    RSA_OAEP_MGF_DIGEST = (2 << 28) /* TagType:ENUM_REP */ | 203,
    RSA_OAEP_MGF_DIGEST = TagType.ENUM_REP | 203,

    // Tag 301 reserved

@@ -209,7 +205,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    BOOTLOADER_ONLY = (7 << 28) /* TagType:BOOL */ | 302,
    BOOTLOADER_ONLY = TagType.BOOL | 302,

    /**
     * Tag::ROLLBACK_RESISTANCE specifies that the key has rollback resistance, meaning that when
@@ -224,10 +220,10 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    ROLLBACK_RESISTANCE = (7 << 28) /* TagType:BOOL */ | 303,
    ROLLBACK_RESISTANCE = TagType.BOOL | 303,

    // Reserved for future use.
    HARDWARE_TYPE = (1 << 28) /* TagType:ENUM */ | 304,
    HARDWARE_TYPE = TagType.ENUM | 304,

    /**
     * Keys tagged with EARLY_BOOT_ONLY may only be used during early boot, until
@@ -236,7 +232,7 @@ enum Tag {
     * provided to IKeyMintDevice::importKey, the import must fail with
     * ErrorCode::EARLY_BOOT_ENDED.
     */
    EARLY_BOOT_ONLY = (7 << 28) /* TagType:BOOL */ | 305,
    EARLY_BOOT_ONLY = TagType.BOOL | 305,

    /**
     * Tag::ACTIVE_DATETIME specifies the date and time at which the key becomes active, in
@@ -245,7 +241,7 @@ enum Tag {
     *
     * Need not be hardware-enforced.
     */
    ACTIVE_DATETIME = (6 << 28) /* TagType:DATE */ | 400,
    ACTIVE_DATETIME = TagType.DATE | 400,

    /**
     * Tag::ORIGINATION_EXPIRE_DATETIME specifies the date and time at which the key expires for
@@ -257,7 +253,7 @@ enum Tag {
     *
     * Need not be hardware-enforced.
     */
    ORIGINATION_EXPIRE_DATETIME = (6 << 28) /* TagType:DATE */ | 401,
    ORIGINATION_EXPIRE_DATETIME = TagType.DATE | 401,

    /**
     * Tag::USAGE_EXPIRE_DATETIME specifies the date and time at which the key expires for
@@ -269,7 +265,7 @@ enum Tag {
     *
     * Need not be hardware-enforced.
     */
    USAGE_EXPIRE_DATETIME = (6 << 28) /* TagType:DATE */ | 402,
    USAGE_EXPIRE_DATETIME = TagType.DATE | 402,

    /**
     * TODO(seleneh) this tag need to be deleted.
@@ -294,7 +290,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    MIN_SECONDS_BETWEEN_OPS = (3 << 28) /* TagType:UINT */ | 403,
    MIN_SECONDS_BETWEEN_OPS = TagType.UINT | 403,

    /**
     * Tag::MAX_USES_PER_BOOT specifies the maximum number of times that a key may be used between
@@ -314,7 +310,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    MAX_USES_PER_BOOT = (3 << 28) /* TagType:UINT */ | 404,
    MAX_USES_PER_BOOT = TagType.UINT | 404,

    /**
     * Tag::USAGE_COUNT_LIMIT specifies the number of times that a key may be used. This can be
@@ -343,14 +339,14 @@ enum Tag {
     * record. This tag must have the same SecurityLevel as the tag that is added to the key
     * characteristics.
     */
    USAGE_COUNT_LIMIT = (3 << 28) | 405, /* TagType:UINT */
    USAGE_COUNT_LIMIT = TagType.UINT | 405,

    /**
     * Tag::USER_ID specifies the ID of the Android user that is permitted to use the key.
     *
     * Must not be hardware-enforced.
     */
    USER_ID = (3 << 28) /* TagType:UINT */ | 501,
    USER_ID = TagType.UINT | 501,

    /**
     * Tag::USER_SECURE_ID specifies that a key may only be used under a particular secure user
@@ -383,7 +379,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    USER_SECURE_ID = (10 << 28) /* TagType:ULONG_REP */ | 502,
    USER_SECURE_ID = TagType.ULONG_REP | 502,

    /**
     * Tag::NO_AUTH_REQUIRED specifies that no authentication is required to use this key.  This tag
@@ -391,7 +387,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    NO_AUTH_REQUIRED = (7 << 28) /* TagType:BOOL */ | 503,
    NO_AUTH_REQUIRED = TagType.BOOL | 503,

    /**
     * Tag::USER_AUTH_TYPE specifies the types of user authenticators that may be used to authorize
@@ -410,7 +406,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    USER_AUTH_TYPE = (1 << 28) /* TagType:ENUM */ | 504,
    USER_AUTH_TYPE = TagType.ENUM | 504,

    /**
     * Tag::AUTH_TIMEOUT specifies the time in seconds for which the key is authorized for use,
@@ -424,7 +420,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    AUTH_TIMEOUT = (3 << 28) /* TagType:UINT */ | 505,
    AUTH_TIMEOUT = TagType.UINT | 505,

    /**
     * Tag::ALLOW_WHILE_ON_BODY specifies that the key may be used after authentication timeout if
@@ -432,7 +428,7 @@ enum Tag {
     *
     * Cannot be hardware-enforced.
     */
    ALLOW_WHILE_ON_BODY = (7 << 28) /* TagType:BOOL */ | 506,
    ALLOW_WHILE_ON_BODY = TagType.BOOL | 506,

    /**
     * TRUSTED_USER_PRESENCE_REQUIRED is an optional feature that specifies that this key must be
@@ -479,7 +475,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    TRUSTED_USER_PRESENCE_REQUIRED = (7 << 28) /* TagType:BOOL */ | 507,
    TRUSTED_USER_PRESENCE_REQUIRED = TagType.BOOL | 507,

    /**
     * Tag::TRUSTED_CONFIRMATION_REQUIRED is only applicable to keys with KeyPurpose SIGN, and
@@ -493,7 +489,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    TRUSTED_CONFIRMATION_REQUIRED = (7 << 28) /* TagType:BOOL */ | 508,
    TRUSTED_CONFIRMATION_REQUIRED = TagType.BOOL | 508,

    /**
     * Tag::UNLOCKED_DEVICE_REQUIRED specifies that the key may only be used when the device is
@@ -503,7 +499,7 @@ enum Tag {
     * Must be hardware-enforced (but is also keystore-enforced on a per-user basis: see the
     * deviceLocked() documentation).
     */
    UNLOCKED_DEVICE_REQUIRED = (7 << 28) /* TagType:BOOL */ | 509,
    UNLOCKED_DEVICE_REQUIRED = TagType.BOOL | 509,

    /**
     * Tag::APPLICATION_ID.  When provided to generateKey or importKey, this tag specifies data
@@ -519,7 +515,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    APPLICATION_ID = (9 << 28) /* TagType:BYTES */ | 601,
    APPLICATION_ID = TagType.BYTES | 601,

    /*
     * Semantically unenforceable tags, either because they have no specific meaning or because
@@ -540,7 +536,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    APPLICATION_DATA = (9 << 28) /* TagType:BYTES */ | 700,
    APPLICATION_DATA = TagType.BYTES | 700,

    /**
     * Tag::CREATION_DATETIME specifies the date and time the key was created, in milliseconds since
@@ -548,7 +544,7 @@ enum Tag {
     *
     * Must be in the software-enforced list, if provided.
     */
    CREATION_DATETIME = (6 << 28) /* TagType:DATE */ | 701,
    CREATION_DATETIME = TagType.DATE | 701,

    /**
     * Tag::ORIGIN specifies where the key was created, if known.  This tag must not be specified
@@ -557,7 +553,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    ORIGIN = (1 << 28) /* TagType:ENUM */ | 702,
    ORIGIN = TagType.ENUM | 702,

    // 703 is unused.

@@ -569,7 +565,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ROOT_OF_TRUST = (9 << 28) /* TagType:BYTES */ | 704,
    ROOT_OF_TRUST = TagType.BYTES | 704,

    /**
     * Tag::OS_VERSION specifies the system OS version with which the key may be used.  This tag is
@@ -592,7 +588,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    OS_VERSION = (3 << 28) /* TagType:UINT */ | 705,
    OS_VERSION = TagType.UINT | 705,

    /**
     * Tag::OS_PATCHLEVEL specifies the system security patch level with which the key may be used.
@@ -613,7 +609,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    OS_PATCHLEVEL = (3 << 28) /* TagType:UINT */ | 706,
    OS_PATCHLEVEL = TagType.UINT | 706,

    /**
     * Tag::UNIQUE_ID specifies a unique, time-based identifier.  This tag is never provided to or
@@ -648,7 +644,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    UNIQUE_ID = (9 << 28) /* TagType:BYTES */ | 707,
    UNIQUE_ID = TagType.BYTES | 707,

    /**
     * Tag::ATTESTATION_CHALLENGE is used to deliver a "challenge" value to the attested key
@@ -657,7 +653,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_CHALLENGE = (9 << 28) /* TagType:BYTES */ | 708,
    ATTESTATION_CHALLENGE = TagType.BYTES | 708,

    /**
     * Tag::ATTESTATION_APPLICATION_ID identifies the set of applications which may use a key, used
@@ -683,7 +679,7 @@ enum Tag {
     *
     * Cannot be hardware-enforced.
     */
    ATTESTATION_APPLICATION_ID = (9 << 28) /* TagType:BYTES */ | 709,
    ATTESTATION_APPLICATION_ID = TagType.BYTES | 709,

    /**
     * Tag::ATTESTATION_ID_BRAND provides the device's brand name, as returned by Build.BRAND in
@@ -696,7 +692,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_ID_BRAND = (9 << 28) /* TagType:BYTES */ | 710,
    ATTESTATION_ID_BRAND = TagType.BYTES | 710,

    /**
     * Tag::ATTESTATION_ID_DEVICE provides the device's device name, as returned by Build.DEVICE in
@@ -709,7 +705,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_ID_DEVICE = (9 << 28) /* TagType:BYTES */ | 711,
    ATTESTATION_ID_DEVICE = TagType.BYTES | 711,

    /**
     * Tag::ATTESTATION_ID_PRODUCT provides the device's product name, as returned by Build.PRODUCT
@@ -722,7 +718,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_ID_PRODUCT = (9 << 28) /* TagType:BYTES */ | 712,
    ATTESTATION_ID_PRODUCT = TagType.BYTES | 712,

    /**
     * Tag::ATTESTATION_ID_SERIAL the device's serial number.  This field must be set only when
@@ -734,7 +730,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_ID_SERIAL = (9 << 28) /* TagType:BYTES */ | 713,
    ATTESTATION_ID_SERIAL = TagType.BYTES | 713,

    /**
     * Tag::ATTESTATION_ID_IMEI provides the IMEIs for all radios on the device to attested key
@@ -747,7 +743,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_ID_IMEI = (9 << 28) /* TagType:BYTES */ | 714,
    ATTESTATION_ID_IMEI = TagType.BYTES | 714,

    /**
     * Tag::ATTESTATION_ID_MEID provides the MEIDs for all radios on the device to attested key
@@ -760,7 +756,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_ID_MEID = (9 << 28) /* TagType:BYTES */ | 715,
    ATTESTATION_ID_MEID = TagType.BYTES | 715,

    /**
     * Tag::ATTESTATION_ID_MANUFACTURER provides the device's manufacturer name, as returned by
@@ -773,7 +769,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_ID_MANUFACTURER = (9 << 28) /* TagType:BYTES */ | 716,
    ATTESTATION_ID_MANUFACTURER = TagType.BYTES | 716,

    /**
     * Tag::ATTESTATION_ID_MODEL provides the device's model name, as returned by Build.MODEL in
@@ -786,7 +782,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    ATTESTATION_ID_MODEL = (9 << 28) /* TagType:BYTES */ | 717,
    ATTESTATION_ID_MODEL = TagType.BYTES | 717,

    /**
     * Tag::VENDOR_PATCHLEVEL specifies the vendor image security patch level with which the key may
@@ -808,7 +804,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    VENDOR_PATCHLEVEL = (3 << 28) /* TagType:UINT */ | 718,
    VENDOR_PATCHLEVEL = TagType.UINT | 718,

    /**
     * Tag::BOOT_PATCHLEVEL specifies the boot image (kernel) security patch level with which the
@@ -828,7 +824,7 @@ enum Tag {
     *
     * Must be hardware-enforced.
     */
    BOOT_PATCHLEVEL = (3 << 28) /* TagType:UINT */ | 719,
    BOOT_PATCHLEVEL = TagType.UINT | 719,

    /**
     * DEVICE_UNIQUE_ATTESTATION is an argument to IKeyMintDevice::attested key generation/import
@@ -854,7 +850,7 @@ enum Tag {
     * IKeyMintDevice implementations that support device-unique attestation MUST add the
     * DEVICE_UNIQUE_ATTESTATION tag to device-unique attestations.
     */
    DEVICE_UNIQUE_ATTESTATION = (7 << 28) /* TagType:BOOL */ | 720,
    DEVICE_UNIQUE_ATTESTATION = TagType.BOOL | 720,

    /**
     * IDENTITY_CREDENTIAL_KEY is never used by IKeyMintDevice, is not a valid argument to key
@@ -862,7 +858,7 @@ enum Tag {
     * attestation.  It is used in attestations produced by the IIdentityCredential HAL when that
     * HAL attests to Credential Keys.  IIdentityCredential produces KeyMint-style attestations.
     */
    IDENTITY_CREDENTIAL_KEY = (7 << 28) /* TagType:BOOL */ | 721,
    IDENTITY_CREDENTIAL_KEY = TagType.BOOL | 721,

    /**
     * To prevent keys from being compromised if an attacker acquires read access to system / kernel
@@ -880,12 +876,12 @@ enum Tag {
     * ErrorCode::INVALID_OPERATION is returned when a key with Tag::STORAGE_KEY is provided to
     * begin().
     */
    STORAGE_KEY = (7 << 28) /* TagType:BOOL */ | 722,
    STORAGE_KEY = TagType.BOOL | 722,

    /**
     * TODO: Delete when keystore1 is deleted.
     */
    ASSOCIATED_DATA = (9 << 28) /* TagType:BYTES */ | 1000,
    ASSOCIATED_DATA = TagType.BYTES | 1000,

    /**
     * Tag::NONCE is used to provide or return a nonce or Initialization Vector (IV) for AES-GCM,
@@ -900,7 +896,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    NONCE = (9 << 28) /* TagType:BYTES */ | 1001,
    NONCE = TagType.BYTES | 1001,

    /**
     * Tag::MAC_LENGTH provides the requested length of a MAC or GCM authentication tag, in bits.
@@ -911,7 +907,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    MAC_LENGTH = (3 << 28) /* TagType:UINT */ | 1003,
    MAC_LENGTH = TagType.UINT | 1003,

    /**
     * Tag::RESET_SINCE_ID_ROTATION specifies whether the device has been factory reset since the
@@ -919,7 +915,7 @@ enum Tag {
     *
     * Must never appear in KeyCharacteristics.
     */
    RESET_SINCE_ID_ROTATION = (7 << 28) /* TagType:BOOL */ | 1004,
    RESET_SINCE_ID_ROTATION = TagType.BOOL | 1004,

    /**
     * OBSOLETE: Do not use. See the authToken parameter for IKeyMintDevice::begin and for
@@ -927,7 +923,7 @@ enum Tag {
     *
     * TODO(b/191738660): Delete when keystore1 is deleted.
     */
    CONFIRMATION_TOKEN = (9 << 28) /* TagType:BYTES */ | 1005,
    CONFIRMATION_TOKEN = TagType.BYTES | 1005,

    /**
     * Tag::CERTIFICATE_SERIAL specifies the serial number to be assigned to the attestation
@@ -935,7 +931,7 @@ enum Tag {
     * keyMint in the attestation parameters during generateKey() and importKey().  If not provided,
     * the serial shall default to 1.
     */
    CERTIFICATE_SERIAL = (8 << 28) /* TagType:BIGNUM */ | 1006,
    CERTIFICATE_SERIAL = TagType.BIGNUM | 1006,

    /**
     * Tag::CERTIFICATE_SUBJECT the certificate subject.  The value is a DER encoded X509 NAME.
@@ -943,7 +939,7 @@ enum Tag {
     * during generateKey and importKey. If not provided the subject name shall default to
     * CN="Android Keystore Key".
     */
    CERTIFICATE_SUBJECT = (9 << 28) /* TagType:BYTES */ | 1007,
    CERTIFICATE_SUBJECT = TagType.BYTES | 1007,

    /**
     * Tag::CERTIFICATE_NOT_BEFORE the beginning of the validity of the certificate in UNIX epoch
@@ -951,7 +947,7 @@ enum Tag {
     * certificates.  ErrorCode::MISSING_NOT_BEFORE must be returned if this tag is not provided if
     * this tag is not provided to generateKey or importKey.
     */
    CERTIFICATE_NOT_BEFORE = (6 << 28) /* TagType:DATE */ | 1008,
    CERTIFICATE_NOT_BEFORE = TagType.DATE | 1008,

    /**
     * Tag::CERTIFICATE_NOT_AFTER the end of the validity of the certificate in UNIX epoch time in
@@ -959,7 +955,7 @@ enum Tag {
     * ErrorCode::MISSING_NOT_AFTER must be returned if this tag is not provided to generateKey or
     * importKey.
     */
    CERTIFICATE_NOT_AFTER = (6 << 28) /* TagType:DATE */ | 1009,
    CERTIFICATE_NOT_AFTER = TagType.DATE | 1009,

    /**
     * Tag::MAX_BOOT_LEVEL specifies a maximum boot level at which a key should function.
@@ -970,5 +966,5 @@ enum Tag {
     *
     * Cannot be hardware enforced in this version.
     */
    MAX_BOOT_LEVEL = (3 << 28) /* TagType:UINT */ | 1010,
    MAX_BOOT_LEVEL = TagType.UINT | 1010,
}