xref: /aosp_15_r20/system/keymint/common/src/keyblob/keyblob.cddl (revision 9860b7637a5f185913c70aa0caabe3ecb78441e4)
1*9860b763SAndroid Build Coastguard Worker; encrypted_key_material is AES-GCM encrypted with:
2*9860b763SAndroid Build Coastguard Worker; - key derived as described below
3*9860b763SAndroid Build Coastguard Worker; - plaintext is the CBOR-serialization of `KeyMaterial`
4*9860b763SAndroid Build Coastguard Worker; - nonce value is fixed, all zeroes
5*9860b763SAndroid Build Coastguard Worker; - no additional data
6*9860b763SAndroid Build Coastguard Worker;
7*9860b763SAndroid Build Coastguard Worker; Key derivation uses HKDF (RFC 5869) with HMAC-SHA256 to generate an AES-256 key:
8*9860b763SAndroid Build Coastguard Worker; - input keying material = a root key held in hardware
9*9860b763SAndroid Build Coastguard Worker; - salt = absent
10*9860b763SAndroid Build Coastguard Worker; - info = the following three or four chunks of context data concatenated:
11*9860b763SAndroid Build Coastguard Worker;    - content of `EncryptedKeyBlob.key_derivation_input` (a random nonce)
12*9860b763SAndroid Build Coastguard Worker;    - CBOR-serialization of `EncryptedKeyBlob.characteristics`
13*9860b763SAndroid Build Coastguard Worker;    - CBOR-serialized array of additional hidden `KeyParam` items associated with the key, specifically:
14*9860b763SAndroid Build Coastguard Worker;        - [Tag_ApplicationId, bstr] if required
15*9860b763SAndroid Build Coastguard Worker;        - [Tag_ApplicationData, bstr] if required
16*9860b763SAndroid Build Coastguard Worker;        - [Tag_RootOfTrust, bstr .cbor RootOfTrustInfo]
17*9860b763SAndroid Build Coastguard Worker;    - (if secure storage is available) CBOR serialization of the `SecureDeletionData` structure, with:
18*9860b763SAndroid Build Coastguard Worker;        - `factory_reset_secret` always populated
19*9860b763SAndroid Build Coastguard Worker;        - `secure_deletion_secret` populated with:
20*9860b763SAndroid Build Coastguard Worker;           - all zeroes (if `EncryptedKeyBlob.secure_deletion_slot` is empty)
21*9860b763SAndroid Build Coastguard Worker;           - the contents of the slot (if `EncryptedKeyBlob.secure_deletion_slot` is non-empty)
22*9860b763SAndroid Build Coastguard WorkerEncryptedKeyBlob = &(
23*9860b763SAndroid Build Coastguard Worker    [0, EncryptedKeyBlobV1] ; Version::V1
24*9860b763SAndroid Build Coastguard Worker)
25*9860b763SAndroid Build Coastguard WorkerVersion = &(
26*9860b763SAndroid Build Coastguard Worker    Version_V1: 0,
27*9860b763SAndroid Build Coastguard Worker)
28*9860b763SAndroid Build Coastguard WorkerEncryptedKeyBlobV1 = [
29*9860b763SAndroid Build Coastguard Worker    characteristics: [* KeyCharacteristics],
30*9860b763SAndroid Build Coastguard Worker    key_derivation_input: bstr .size 32,
31*9860b763SAndroid Build Coastguard Worker    kek_context: bstr,
32*9860b763SAndroid Build Coastguard Worker    encrypted_key_material: #6.16(Cose_Encrypt0),
33*9860b763SAndroid Build Coastguard Worker    secure_deletion_slot: [? SecureDeletionSlot],
34*9860b763SAndroid Build Coastguard Worker]
35*9860b763SAndroid Build Coastguard WorkerKeyCharacteristics = [
36*9860b763SAndroid Build Coastguard Worker    security_level: SecurityLevel,
37*9860b763SAndroid Build Coastguard Worker    authorizations: [* KeyParam],
38*9860b763SAndroid Build Coastguard Worker]
39*9860b763SAndroid Build Coastguard WorkerCose_Encrypt0 = [ protected: bstr, unprotected: { * (int / tstr) => any }, ciphertext: bstr / nil ]
40*9860b763SAndroid Build Coastguard WorkerKeyMaterial = &(
41*9860b763SAndroid Build Coastguard Worker  ; For each variant the `bool` second entry indicates whether the bstr for the key material
42*9860b763SAndroid Build Coastguard Worker  ; is opaque (true), or explicit (false).
43*9860b763SAndroid Build Coastguard Worker  [32, bool, bstr], ; Algorithm_Aes
44*9860b763SAndroid Build Coastguard Worker  [33, bool, bstr], ; Algorithm_TripleDes
45*9860b763SAndroid Build Coastguard Worker  [128, bool, bstr], ; Algorithm_Hmac
46*9860b763SAndroid Build Coastguard Worker  ; An explicit RSA key is in the form of an ASN.1 DER encoding of a PKCS#1 `RSAPrivateKey`
47*9860b763SAndroid Build Coastguard Worker  ; structure, as specified by RFC 3447 sections A.1.2 and 3.2.
48*9860b763SAndroid Build Coastguard Worker  [1, bool, bstr], ; Algorithm_Rsa
49*9860b763SAndroid Build Coastguard Worker  ; An explicit EC key for a NIST curve is in the form of an ASN.1 DER encoding of a
50*9860b763SAndroid Build Coastguard Worker  ; `ECPrivateKey` structure, as specified by RFC 5915 section 3.
51*9860b763SAndroid Build Coastguard Worker  ; An explicit EC key for curve 25519 is the raw key bytes.
52*9860b763SAndroid Build Coastguard Worker  [3, bool, [EcCurve, CurveType, bstr]], ; Algorithm_Ec
53*9860b763SAndroid Build Coastguard Worker)
54*9860b763SAndroid Build Coastguard WorkerSecureDeletionSlot = int
55*9860b763SAndroid Build Coastguard WorkerSecureDeletionData = [
56*9860b763SAndroid Build Coastguard Worker    factory_reset_secret: bstr .size 32,
57*9860b763SAndroid Build Coastguard Worker    secure_deletion_secret: bstr .size 16,
58*9860b763SAndroid Build Coastguard Worker]
59*9860b763SAndroid Build Coastguard WorkerRootOfTrustInfo = [
60*9860b763SAndroid Build Coastguard Worker    verified_boot_key: bstr,
61*9860b763SAndroid Build Coastguard Worker    device_boot_locked: bool,
62*9860b763SAndroid Build Coastguard Worker    verified_boot_state: VerifiedBootState,
63*9860b763SAndroid Build Coastguard Worker]
64*9860b763SAndroid Build Coastguard WorkerVerifiedBootState = &(
65*9860b763SAndroid Build Coastguard Worker    VerifiedBootState_Verified: 0,
66*9860b763SAndroid Build Coastguard Worker    VerifiedBootState_SelfSigned: 1,
67*9860b763SAndroid Build Coastguard Worker    VerifiedBootState_Unverified: 2,
68*9860b763SAndroid Build Coastguard Worker    VerifiedBootState_Failed: 3,
69*9860b763SAndroid Build Coastguard Worker)
70*9860b763SAndroid Build Coastguard WorkerSecurityLevel = &(
71*9860b763SAndroid Build Coastguard Worker    SecurityLevel_Software: 0,
72*9860b763SAndroid Build Coastguard Worker    SecurityLevel_TrustedEnvironment: 1,
73*9860b763SAndroid Build Coastguard Worker    SecurityLevel_Strongbox: 2,
74*9860b763SAndroid Build Coastguard Worker    SecurityLevel_Keystore: 100,
75*9860b763SAndroid Build Coastguard Worker)
76*9860b763SAndroid Build Coastguard WorkerKeyParam = &(
77*9860b763SAndroid Build Coastguard Worker    [268435458, Algorithm], ; Tag_Algorithm
78*9860b763SAndroid Build Coastguard Worker    [536870916, BlockMode], ; Tag_BlockMode
79*9860b763SAndroid Build Coastguard Worker    [536870918, PaddingMode], ; Tag_Padding
80*9860b763SAndroid Build Coastguard Worker    [536870917, Digest], ; Tag_Digest
81*9860b763SAndroid Build Coastguard Worker    [268435466, EcCurve], ; Tag_EcCurve
82*9860b763SAndroid Build Coastguard Worker    [268436158, KeyOrigin], ; Tag_Origin
83*9860b763SAndroid Build Coastguard Worker    [536870913, KeyPurpose], ; Tag_Purpose
84*9860b763SAndroid Build Coastguard Worker    [805306371, KeySizeInBits], ; Tag_KeySize
85*9860b763SAndroid Build Coastguard Worker    [1879048199, bstr], ; Tag_CallerNonce
86*9860b763SAndroid Build Coastguard Worker    [805306376, int], ; Tag_MinMacLength
87*9860b763SAndroid Build Coastguard Worker    [1342177480, RsaExponent], ; Tag_RsaPublicExponent
88*9860b763SAndroid Build Coastguard Worker    [1879048394, true], ; Tag_IncludeUniqueId
89*9860b763SAndroid Build Coastguard Worker    [536871115, Digest], ; Tag_RsaOaepMgfDigest
90*9860b763SAndroid Build Coastguard Worker    [1879048494, true], ; Tag_BootloaderOnly
91*9860b763SAndroid Build Coastguard Worker    [1879048495, true], ; Tag_RollbackResistance
92*9860b763SAndroid Build Coastguard Worker    [1879048497, true], ; Tag_EarlyBootOnly
93*9860b763SAndroid Build Coastguard Worker    [1610613136, DateTime], ; Tag_ActiveDatetime
94*9860b763SAndroid Build Coastguard Worker    [1610613137, DateTime], ; Tag_OriginationExpireDatetime
95*9860b763SAndroid Build Coastguard Worker    [1610613138, DateTime], ; Tag_UsageExpireDatetime
96*9860b763SAndroid Build Coastguard Worker    [805306772, int], ; Tag_MaxUsesPerBoot
97*9860b763SAndroid Build Coastguard Worker    [805306773, int], ; Tag_UsageCountLimit
98*9860b763SAndroid Build Coastguard Worker    [805306869, int], ; Tag_UserId
99*9860b763SAndroid Build Coastguard Worker    [-1610612234, int], ; Tag_UserSecureId
100*9860b763SAndroid Build Coastguard Worker    [1879048695, true], ; Tag_NoAuthRequired
101*9860b763SAndroid Build Coastguard Worker    [268435960, int], ; Tag_UserAuthType
102*9860b763SAndroid Build Coastguard Worker    [805306873, int], ; Tag_AuthTimeout
103*9860b763SAndroid Build Coastguard Worker    [1879048698, true], ; Tag_AllowWhileOnBody
104*9860b763SAndroid Build Coastguard Worker    [1879048699, true], ; Tag_TrustedUserPresenceRequired
105*9860b763SAndroid Build Coastguard Worker    [1879048700, true], ; Tag_TrustedConfirmationRequired
106*9860b763SAndroid Build Coastguard Worker    [1879048701, true], ; Tag_UnlockedDeviceRequired
107*9860b763SAndroid Build Coastguard Worker    [-1879047591, bstr], ; Tag_ApplicationId
108*9860b763SAndroid Build Coastguard Worker    [-1879047492, bstr], ; Tag_ApplicationData
109*9860b763SAndroid Build Coastguard Worker    [1610613437, DateTime], ; Tag_CreationDatetime
110*9860b763SAndroid Build Coastguard Worker    [-1879047488, bstr], ; Tag_RootOfTrust
111*9860b763SAndroid Build Coastguard Worker    [805307073, int], ; Tag_OsVersion
112*9860b763SAndroid Build Coastguard Worker    [805307074, int], ; Tag_OsPatchlevel
113*9860b763SAndroid Build Coastguard Worker    [-1879047484, bstr], ; Tag_AttestationChallenge
114*9860b763SAndroid Build Coastguard Worker    [-1879047483, bstr], ; Tag_AttestationApplicationId
115*9860b763SAndroid Build Coastguard Worker    [-1879047482, bstr], ; Tag_AttestationIdBrand
116*9860b763SAndroid Build Coastguard Worker    [-1879047481, bstr], ; Tag_AttestationIdDevice
117*9860b763SAndroid Build Coastguard Worker    [-1879047480, bstr], ; Tag_AttestationIdProduct
118*9860b763SAndroid Build Coastguard Worker    [-1879047479, bstr], ; Tag_AttestationIdSerial
119*9860b763SAndroid Build Coastguard Worker    [-1879047478, bstr], ; Tag_AttestationIdImei
120*9860b763SAndroid Build Coastguard Worker    [-1879047469, bstr], ; Tag_AttestationIdSecondImei
121*9860b763SAndroid Build Coastguard Worker    [-1879047477, bstr], ; Tag_AttestationIdMeid
122*9860b763SAndroid Build Coastguard Worker    [-1879047476, bstr], ; Tag_AttestationIdManufacturer
123*9860b763SAndroid Build Coastguard Worker    [-1879047475, bstr], ; Tag_AttestationIdModel
124*9860b763SAndroid Build Coastguard Worker    [805307086, int], ; Tag_VendorPatchlevel
125*9860b763SAndroid Build Coastguard Worker    [805307087, int], ; Tag_BootPatchlevel
126*9860b763SAndroid Build Coastguard Worker    [1879048912, true], ; Tag_DeviceUniqueAttestation
127*9860b763SAndroid Build Coastguard Worker    [1879048914, true], ; Tag_StorageKey
128*9860b763SAndroid Build Coastguard Worker    [-1879047191, bstr], ; Tag_Nonce
129*9860b763SAndroid Build Coastguard Worker    [805307371, int], ; Tag_MacLength
130*9860b763SAndroid Build Coastguard Worker    [1879049196, true], ; Tag_ResetSinceIdRotation
131*9860b763SAndroid Build Coastguard Worker    [-2147482642, bstr], ; Tag_CertificateSerial
132*9860b763SAndroid Build Coastguard Worker    [-1879047185, bstr], ; Tag_CertificateSubject
133*9860b763SAndroid Build Coastguard Worker    [1610613744, DateTime], ; Tag_CertificateNotBefore
134*9860b763SAndroid Build Coastguard Worker    [1610613745, DateTime], ; Tag_CertificateNotAfter
135*9860b763SAndroid Build Coastguard Worker    [805307378, int], ; Tag_MaxBootLevel
136*9860b763SAndroid Build Coastguard Worker)
137*9860b763SAndroid Build Coastguard WorkerTag = &(
138*9860b763SAndroid Build Coastguard Worker    Tag_Invalid: 0,
139*9860b763SAndroid Build Coastguard Worker    Tag_Purpose: 536870913,
140*9860b763SAndroid Build Coastguard Worker    Tag_Algorithm: 268435458,
141*9860b763SAndroid Build Coastguard Worker    Tag_KeySize: 805306371,
142*9860b763SAndroid Build Coastguard Worker    Tag_BlockMode: 536870916,
143*9860b763SAndroid Build Coastguard Worker    Tag_Digest: 536870917,
144*9860b763SAndroid Build Coastguard Worker    Tag_Padding: 536870918,
145*9860b763SAndroid Build Coastguard Worker    Tag_CallerNonce: 1879048199,
146*9860b763SAndroid Build Coastguard Worker    Tag_MinMacLength: 805306376,
147*9860b763SAndroid Build Coastguard Worker    Tag_EcCurve: 268435466,
148*9860b763SAndroid Build Coastguard Worker    Tag_RsaPublicExponent: 1342177480,
149*9860b763SAndroid Build Coastguard Worker    Tag_IncludeUniqueId: 1879048394,
150*9860b763SAndroid Build Coastguard Worker    Tag_RsaOaepMgfDigest: 536871115,
151*9860b763SAndroid Build Coastguard Worker    Tag_BootloaderOnly: 1879048494,
152*9860b763SAndroid Build Coastguard Worker    Tag_RollbackResistance: 1879048495,
153*9860b763SAndroid Build Coastguard Worker    Tag_HardwareType: 268435760,
154*9860b763SAndroid Build Coastguard Worker    Tag_EarlyBootOnly: 1879048497,
155*9860b763SAndroid Build Coastguard Worker    Tag_ActiveDatetime: 1610613136,
156*9860b763SAndroid Build Coastguard Worker    Tag_OriginationExpireDatetime: 1610613137,
157*9860b763SAndroid Build Coastguard Worker    Tag_UsageExpireDatetime: 1610613138,
158*9860b763SAndroid Build Coastguard Worker    Tag_MinSecondsBetweenOps: 805306771,
159*9860b763SAndroid Build Coastguard Worker    Tag_MaxUsesPerBoot: 805306772,
160*9860b763SAndroid Build Coastguard Worker    Tag_UsageCountLimit: 805306773,
161*9860b763SAndroid Build Coastguard Worker    Tag_UserId: 805306869,
162*9860b763SAndroid Build Coastguard Worker    Tag_UserSecureId: -1610612234,
163*9860b763SAndroid Build Coastguard Worker    Tag_NoAuthRequired: 1879048695,
164*9860b763SAndroid Build Coastguard Worker    Tag_UserAuthType: 268435960,
165*9860b763SAndroid Build Coastguard Worker    Tag_AuthTimeout: 805306873,
166*9860b763SAndroid Build Coastguard Worker    Tag_AllowWhileOnBody: 1879048698,
167*9860b763SAndroid Build Coastguard Worker    Tag_TrustedUserPresenceRequired: 1879048699,
168*9860b763SAndroid Build Coastguard Worker    Tag_TrustedConfirmationRequired: 1879048700,
169*9860b763SAndroid Build Coastguard Worker    Tag_UnlockedDeviceRequired: 1879048701,
170*9860b763SAndroid Build Coastguard Worker    Tag_ApplicationId: -1879047591,
171*9860b763SAndroid Build Coastguard Worker    Tag_ApplicationData: -1879047492,
172*9860b763SAndroid Build Coastguard Worker    Tag_CreationDatetime: 1610613437,
173*9860b763SAndroid Build Coastguard Worker    Tag_Origin: 268436158,
174*9860b763SAndroid Build Coastguard Worker    Tag_RootOfTrust: -1879047488,
175*9860b763SAndroid Build Coastguard Worker    Tag_OsVersion: 805307073,
176*9860b763SAndroid Build Coastguard Worker    Tag_OsPatchlevel: 805307074,
177*9860b763SAndroid Build Coastguard Worker    Tag_UniqueId: -1879047485,
178*9860b763SAndroid Build Coastguard Worker    Tag_AttestationChallenge: -1879047484,
179*9860b763SAndroid Build Coastguard Worker    Tag_AttestationApplicationId: -1879047483,
180*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdBrand: -1879047482,
181*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdDevice: -1879047481,
182*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdProduct: -1879047480,
183*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdSerial: -1879047479,
184*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdImei: -1879047478,
185*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdMeid: -1879047477,
186*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdManufacturer: -1879047476,
187*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdModel: -1879047475,
188*9860b763SAndroid Build Coastguard Worker    Tag_VendorPatchlevel: 805307086,
189*9860b763SAndroid Build Coastguard Worker    Tag_BootPatchlevel: 805307087,
190*9860b763SAndroid Build Coastguard Worker    Tag_DeviceUniqueAttestation: 1879048912,
191*9860b763SAndroid Build Coastguard Worker    Tag_IdentityCredentialKey: 1879048913,
192*9860b763SAndroid Build Coastguard Worker    Tag_StorageKey: 1879048914,
193*9860b763SAndroid Build Coastguard Worker    Tag_AttestationIdSecondImei: -1879047469,
194*9860b763SAndroid Build Coastguard Worker    Tag_AssociatedData: -1879047192,
195*9860b763SAndroid Build Coastguard Worker    Tag_Nonce: -1879047191,
196*9860b763SAndroid Build Coastguard Worker    Tag_MacLength: 805307371,
197*9860b763SAndroid Build Coastguard Worker    Tag_ResetSinceIdRotation: 1879049196,
198*9860b763SAndroid Build Coastguard Worker    Tag_ConfirmationToken: -1879047187,
199*9860b763SAndroid Build Coastguard Worker    Tag_CertificateSerial: -2147482642,
200*9860b763SAndroid Build Coastguard Worker    Tag_CertificateSubject: -1879047185,
201*9860b763SAndroid Build Coastguard Worker    Tag_CertificateNotBefore: 1610613744,
202*9860b763SAndroid Build Coastguard Worker    Tag_CertificateNotAfter: 1610613745,
203*9860b763SAndroid Build Coastguard Worker    Tag_MaxBootLevel: 805307378,
204*9860b763SAndroid Build Coastguard Worker)
205*9860b763SAndroid Build Coastguard WorkerAlgorithm = &(
206*9860b763SAndroid Build Coastguard Worker    Algorithm_Rsa: 1,
207*9860b763SAndroid Build Coastguard Worker    Algorithm_Ec: 3,
208*9860b763SAndroid Build Coastguard Worker    Algorithm_Aes: 32,
209*9860b763SAndroid Build Coastguard Worker    Algorithm_TripleDes: 33,
210*9860b763SAndroid Build Coastguard Worker    Algorithm_Hmac: 128,
211*9860b763SAndroid Build Coastguard Worker)
212*9860b763SAndroid Build Coastguard WorkerBlockMode = &(
213*9860b763SAndroid Build Coastguard Worker    BlockMode_Ecb: 1,
214*9860b763SAndroid Build Coastguard Worker    BlockMode_Cbc: 2,
215*9860b763SAndroid Build Coastguard Worker    BlockMode_Ctr: 3,
216*9860b763SAndroid Build Coastguard Worker    BlockMode_Gcm: 32,
217*9860b763SAndroid Build Coastguard Worker)
218*9860b763SAndroid Build Coastguard WorkerDigest = &(
219*9860b763SAndroid Build Coastguard Worker    Digest_None: 0,
220*9860b763SAndroid Build Coastguard Worker    Digest_Md5: 1,
221*9860b763SAndroid Build Coastguard Worker    Digest_Sha1: 2,
222*9860b763SAndroid Build Coastguard Worker    Digest_Sha224: 3,
223*9860b763SAndroid Build Coastguard Worker    Digest_Sha256: 4,
224*9860b763SAndroid Build Coastguard Worker    Digest_Sha384: 5,
225*9860b763SAndroid Build Coastguard Worker    Digest_Sha512: 6,
226*9860b763SAndroid Build Coastguard Worker)
227*9860b763SAndroid Build Coastguard WorkerEcCurve = &(
228*9860b763SAndroid Build Coastguard Worker    EcCurve_P224: 0,
229*9860b763SAndroid Build Coastguard Worker    EcCurve_P256: 1,
230*9860b763SAndroid Build Coastguard Worker    EcCurve_P384: 2,
231*9860b763SAndroid Build Coastguard Worker    EcCurve_P521: 3,
232*9860b763SAndroid Build Coastguard Worker    EcCurve_Curve25519: 4,
233*9860b763SAndroid Build Coastguard Worker)
234*9860b763SAndroid Build Coastguard WorkerCurveType = &(
235*9860b763SAndroid Build Coastguard Worker    CurveType_Nist: 0,
236*9860b763SAndroid Build Coastguard Worker    CurveType_EdDsa: 1,
237*9860b763SAndroid Build Coastguard Worker    CurveType_Xdh: 2,
238*9860b763SAndroid Build Coastguard Worker)
239*9860b763SAndroid Build Coastguard WorkerKeyOrigin = &(
240*9860b763SAndroid Build Coastguard Worker    KeyOrigin_Generated: 0,
241*9860b763SAndroid Build Coastguard Worker    KeyOrigin_Derived: 1,
242*9860b763SAndroid Build Coastguard Worker    KeyOrigin_Imported: 2,
243*9860b763SAndroid Build Coastguard Worker    KeyOrigin_Reserved: 3,
244*9860b763SAndroid Build Coastguard Worker    KeyOrigin_SecurelyImported: 4,
245*9860b763SAndroid Build Coastguard Worker)
246*9860b763SAndroid Build Coastguard WorkerKeyPurpose = &(
247*9860b763SAndroid Build Coastguard Worker    KeyPurpose_Encrypt: 0,
248*9860b763SAndroid Build Coastguard Worker    KeyPurpose_Decrypt: 1,
249*9860b763SAndroid Build Coastguard Worker    KeyPurpose_Sign: 2,
250*9860b763SAndroid Build Coastguard Worker    KeyPurpose_Verify: 3,
251*9860b763SAndroid Build Coastguard Worker    KeyPurpose_WrapKey: 5,
252*9860b763SAndroid Build Coastguard Worker    KeyPurpose_AgreeKey: 6,
253*9860b763SAndroid Build Coastguard Worker    KeyPurpose_AttestKey: 7,
254*9860b763SAndroid Build Coastguard Worker)
255*9860b763SAndroid Build Coastguard WorkerHardwareAuthenticatorType = &(
256*9860b763SAndroid Build Coastguard Worker    HardwareAuthenticatorType_None: 0,
257*9860b763SAndroid Build Coastguard Worker    HardwareAuthenticatorType_Password: 1,
258*9860b763SAndroid Build Coastguard Worker    HardwareAuthenticatorType_Fingerprint: 2,
259*9860b763SAndroid Build Coastguard Worker    HardwareAuthenticatorType_Any: -1,
260*9860b763SAndroid Build Coastguard Worker)
261*9860b763SAndroid Build Coastguard WorkerPaddingMode = &(
262*9860b763SAndroid Build Coastguard Worker    PaddingMode_None: 1,
263*9860b763SAndroid Build Coastguard Worker    PaddingMode_RsaOaep: 2,
264*9860b763SAndroid Build Coastguard Worker    PaddingMode_RsaPss: 3,
265*9860b763SAndroid Build Coastguard Worker    PaddingMode_RsaPkcs115Encrypt: 4,
266*9860b763SAndroid Build Coastguard Worker    PaddingMode_RsaPkcs115Sign: 5,
267*9860b763SAndroid Build Coastguard Worker    PaddingMode_Pkcs7: 64,
268*9860b763SAndroid Build Coastguard Worker)
269*9860b763SAndroid Build Coastguard WorkerDateTime = int
270*9860b763SAndroid Build Coastguard WorkerKeySizeInBits = int
271*9860b763SAndroid Build Coastguard WorkerRsaExponent = int
272*9860b763SAndroid Build Coastguard Worker
273