tee_internal/
binding.rs

1/* automatically generated by rust-bindgen 0.72.0 */
2
3// Copyright 2025 The Fuchsia Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style license that can be
5// found in the LICENSE file.
6
7// LINT.IfChange
8
9#![allow(dead_code)]
10#![allow(non_camel_case_types)]
11#![allow(non_snake_case)]
12#![allow(non_upper_case_globals)]
13#![allow(clippy::missing_safety_doc)]
14#![allow(clippy::undocumented_unsafe_blocks, reason = "bindgen-generated code")]
15
16// This file is automatically generated by //src/microfuchsia/tee/tee_internal_api/generate.py.
17
18#[repr(C)]
19#[derive(Default)]
20pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
21impl<T> __IncompleteArrayField<T> {
22    #[inline]
23    pub const fn new() -> Self {
24        __IncompleteArrayField(::std::marker::PhantomData, [])
25    }
26    #[inline]
27    pub fn as_ptr(&self) -> *const T {
28        self as *const _ as *const T
29    }
30    #[inline]
31    pub fn as_mut_ptr(&mut self) -> *mut T {
32        self as *mut _ as *mut T
33    }
34    #[inline]
35    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
36        unsafe { ::std::slice::from_raw_parts(self.as_ptr(), len) }
37    }
38    #[inline]
39    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
40        unsafe { ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) }
41    }
42}
43impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
44    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
45        fmt.write_str("__IncompleteArrayField")
46    }
47}
48pub const TEE_HANDLE_NULL: u32 = 0;
49pub const TEE_SUCCESS: u32 = 0;
50pub const TEE_ERROR_CORRUPT_OBJECT: u32 = 4027580417;
51pub const TEE_ERROR_CORRUPT_OBJECT_2: u32 = 4027580418;
52pub const TEE_ERROR_STORAGE_NOT_AVAILABLE: u32 = 4027580419;
53pub const TEE_ERROR_STORAGE_NOT_AVAILABLE_2: u32 = 4027580420;
54pub const TEE_ERROR_UNSUPPORTED_VERSION: u32 = 4027580421;
55pub const TEE_ERROR_CIPHERTEXT_INVALID: u32 = 4027580422;
56pub const TEE_ERROR_GENERIC: u32 = 4294901760;
57pub const TEE_ERROR_ACCESS_DENIED: u32 = 4294901761;
58pub const TEE_ERROR_CANCEL: u32 = 4294901762;
59pub const TEE_ERROR_ACCESS_CONFLICT: u32 = 4294901763;
60pub const TEE_ERROR_EXCESS_DATA: u32 = 4294901764;
61pub const TEE_ERROR_BAD_FORMAT: u32 = 4294901765;
62pub const TEE_ERROR_BAD_PARAMETERS: u32 = 4294901766;
63pub const TEE_ERROR_BAD_STATE: u32 = 4294901767;
64pub const TEE_ERROR_ITEM_NOT_FOUND: u32 = 4294901768;
65pub const TEE_ERROR_NOT_IMPLEMENTED: u32 = 4294901769;
66pub const TEE_ERROR_NOT_SUPPORTED: u32 = 4294901770;
67pub const TEE_ERROR_NO_DATA: u32 = 4294901771;
68pub const TEE_ERROR_OUT_OF_MEMORY: u32 = 4294901772;
69pub const TEE_ERROR_BUSY: u32 = 4294901773;
70pub const TEE_ERROR_COMMUNICATION: u32 = 4294901774;
71pub const TEE_ERROR_SECURITY: u32 = 4294901775;
72pub const TEE_ERROR_SHORT_BUFFER: u32 = 4294901776;
73pub const TEE_ERROR_EXTERNAL_CANCEL: u32 = 4294901777;
74pub const TEE_ERROR_TIMEOUT: u32 = 4294914049;
75pub const TEE_ERROR_OVERFLOW: u32 = 4294914063;
76pub const TEE_ERROR_TARGET_DEAD: u32 = 4294914084;
77pub const TEE_ERROR_STORAGE_NO_SPACE: u32 = 4294914113;
78pub const TEE_ERROR_MAC_INVALID: u32 = 4294914161;
79pub const TEE_ERROR_SIGNATURE_INVALID: u32 = 4294914162;
80pub const TEE_ERROR_TIME_NOT_SET: u32 = 4294922240;
81pub const TEE_ERROR_TIME_NEEDS_RESET: u32 = 4294922241;
82pub const TEE_PARAM_TYPE_NONE: u32 = 0;
83pub const TEE_PARAM_TYPE_VALUE_INPUT: u32 = 1;
84pub const TEE_PARAM_TYPE_VALUE_OUTPUT: u32 = 2;
85pub const TEE_PARAM_TYPE_VALUE_INOUT: u32 = 3;
86pub const TEE_PARAM_TYPE_MEMREF_INPUT: u32 = 5;
87pub const TEE_PARAM_TYPE_MEMREF_OUTPUT: u32 = 6;
88pub const TEE_PARAM_TYPE_MEMREF_INOUT: u32 = 7;
89pub const TEE_LOGIN_PUBLIC: u32 = 0;
90pub const TEE_LOGIN_USER: u32 = 1;
91pub const TEE_LOGIN_GROUP: u32 = 2;
92pub const TEE_LOGIN_APPLICATION: u32 = 4;
93pub const TEE_LOGIN_APPLICATION_USER: u32 = 5;
94pub const TEE_LOGIN_APPLICATION_GROUP: u32 = 6;
95pub const TEE_LOGIN_TRUSTED_APP: u32 = 4026531840;
96pub const TEE_ORIGIN_API: u32 = 1;
97pub const TEE_ORIGIN_COMMS: u32 = 2;
98pub const TEE_ORIGIN_TEE: u32 = 3;
99pub const TEE_ORIGIN_TRUSTED_APP: u32 = 4;
100pub const TEE_MEMORY_ACCESS_READ: u32 = 1;
101pub const TEE_MEMORY_ACCESS_WRITE: u32 = 2;
102pub const TEE_MEMORY_ACCESS_ANY_OWNER: u32 = 4;
103pub const TEE_DATA_SEEK_SET: u32 = 0;
104pub const TEE_DATA_SEEK_CUR: u32 = 1;
105pub const TEE_DATA_SEEK_END: u32 = 2;
106pub const TEE_WHENCE_ILLEGAL_VALUE: u32 = 2147483647;
107pub const TEE_STORAGE_PRIVATE: u32 = 1;
108pub const TEE_STORAGE_PERSO: u32 = 2;
109pub const TEE_STORAGE_PROTECTED: u32 = 3;
110pub const TEE_STORAGE_ILLEGAL_VALUE: u32 = 2147483647;
111pub const TEE_DATA_FLAG_ACCESS_READ: u32 = 1;
112pub const TEE_DATA_FLAG_ACCESS_WRITE: u32 = 2;
113pub const TEE_DATA_FLAG_ACCESS_WRITE_META: u32 = 4;
114pub const TEE_DATA_FLAG_SHARE_READ: u32 = 16;
115pub const TEE_DATA_FLAG_SHARE_WRITE: u32 = 32;
116pub const TEE_DATA_FLAG_OVERWRITE: u32 = 1024;
117pub const TEE_DATA_FLAG_EXCLUSIVE: u32 = 1024;
118pub const TEE_USAGE_EXTRACTABLE: u32 = 1;
119pub const TEE_USAGE_ENCRYPT: u32 = 2;
120pub const TEE_USAGE_DECRYPT: u32 = 4;
121pub const TEE_USAGE_MAC: u32 = 8;
122pub const TEE_USAGE_SIGN: u32 = 16;
123pub const TEE_USAGE_VERIFY: u32 = 32;
124pub const TEE_USAGE_DERIVE: u32 = 64;
125pub const TEE_DATA_MAX_POSITION: u32 = 4294967295;
126pub const TEE_OBJECT_ID_MAX_LEN: u32 = 64;
127pub const TEE_HANDLE_FLAG_PERSISTENT: u32 = 65536;
128pub const TEE_HANDLE_FLAG_INITIALIZED: u32 = 131072;
129pub const TEE_HANDLE_FLAG_KEY_SET: u32 = 262144;
130pub const TEE_HANDLE_FLAG_EXPECT_TWO_KEYS: u32 = 524288;
131pub const TEE_HANDLE_FLAG_EXTRACTING: u32 = 1048576;
132pub const TEE_OPERATION_CIPHER: u32 = 1;
133pub const TEE_OPERATION_MAC: u32 = 3;
134pub const TEE_OPERATION_AE: u32 = 4;
135pub const TEE_OPERATION_DIGEST: u32 = 5;
136pub const TEE_OPERATION_ASYMMETRIC_CIPHER: u32 = 6;
137pub const TEE_OPERATION_ASYMMETRIC_SIGNATURE: u32 = 7;
138pub const TEE_OPERATION_KEY_DERIVATION: u32 = 8;
139pub const TEE_OPERATION_STATE_INITIAL: u32 = 0;
140pub const TEE_OPERATION_STATE_ACTIVE: u32 = 1;
141pub const TEE_OPERATION_STATE_EXTRACTING: u32 = 2;
142pub const TEE_MODE_ENCRYPT: u32 = 0;
143pub const TEE_MODE_DECRYPT: u32 = 1;
144pub const TEE_MODE_SIGN: u32 = 2;
145pub const TEE_MODE_VERIFY: u32 = 3;
146pub const TEE_MODE_MAC: u32 = 4;
147pub const TEE_MODE_DIGEST: u32 = 5;
148pub const TEE_MODE_DERIVE: u32 = 6;
149pub const TEE_MODE_ILLEGAL_VALUE: u32 = 2147483647;
150pub const TEE_ALG_AES_ECB_NOPAD: u32 = 268435472;
151pub const TEE_ALG_AES_CBC_NOPAD: u32 = 268435728;
152pub const TEE_ALG_AES_CTR: u32 = 268435984;
153pub const TEE_ALG_AES_CTS: u32 = 268436240;
154pub const TEE_ALG_AES_XTS: u32 = 268436496;
155pub const TEE_ALG_AES_CBC_MAC_NOPAD: u32 = 805306640;
156pub const TEE_ALG_AES_CBC_MAC_PKCS5: u32 = 805307664;
157pub const TEE_ALG_AES_CMAC: u32 = 805307920;
158pub const TEE_ALG_AES_CCM: u32 = 1073743632;
159pub const TEE_ALG_AES_GCM: u32 = 1073743888;
160pub const TEE_ALG_DES_ECB_NOPAD: u32 = 268435473;
161pub const TEE_ALG_DES_CBC_NOPAD: u32 = 268435729;
162pub const TEE_ALG_DES_CBC_MAC_NOPAD: u32 = 805306641;
163pub const TEE_ALG_DES_CBC_MAC_PKCS5: u32 = 805307665;
164pub const TEE_ALG_DES3_ECB_NOPAD: u32 = 268435475;
165pub const TEE_ALG_DES3_CBC_NOPAD: u32 = 268435731;
166pub const TEE_ALG_DES3_CBC_MAC_NOPAD: u32 = 805306643;
167pub const TEE_ALG_DES3_CBC_MAC_PKCS5: u32 = 805307667;
168pub const TEE_ALG_RSASSA_PKCS1_V1_5_MD5: u32 = 1879054384;
169pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA1: u32 = 1879058480;
170pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA224: u32 = 1879062576;
171pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA256: u32 = 1879066672;
172pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA384: u32 = 1879070768;
173pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA512: u32 = 1879074864;
174pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA3_224: u32 = 1879083056;
175pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA3_256: u32 = 1879087152;
176pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA3_384: u32 = 1879091248;
177pub const TEE_ALG_RSASSA_PKCS1_V1_5_SHA3_512: u32 = 1879095344;
178pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA1: u32 = 1881221424;
179pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA224: u32 = 1882274096;
180pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA256: u32 = 1883326768;
181pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA384: u32 = 1884379440;
182pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA512: u32 = 1885432112;
183pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA3_224: u32 = 1887537456;
184pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA3_256: u32 = 1888590128;
185pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA3_384: u32 = 1889642800;
186pub const TEE_ALG_RSASSA_PKCS1_PSS_MGF1_SHA3_512: u32 = 1890695472;
187pub const TEE_ALG_RSAES_PKCS1_V1_5: u32 = 1610613040;
188pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA1: u32 = 1612775984;
189pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA224: u32 = 1613824560;
190pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA256: u32 = 1614873136;
191pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA384: u32 = 1615921712;
192pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA512: u32 = 1616970288;
193pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA3_224: u32 = 1619067440;
194pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA3_256: u32 = 1620116016;
195pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA3_384: u32 = 1621164592;
196pub const TEE_ALG_RSAES_PKCS1_OAEP_MGF1_SHA3_512: u32 = 1622213168;
197pub const TEE_ALG_RSA_NOPAD: u32 = 1610612784;
198pub const TEE_ALG_DSA_SHA1: u32 = 1879056689;
199pub const TEE_ALG_DSA_SHA224: u32 = 1879060785;
200pub const TEE_ALG_DSA_SHA256: u32 = 1879064881;
201pub const TEE_ALG_DSA_SHA3_224: u32 = 1879081265;
202pub const TEE_ALG_DSA_SHA3_256: u32 = 1879085361;
203pub const TEE_ALG_DSA_SHA3_384: u32 = 1879089457;
204pub const TEE_ALG_DSA_SHA3_512: u32 = 1879093553;
205pub const TEE_ALG_DH_DERIVE_SHARED_SECRET: u32 = 2147483698;
206pub const TEE_ALG_MD5: u32 = 1342177281;
207pub const TEE_ALG_SHA1: u32 = 1342177282;
208pub const TEE_ALG_SHA224: u32 = 1342177283;
209pub const TEE_ALG_SHA256: u32 = 1342177284;
210pub const TEE_ALG_SHA384: u32 = 1342177285;
211pub const TEE_ALG_SHA512: u32 = 1342177286;
212pub const TEE_ALG_SHA3_224: u32 = 1342177288;
213pub const TEE_ALG_SHA3_256: u32 = 1342177289;
214pub const TEE_ALG_SHA3_384: u32 = 1342177290;
215pub const TEE_ALG_SHA3_512: u32 = 1342177291;
216pub const TEE_ALG_HMAC_MD5: u32 = 805306369;
217pub const TEE_ALG_HMAC_SHA1: u32 = 805306370;
218pub const TEE_ALG_HMAC_SHA224: u32 = 805306371;
219pub const TEE_ALG_HMAC_SHA256: u32 = 805306372;
220pub const TEE_ALG_HMAC_SHA384: u32 = 805306373;
221pub const TEE_ALG_HMAC_SHA512: u32 = 805306374;
222pub const TEE_ALG_HMAC_SHA3_224: u32 = 805306376;
223pub const TEE_ALG_HMAC_SHA3_256: u32 = 805306377;
224pub const TEE_ALG_HMAC_SHA3_384: u32 = 805306378;
225pub const TEE_ALG_HMAC_SHA3_512: u32 = 805306379;
226pub const TEE_ALG_HKDF: u32 = 2147483719;
227pub const TEE_ALG_SHAKE128: u32 = 1342177537;
228pub const TEE_ALG_SHAKE256: u32 = 1342177538;
229pub const TEE_ALG_ILLEGAL_VALUE: u32 = 4026531839;
230pub const TEE_TYPE_AES: u32 = 2684354576;
231pub const TEE_TYPE_DES: u32 = 2684354577;
232pub const TEE_TYPE_DES3: u32 = 2684354579;
233pub const TEE_TYPE_HMAC_MD5: u32 = 2684354561;
234pub const TEE_TYPE_HMAC_SHA1: u32 = 2684354562;
235pub const TEE_TYPE_HMAC_SHA224: u32 = 2684354563;
236pub const TEE_TYPE_HMAC_SHA256: u32 = 2684354564;
237pub const TEE_TYPE_HMAC_SHA384: u32 = 2684354565;
238pub const TEE_TYPE_HMAC_SHA512: u32 = 2684354566;
239pub const TEE_TYPE_HMAC_SM3: u32 = 2684354567;
240pub const TEE_TYPE_HMAC_SHA3_224: u32 = 2684354568;
241pub const TEE_TYPE_HMAC_SHA3_256: u32 = 2684354569;
242pub const TEE_TYPE_HMAC_SHA3_384: u32 = 2684354570;
243pub const TEE_TYPE_HMAC_SHA3_512: u32 = 2684354571;
244pub const TEE_TYPE_RSA_PUBLIC_KEY: u32 = 2684354608;
245pub const TEE_TYPE_RSA_KEYPAIR: u32 = 2701131824;
246pub const TEE_TYPE_DSA_PUBLIC_KEY: u32 = 2684354609;
247pub const TEE_TYPE_DSA_KEYPAIR: u32 = 2701131825;
248pub const TEE_TYPE_DH_KEYPAIR: u32 = 2701131826;
249pub const TEE_TYPE_ECDSA_PUBLIC_KEY: u32 = 2684354625;
250pub const TEE_TYPE_ECDSA_KEYPAIR: u32 = 2701131841;
251pub const TEE_TYPE_ECDH_PUBLIC_KEY: u32 = 2684354626;
252pub const TEE_TYPE_ECDH_KEYPAIR: u32 = 2701131842;
253pub const TEE_TYPE_ED25519_PUBLIC_KEY: u32 = 2684354627;
254pub const TEE_TYPE_ED25519_KEYPAIR: u32 = 2701131843;
255pub const TEE_TYPE_X25519_PUBLIC_KEY: u32 = 2684354628;
256pub const TEE_TYPE_X25519_KEYPAIR: u32 = 2701131844;
257pub const TEE_TYPE_SM2_DSA_PUBLIC_KEY: u32 = 2684354629;
258pub const TEE_TYPE_SM2_DSA_KEYPAIR: u32 = 2701131845;
259pub const TEE_TYPE_SM2_KEP_PUBLIC_KEY: u32 = 2684354630;
260pub const TEE_TYPE_SM2_KEP_KEYPAIR: u32 = 2701131846;
261pub const TEE_TYPE_SM2_PKE_PUBLIC_KEY: u32 = 2684354631;
262pub const TEE_TYPE_SM2_PKE_KEYPAIR: u32 = 2701131847;
263pub const TEE_TYPE_SM4: u32 = 2684354580;
264pub const TEE_TYPE_HKDF: u32 = 2684354634;
265pub const TEE_TYPE_GENERIC_SECRET: u32 = 2684354560;
266pub const TEE_TYPE_CORRUPTED_OBJECT: u32 = 2684354750;
267pub const TEE_TYPE_DATA: u32 = 2684354751;
268pub const TEE_TYPE_ILLEGAL_VALUE: u32 = 4026531839;
269pub const TEE_CRYPTO_ELEMENT_NONE: u32 = 0;
270pub const TEE_ECC_CURVE_NIST_P192: u32 = 1;
271pub const TEE_ECC_CURVE_NIST_P224: u32 = 2;
272pub const TEE_ECC_CURVE_NIST_P256: u32 = 3;
273pub const TEE_ECC_CURVE_NIST_P384: u32 = 4;
274pub const TEE_ECC_CURVE_NIST_P521: u32 = 5;
275pub const TEE_ECC_CURVE_BSI_P160r1: u32 = 257;
276pub const TEE_ECC_CURVE_BSI_P192r1: u32 = 258;
277pub const TEE_ECC_CURVE_BSI_P224r1: u32 = 259;
278pub const TEE_ECC_CURVE_BSI_P256r1: u32 = 260;
279pub const TEE_ECC_CURVE_BSI_P320r1: u32 = 261;
280pub const TEE_ECC_CURVE_BSI_P384r1: u32 = 262;
281pub const TEE_ECC_CURVE_BSI_P512r1: u32 = 263;
282pub const TEE_ECC_CURVE_BSI_P160t1: u32 = 513;
283pub const TEE_ECC_CURVE_BSI_P192t1: u32 = 514;
284pub const TEE_ECC_CURVE_BSI_P224t1: u32 = 515;
285pub const TEE_ECC_CURVE_BSI_P256t1: u32 = 516;
286pub const TEE_ECC_CURVE_BSI_P320t1: u32 = 517;
287pub const TEE_ECC_CURVE_BSI_P384t1: u32 = 518;
288pub const TEE_ECC_CURVE_BSI_P512t1: u32 = 519;
289pub const TEE_ECC_CURVE_25519: u32 = 768;
290pub const TEE_ECC_CURVE_448: u32 = 769;
291pub const TEE_ECC_CURVE_SM2: u32 = 768;
292pub const TEE_ATTR_SECRET_VALUE: u32 = 3221225472;
293pub const TEE_ATTR_RSA_MODULUS: u32 = 3489661232;
294pub const TEE_ATTR_RSA_PUBLIC_EXPONENT: u32 = 3489661488;
295pub const TEE_ATTR_RSA_PRIVATE_EXPONENT: u32 = 3221226288;
296pub const TEE_ATTR_RSA_PRIME1: u32 = 3221226544;
297pub const TEE_ATTR_RSA_PRIME2: u32 = 3221226800;
298pub const TEE_ATTR_RSA_EXPONENT1: u32 = 3221227056;
299pub const TEE_ATTR_RSA_EXPONENT2: u32 = 3221227312;
300pub const TEE_ATTR_RSA_COEFFICIENT: u32 = 3221227568;
301pub const TEE_ATTR_DSA_PRIME: u32 = 3489665073;
302pub const TEE_ATTR_DSA_SUBPRIME: u32 = 3489665329;
303pub const TEE_ATTR_DSA_BASE: u32 = 3489665585;
304pub const TEE_ATTR_DSA_PUBLIC_VALUE: u32 = 3489661233;
305pub const TEE_ATTR_DSA_PRIVATE_VALUE: u32 = 3221226033;
306pub const TEE_ATTR_DH_PRIME: u32 = 3489665074;
307pub const TEE_ATTR_DH_SUBPRIME: u32 = 3489665330;
308pub const TEE_ATTR_DH_BASE: u32 = 3489665586;
309pub const TEE_ATTR_DH_X_BITS: u32 = 4026536754;
310pub const TEE_ATTR_DH_PUBLIC_VALUE: u32 = 3489661234;
311pub const TEE_ATTR_DH_PRIVATE_VALUE: u32 = 3221226034;
312pub const TEE_ATTR_RSA_OAEP_LABEL: u32 = 3489663280;
313pub const TEE_ATTR_RSA_OAEP_MGF_HASH: u32 = 3489663281;
314pub const TEE_ATTR_RSA_PSS_SALT_LENGTH: u32 = 4026534448;
315pub const TEE_ATTR_ECC_PUBLIC_VALUE_X: u32 = 3489661249;
316pub const TEE_ATTR_ECC_PUBLIC_VALUE_Y: u32 = 3489661505;
317pub const TEE_ATTR_ECC_PRIVATE_VALUE: u32 = 3221226305;
318pub const TEE_ATTR_ECC_EPHEMERAL_PUBLIC_VALUE_X: u32 = 3489661254;
319pub const TEE_ATTR_ECC_EPHEMERAL_PUBLIC_VALUE_Y: u32 = 3489661510;
320pub const TEE_ATTR_ECC_CURVE: u32 = 4026532929;
321pub const TEE_ATTR_EDDSA_CTX: u32 = 3489662531;
322pub const TEE_ATTR_ED25519_PUBLIC_VALUE: u32 = 3489662787;
323pub const TEE_ATTR_ED25519_PRIVATE_VALUE: u32 = 3221227587;
324pub const TEE_ATTR_X25519_PUBLIC_VALUE: u32 = 3489663300;
325pub const TEE_ATTR_X25519_PRIVATE_VALUE: u32 = 3221228100;
326pub const TEE_ATTR_ED448_PUBLIC_VALUE: u32 = 3489660930;
327pub const TEE_ATTR_ED448_PRIVATE_VALUE: u32 = 3221225475;
328pub const TEE_ATTR_EDDSA_PREHASH: u32 = 4026531844;
329pub const TEE_ATTR_X448_PUBLIC_VALUE: u32 = 3489663557;
330pub const TEE_ATTR_X448_PRIVATE_VALUE: u32 = 3221228102;
331pub const TEE_ATTR_SM2_ID_INITIATOR: u32 = 3489662022;
332pub const TEE_ATTR_SM2_ID_RESPONDER: u32 = 3489662278;
333pub const TEE_ATTR_SM2_KEP_USER: u32 = 4026533446;
334pub const TEE_ATTR_SM2_KEP_CONFIRMATION_IN: u32 = 3489662790;
335pub const TEE_ATTR_SM2_KEP_CONFIRMATION_OUT: u32 = 3489663046;
336pub const TEE_ATTR_HKDF_SALT: u32 = 3489663302;
337pub const TEE_ATTR_HKDF_INFO: u32 = 3489663558;
338pub const TEE_ATTR_HKDF_HASH_ALGORITHM: u32 = 4026534726;
339pub const TEE_ATTR_KDF_KEY_SIZE: u32 = 4026534982;
340pub const TEE_ATTR_FLAG_VALUE: u32 = 536870912;
341pub const TEE_ATTR_FLAG_PUBLIC: u32 = 268435456;
342pub const TEE_TIMEOUT_INFINITE: u32 = 4294967295;
343pub const TEE_CORE_API_MAJOR_VERSION: u32 = 1;
344pub const TEE_CORE_API_MINOR_VERSION: u32 = 3;
345pub const TEE_CORE_API_MAINTENANCE_VERSION: u32 = 1;
346pub const TEE_CORE_API_VERSION: u32 = 16974080;
347pub type __intmax_t = ::std::os::raw::c_long;
348pub type intmax_t = __intmax_t;
349pub type TEE_Result = u32;
350#[repr(C)]
351#[derive(Debug, Copy, Clone, PartialEq)]
352pub struct TEE_UUID {
353    pub timeLow: u32,
354    pub timeMid: u16,
355    pub timeHiAndVersion: u16,
356    pub clockSeqAndNode: [u8; 8usize],
357}
358#[repr(C)]
359#[derive(Debug, Copy, Clone, PartialEq)]
360pub struct TEE_Identity {
361    pub login: u32,
362    pub uuid: TEE_UUID,
363}
364#[repr(C)]
365#[derive(Copy, Clone)]
366pub union TEE_Param {
367    pub memref: TEE_Param__bindgen_ty_1,
368    pub value: TEE_Param__bindgen_ty_2,
369}
370#[repr(C)]
371#[derive(Debug, Copy, Clone, PartialEq)]
372pub struct TEE_Param__bindgen_ty_1 {
373    pub buffer: *mut ::std::os::raw::c_void,
374    pub size: usize,
375}
376#[repr(C)]
377#[derive(Debug, Copy, Clone, PartialEq)]
378pub struct TEE_Param__bindgen_ty_2 {
379    pub a: u32,
380    pub b: u32,
381}
382impl ::std::fmt::Debug for TEE_Param {
383    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
384        write!(f, "TEE_Param {{ union }}")
385    }
386}
387#[repr(C)]
388#[derive(Debug)]
389pub struct __TEE_TASessionHandle {
390    _unused: [u8; 0],
391}
392pub type TEE_TASessionHandle = *mut __TEE_TASessionHandle;
393#[repr(C)]
394#[derive(Debug)]
395pub struct __TEE_PropSetHandle {
396    _unused: [u8; 0],
397}
398pub type TEE_PropSetHandle = *mut __TEE_PropSetHandle;
399#[repr(C)]
400#[derive(Copy, Clone)]
401pub struct TEE_Attribute {
402    pub attributeID: u32,
403    pub __bindgen_padding_0: [u8; 4usize],
404    pub content: TEE_Attribute__bindgen_ty_1,
405}
406#[repr(C)]
407#[derive(Copy, Clone)]
408pub union TEE_Attribute__bindgen_ty_1 {
409    pub ref_: TEE_Attribute__bindgen_ty_1__bindgen_ty_1,
410    pub value: TEE_Attribute__bindgen_ty_1__bindgen_ty_2,
411}
412#[repr(C)]
413#[derive(Debug, Copy, Clone, PartialEq)]
414pub struct TEE_Attribute__bindgen_ty_1__bindgen_ty_1 {
415    pub buffer: *mut ::std::os::raw::c_void,
416    pub length: usize,
417}
418#[repr(C)]
419#[derive(Debug, Copy, Clone, PartialEq)]
420pub struct TEE_Attribute__bindgen_ty_1__bindgen_ty_2 {
421    pub a: u32,
422    pub b: u32,
423}
424impl ::std::fmt::Debug for TEE_Attribute__bindgen_ty_1 {
425    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
426        write!(f, "TEE_Attribute__bindgen_ty_1 {{ union }}")
427    }
428}
429impl ::std::fmt::Debug for TEE_Attribute {
430    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
431        write!(f, "TEE_Attribute {{ content: {:?} }}", self.content)
432    }
433}
434#[repr(C)]
435#[derive(Debug, Copy, Clone, PartialEq)]
436pub struct TEE_ObjectInfo {
437    pub objectType: u32,
438    pub objectSize: u32,
439    pub maxObjectSize: u32,
440    pub objectUsage: u32,
441    pub dataSize: usize,
442    pub dataPosition: usize,
443    pub handleFlags: u32,
444    pub __bindgen_padding_0: [u8; 4usize],
445}
446pub type TEE_Whence = u32;
447#[repr(C)]
448#[derive(Debug)]
449pub struct __TEE_ObjectHandle {
450    _unused: [u8; 0],
451}
452pub type TEE_ObjectHandle = *mut __TEE_ObjectHandle;
453#[repr(C)]
454#[derive(Debug)]
455pub struct __TEE_ObjectEnumHandle {
456    _unused: [u8; 0],
457}
458pub type TEE_ObjectEnumHandle = *mut __TEE_ObjectEnumHandle;
459pub type TEE_OperationMode = u32;
460#[repr(C)]
461#[derive(Debug, Copy, Clone, PartialEq)]
462pub struct TEE_OperationInfo {
463    pub algorithm: u32,
464    pub operationClass: u32,
465    pub mode: u32,
466    pub digestLength: u32,
467    pub maxKeySize: u32,
468    pub keySize: u32,
469    pub requiredKeyUsage: u32,
470    pub handleState: u32,
471}
472#[repr(C)]
473#[derive(Debug, Copy, Clone, PartialEq)]
474pub struct TEE_OperationInfoKey {
475    pub keySize: u32,
476    pub requiredKeyUsage: u32,
477}
478#[repr(C)]
479#[derive(Debug)]
480pub struct TEE_OperationInfoMultiple {
481    pub algorithm: u32,
482    pub operationClass: u32,
483    pub mode: u32,
484    pub digestLength: u32,
485    pub maxKeySize: u32,
486    pub handleState: u32,
487    pub operationState: u32,
488    pub numberOfKeys: u32,
489    pub keyInformation: __IncompleteArrayField<TEE_OperationInfoKey>,
490}
491#[repr(C)]
492#[derive(Debug)]
493pub struct __TEE_OperationHandle {
494    _unused: [u8; 0],
495}
496pub type TEE_OperationHandle = *mut __TEE_OperationHandle;
497#[repr(C)]
498#[derive(Debug, Copy, Clone, PartialEq)]
499pub struct TEE_Time {
500    pub seconds: u32,
501    pub millis: u32,
502}
503pub type TEE_BigInt = u32;
504pub type TEE_BigIntFMMContext = u32;
505pub type TEE_BigIntFMM = u32;
506unsafe extern "C" {
507    pub fn TA_CreateEntryPoint() -> TEE_Result;
508}
509unsafe extern "C" {
510    pub fn TA_DestroyEntryPoint();
511}
512unsafe extern "C" {
513    pub fn TA_OpenSessionEntryPoint(
514        paramTypes: u32,
515        params: *mut TEE_Param,
516        sessionContext: *mut *mut ::std::os::raw::c_void,
517    ) -> TEE_Result;
518}
519unsafe extern "C" {
520    pub fn TA_CloseSessionEntryPoint(sessionContext: *mut ::std::os::raw::c_void);
521}
522unsafe extern "C" {
523    pub fn TA_InvokeCommandEntryPoint(
524        sessionContext: *mut ::std::os::raw::c_void,
525        commandID: u32,
526        paramTypes: u32,
527        params: *mut TEE_Param,
528    ) -> TEE_Result;
529}
530unsafe extern "C" {
531    pub fn TEE_GetPropertyAsString(
532        propsetOrEnumerator: TEE_PropSetHandle,
533        name: *mut ::std::os::raw::c_char,
534        valueBuffer: *mut ::std::os::raw::c_char,
535        valueBufferLen: *mut usize,
536    ) -> TEE_Result;
537}
538unsafe extern "C" {
539    pub fn TEE_GetPropertyAsBool(
540        propsetOrEnumerator: TEE_PropSetHandle,
541        name: *mut ::std::os::raw::c_char,
542        value: *mut bool,
543    ) -> TEE_Result;
544}
545unsafe extern "C" {
546    pub fn TEE_GetPropertyAsU32(
547        propsetOrEnumerator: TEE_PropSetHandle,
548        name: *mut ::std::os::raw::c_char,
549        value: *mut u32,
550    ) -> TEE_Result;
551}
552unsafe extern "C" {
553    pub fn TEE_GetPropertyAsU64(
554        propsetOrEnumerator: TEE_PropSetHandle,
555        name: *mut ::std::os::raw::c_char,
556        value: *mut u64,
557    ) -> TEE_Result;
558}
559unsafe extern "C" {
560    pub fn TEE_GetPropertyAsBinaryBlock(
561        propsetOrEnumerator: TEE_PropSetHandle,
562        name: *mut ::std::os::raw::c_char,
563        valueBuffer: *mut ::std::os::raw::c_void,
564        valueBufferLen: *mut usize,
565    ) -> TEE_Result;
566}
567unsafe extern "C" {
568    pub fn TEE_GetPropertyAsUUID(
569        propsetOrEnumerator: TEE_PropSetHandle,
570        name: *mut ::std::os::raw::c_char,
571        value: *mut TEE_UUID,
572    ) -> TEE_Result;
573}
574unsafe extern "C" {
575    pub fn TEE_GetPropertyAsIdentity(
576        propsetOrEnumerator: TEE_PropSetHandle,
577        name: *mut ::std::os::raw::c_char,
578        value: *mut TEE_Identity,
579    ) -> TEE_Result;
580}
581unsafe extern "C" {
582    pub fn TEE_AllocatePropertyEnumerator(enumerator: *mut TEE_PropSetHandle) -> TEE_Result;
583}
584unsafe extern "C" {
585    pub fn TEE_FreePropertyEnumerator(enumerator: TEE_PropSetHandle);
586}
587unsafe extern "C" {
588    pub fn TEE_StartPropertyEnumerator(enumerator: TEE_PropSetHandle, propSet: TEE_PropSetHandle);
589}
590unsafe extern "C" {
591    pub fn TEE_ResetPropertyEnumerator(enumerator: TEE_PropSetHandle);
592}
593unsafe extern "C" {
594    pub fn TEE_GetPropertyName(
595        enumerator: TEE_PropSetHandle,
596        nameBuffer: *mut ::std::os::raw::c_void,
597        nameBufferLen: *mut usize,
598    ) -> TEE_Result;
599}
600unsafe extern "C" {
601    pub fn TEE_GetNextProperty(enumerator: TEE_PropSetHandle) -> TEE_Result;
602}
603unsafe extern "C" {
604    pub fn TEE_Panic(panicCode: TEE_Result) -> !;
605}
606unsafe extern "C" {
607    pub fn TEE_OpenTASession(
608        destination: *const TEE_UUID,
609        cancellationRequestTimeout: u32,
610        paramTypes: u32,
611        params: *mut TEE_Param,
612        session: *mut TEE_TASessionHandle,
613        returnOrigin: *mut u32,
614    ) -> TEE_Result;
615}
616unsafe extern "C" {
617    pub fn TEE_CloseTASession(session: TEE_TASessionHandle);
618}
619unsafe extern "C" {
620    pub fn TEE_InvokeTACommand(
621        session: TEE_TASessionHandle,
622        cancellationRequestTimeout: u32,
623        commandID: u32,
624        paramTypes: u32,
625        params: *mut TEE_Param,
626        returnOrigin: *mut u32,
627    ) -> TEE_Result;
628}
629unsafe extern "C" {
630    pub fn TEE_GetCancellationFlag() -> bool;
631}
632unsafe extern "C" {
633    pub fn TEE_UnmaskCancellation() -> bool;
634}
635unsafe extern "C" {
636    pub fn TEE_MaskCancellation() -> bool;
637}
638unsafe extern "C" {
639    pub fn TEE_CheckMemoryAccessRights(
640        accessFlags: u32,
641        buffer: *mut ::std::os::raw::c_void,
642        size: usize,
643    ) -> TEE_Result;
644}
645unsafe extern "C" {
646    pub fn TEE_SetInstanceData(instanceData: *mut ::std::os::raw::c_void);
647}
648unsafe extern "C" {
649    pub fn TEE_GetInstanceData() -> *mut ::std::os::raw::c_void;
650}
651unsafe extern "C" {
652    pub fn TEE_Malloc(size: usize, hint: u32) -> *mut ::std::os::raw::c_void;
653}
654unsafe extern "C" {
655    pub fn TEE_Realloc(
656        buffer: *mut ::std::os::raw::c_void,
657        newSize: usize,
658    ) -> *mut ::std::os::raw::c_void;
659}
660unsafe extern "C" {
661    pub fn TEE_Free(buffer: *mut ::std::os::raw::c_void);
662}
663unsafe extern "C" {
664    pub fn TEE_MemMove(
665        dest: *mut ::std::os::raw::c_void,
666        src: *const ::std::os::raw::c_void,
667        size: usize,
668    );
669}
670unsafe extern "C" {
671    pub fn TEE_MemCompare(
672        buffer1: *const ::std::os::raw::c_void,
673        buffer2: *const ::std::os::raw::c_void,
674        size: usize,
675    ) -> i32;
676}
677unsafe extern "C" {
678    pub fn TEE_MemFill(buffer: *mut ::std::os::raw::c_void, x: u8, size: usize);
679}
680unsafe extern "C" {
681    pub fn TEE_GetObjectInfo1(
682        object: TEE_ObjectHandle,
683        objectInfo: *mut TEE_ObjectInfo,
684    ) -> TEE_Result;
685}
686unsafe extern "C" {
687    pub fn TEE_RestrictObjectUsage1(object: TEE_ObjectHandle, objectUsage: u32) -> TEE_Result;
688}
689unsafe extern "C" {
690    pub fn TEE_GetObjectBufferAttribute(
691        object: TEE_ObjectHandle,
692        attributeID: u32,
693        buffer: *mut ::std::os::raw::c_void,
694        size: *mut usize,
695    ) -> TEE_Result;
696}
697unsafe extern "C" {
698    pub fn TEE_GetObjectValueAttribute(
699        object: TEE_ObjectHandle,
700        attributeID: u32,
701        a: *mut u32,
702        b: *mut u32,
703    ) -> TEE_Result;
704}
705unsafe extern "C" {
706    pub fn TEE_CloseObject(object: TEE_ObjectHandle);
707}
708unsafe extern "C" {
709    pub fn TEE_AllocateTransientObject(
710        objectType: u32,
711        maxObjectSize: u32,
712        object: *mut TEE_ObjectHandle,
713    ) -> TEE_Result;
714}
715unsafe extern "C" {
716    pub fn TEE_FreeTransientObject(object: TEE_ObjectHandle);
717}
718unsafe extern "C" {
719    pub fn TEE_ResetTransientObject(object: TEE_ObjectHandle);
720}
721unsafe extern "C" {
722    pub fn TEE_PopulateTransientObject(
723        object: TEE_ObjectHandle,
724        attrs: *mut TEE_Attribute,
725        attrCount: u32,
726    ) -> TEE_Result;
727}
728unsafe extern "C" {
729    pub fn TEE_InitRefAttribute(
730        attr: *mut TEE_Attribute,
731        attributeID: u32,
732        buffer: *mut ::std::os::raw::c_void,
733        length: usize,
734    );
735}
736unsafe extern "C" {
737    pub fn TEE_InitValueAttribute(attr: *mut TEE_Attribute, attributeID: u32, a: u32, b: u32);
738}
739unsafe extern "C" {
740    pub fn TEE_CopyObjectAttributes1(
741        destObject: TEE_ObjectHandle,
742        srcObject: TEE_ObjectHandle,
743    ) -> TEE_Result;
744}
745unsafe extern "C" {
746    pub fn TEE_GenerateKey(
747        object: TEE_ObjectHandle,
748        keySize: u32,
749        params: *mut TEE_Attribute,
750        paramCount: u32,
751    ) -> TEE_Result;
752}
753unsafe extern "C" {
754    pub fn TEE_OpenPersistentObject(
755        storageID: u32,
756        objectID: *mut ::std::os::raw::c_void,
757        objectIDLen: usize,
758        flags: u32,
759        object: *mut TEE_ObjectHandle,
760    ) -> TEE_Result;
761}
762unsafe extern "C" {
763    pub fn TEE_CreatePersistentObject(
764        storageID: u32,
765        objectID: *mut ::std::os::raw::c_void,
766        objectIDLen: usize,
767        flags: u32,
768        attributes: TEE_ObjectHandle,
769        initialData: *mut ::std::os::raw::c_void,
770        initialDataLen: usize,
771        object: *mut TEE_ObjectHandle,
772    ) -> TEE_Result;
773}
774unsafe extern "C" {
775    pub fn TEE_CloseAndDeletePersistentObject1(object: TEE_ObjectHandle) -> TEE_Result;
776}
777unsafe extern "C" {
778    pub fn TEE_RenamePersistentObject(
779        object: TEE_ObjectHandle,
780        newObjectID: *mut ::std::os::raw::c_void,
781        newObjectIDLen: usize,
782    ) -> TEE_Result;
783}
784unsafe extern "C" {
785    pub fn TEE_AllocatePersistentObjectEnumerator(
786        objectEnumerator: *mut TEE_ObjectEnumHandle,
787    ) -> TEE_Result;
788}
789unsafe extern "C" {
790    pub fn TEE_FreePersistentObjectEnumerator(objectEnumerator: TEE_ObjectEnumHandle);
791}
792unsafe extern "C" {
793    pub fn TEE_ResetPersistentObjectEnumerator(objectEnumerator: TEE_ObjectEnumHandle);
794}
795unsafe extern "C" {
796    pub fn TEE_StartPersistentObjectEnumerator(
797        objectEnumerator: TEE_ObjectEnumHandle,
798        storageID: u32,
799    ) -> TEE_Result;
800}
801unsafe extern "C" {
802    pub fn TEE_GetNextPersistentObject(
803        objectEnumerator: TEE_ObjectEnumHandle,
804        objectInfo: *mut TEE_ObjectInfo,
805        objectID: *mut ::std::os::raw::c_void,
806        objectIDLen: *mut usize,
807    ) -> TEE_Result;
808}
809unsafe extern "C" {
810    pub fn TEE_ReadObjectData(
811        object: TEE_ObjectHandle,
812        buffer: *mut ::std::os::raw::c_void,
813        size: usize,
814        count: *mut usize,
815    ) -> TEE_Result;
816}
817unsafe extern "C" {
818    pub fn TEE_WriteObjectData(
819        object: TEE_ObjectHandle,
820        buffer: *mut ::std::os::raw::c_void,
821        size: usize,
822    ) -> TEE_Result;
823}
824unsafe extern "C" {
825    pub fn TEE_TruncateObjectData(object: TEE_ObjectHandle, size: usize) -> TEE_Result;
826}
827unsafe extern "C" {
828    pub fn TEE_SeekObjectData(
829        object: TEE_ObjectHandle,
830        offset: intmax_t,
831        whence: TEE_Whence,
832    ) -> TEE_Result;
833}
834unsafe extern "C" {
835    pub fn TEE_AllocateOperation(
836        operation: *mut TEE_OperationHandle,
837        algorithm: u32,
838        mode: u32,
839        maxKeySize: u32,
840    ) -> TEE_Result;
841}
842unsafe extern "C" {
843    pub fn TEE_FreeOperation(operation: TEE_OperationHandle);
844}
845unsafe extern "C" {
846    pub fn TEE_GetOperationInfo(
847        operation: TEE_OperationHandle,
848        operationInfo: *mut TEE_OperationInfo,
849    );
850}
851unsafe extern "C" {
852    pub fn TEE_GetOperationInfoMultiple(
853        operation: TEE_OperationHandle,
854        operationInfoMultiple: *mut TEE_OperationInfoMultiple,
855        operationSize: *mut usize,
856    ) -> TEE_Result;
857}
858unsafe extern "C" {
859    pub fn TEE_ResetOperation(operation: TEE_OperationHandle);
860}
861unsafe extern "C" {
862    pub fn TEE_SetOperationKey(operation: TEE_OperationHandle, key: TEE_ObjectHandle)
863    -> TEE_Result;
864}
865unsafe extern "C" {
866    pub fn TEE_SetOperationKey2(
867        operation: TEE_OperationHandle,
868        key1: TEE_ObjectHandle,
869        key2: TEE_ObjectHandle,
870    ) -> TEE_Result;
871}
872unsafe extern "C" {
873    pub fn TEE_CopyOperation(dstOperation: TEE_OperationHandle, srcOperation: TEE_OperationHandle);
874}
875unsafe extern "C" {
876    pub fn TEE_IsAlgorithmSupported(algId: u32, element: u32) -> TEE_Result;
877}
878unsafe extern "C" {
879    pub fn TEE_DigestUpdate(
880        operation: TEE_OperationHandle,
881        chunk: *mut ::std::os::raw::c_void,
882        chunkSize: usize,
883    );
884}
885unsafe extern "C" {
886    pub fn TEE_DigestDoFinal(
887        operation: TEE_OperationHandle,
888        chunk: *mut ::std::os::raw::c_void,
889        chunkLen: usize,
890        hash: *mut ::std::os::raw::c_void,
891        hashLen: *mut usize,
892    ) -> TEE_Result;
893}
894unsafe extern "C" {
895    pub fn TEE_DigestExtract(
896        operation: TEE_OperationHandle,
897        hash: *mut ::std::os::raw::c_void,
898        hashLen: *mut usize,
899    ) -> TEE_Result;
900}
901unsafe extern "C" {
902    pub fn TEE_CipherInit(
903        operation: TEE_OperationHandle,
904        IV: *mut ::std::os::raw::c_void,
905        IVLen: usize,
906    );
907}
908unsafe extern "C" {
909    pub fn TEE_CipherUpdate(
910        operation: TEE_OperationHandle,
911        srcData: *mut ::std::os::raw::c_void,
912        srcLen: usize,
913        destData: *mut ::std::os::raw::c_void,
914        destLen: *mut usize,
915    ) -> TEE_Result;
916}
917unsafe extern "C" {
918    pub fn TEE_CipherDoFinal(
919        operation: TEE_OperationHandle,
920        srcData: *mut ::std::os::raw::c_void,
921        srcLen: usize,
922        destData: *mut ::std::os::raw::c_void,
923        destLen: *mut usize,
924    ) -> TEE_Result;
925}
926unsafe extern "C" {
927    pub fn TEE_MACInit(
928        operation: TEE_OperationHandle,
929        IV: *mut ::std::os::raw::c_void,
930        IVLen: usize,
931    );
932}
933unsafe extern "C" {
934    pub fn TEE_MACUpdate(
935        operation: TEE_OperationHandle,
936        chunk: *mut ::std::os::raw::c_void,
937        chunkSize: usize,
938    );
939}
940unsafe extern "C" {
941    pub fn TEE_MACComputeFinal(
942        operation: TEE_OperationHandle,
943        message: *mut ::std::os::raw::c_void,
944        messageLen: usize,
945        mac: *mut ::std::os::raw::c_void,
946        macLen: *mut usize,
947    ) -> TEE_Result;
948}
949unsafe extern "C" {
950    pub fn TEE_MACCompareFinal(
951        operation: TEE_OperationHandle,
952        message: *mut ::std::os::raw::c_void,
953        messageLen: usize,
954        mac: *mut ::std::os::raw::c_void,
955        macLen: usize,
956    ) -> TEE_Result;
957}
958unsafe extern "C" {
959    pub fn TEE_AEInit(
960        operation: TEE_OperationHandle,
961        nonce: *mut ::std::os::raw::c_void,
962        nonceLen: usize,
963        tagLen: u32,
964        AADLen: usize,
965        payloadLen: usize,
966    ) -> TEE_Result;
967}
968unsafe extern "C" {
969    pub fn TEE_AEUpdateAAD(
970        operation: TEE_OperationHandle,
971        AADdata: *mut ::std::os::raw::c_void,
972        AADdataLen: usize,
973    );
974}
975unsafe extern "C" {
976    pub fn TEE_AEUpdate(
977        operation: TEE_OperationHandle,
978        srcData: *mut ::std::os::raw::c_void,
979        srcLen: usize,
980        destData: *mut ::std::os::raw::c_void,
981        destLen: *mut usize,
982    ) -> TEE_Result;
983}
984unsafe extern "C" {
985    pub fn TEE_AEEncryptFinal(
986        operation: TEE_OperationHandle,
987        srcData: *mut ::std::os::raw::c_void,
988        srcLen: usize,
989        destData: *mut ::std::os::raw::c_void,
990        destLen: *mut usize,
991        tag: *mut ::std::os::raw::c_void,
992        tagLen: *mut usize,
993    ) -> TEE_Result;
994}
995unsafe extern "C" {
996    pub fn TEE_AEDecryptFinal(
997        operation: TEE_OperationHandle,
998        srcData: *mut ::std::os::raw::c_void,
999        srcLen: usize,
1000        destData: *mut ::std::os::raw::c_void,
1001        destLen: *mut usize,
1002        tag: *mut ::std::os::raw::c_void,
1003        tagLen: usize,
1004    ) -> TEE_Result;
1005}
1006unsafe extern "C" {
1007    pub fn TEE_AsymmetricEncrypt(
1008        operation: TEE_OperationHandle,
1009        params: *mut TEE_Attribute,
1010        paramCount: u32,
1011        srcData: *mut ::std::os::raw::c_void,
1012        srcLen: usize,
1013        destData: *mut ::std::os::raw::c_void,
1014        destLen: *mut usize,
1015    ) -> TEE_Result;
1016}
1017unsafe extern "C" {
1018    pub fn TEE_AsymmetricDecrypt(
1019        operation: TEE_OperationHandle,
1020        params: *mut TEE_Attribute,
1021        paramCount: u32,
1022        srcData: *mut ::std::os::raw::c_void,
1023        srcLen: usize,
1024        destData: *mut ::std::os::raw::c_void,
1025        destLen: *mut usize,
1026    ) -> TEE_Result;
1027}
1028unsafe extern "C" {
1029    pub fn TEE_AsymmetricSignDigest(
1030        operation: TEE_OperationHandle,
1031        params: *mut TEE_Attribute,
1032        paramCount: u32,
1033        digest: *mut ::std::os::raw::c_void,
1034        digestLen: usize,
1035        signature: *mut ::std::os::raw::c_void,
1036        signatureLen: *mut usize,
1037    ) -> TEE_Result;
1038}
1039unsafe extern "C" {
1040    pub fn TEE_AsymmetricVerifyDigest(
1041        operation: TEE_OperationHandle,
1042        params: *mut TEE_Attribute,
1043        paramCount: u32,
1044        digest: *mut ::std::os::raw::c_void,
1045        digestLen: usize,
1046        signature: *mut ::std::os::raw::c_void,
1047        signatureLen: usize,
1048    ) -> TEE_Result;
1049}
1050unsafe extern "C" {
1051    pub fn TEE_DeriveKey(
1052        operation: TEE_OperationHandle,
1053        params: *mut TEE_Attribute,
1054        paramCount: u32,
1055        derivedKey: TEE_ObjectHandle,
1056    );
1057}
1058unsafe extern "C" {
1059    pub fn TEE_GenerateRandom(randomBuffer: *mut ::std::os::raw::c_void, randomBufferLen: usize);
1060}
1061unsafe extern "C" {
1062    pub fn TEE_GetSystemTime(time: *mut TEE_Time);
1063}
1064unsafe extern "C" {
1065    pub fn TEE_Wait(timeout: u32) -> TEE_Result;
1066}
1067unsafe extern "C" {
1068    pub fn TEE_GetTAPersistentTime(time: *mut TEE_Time) -> TEE_Result;
1069}
1070unsafe extern "C" {
1071    pub fn TEE_SetTAPersistentTime(time: *const TEE_Time) -> TEE_Result;
1072}
1073unsafe extern "C" {
1074    pub fn TEE_GetREETime(time: *mut TEE_Time);
1075}
1076unsafe extern "C" {
1077    pub fn TEE_BigIntFMMContextSizeInU32(modulusSizeInBits: usize) -> usize;
1078}
1079unsafe extern "C" {
1080    pub fn TEE_BigIntFMMSizeInU32(modulusSizeInBits: usize) -> usize;
1081}
1082unsafe extern "C" {
1083    pub fn TEE_BigIntInit(bigInt: *mut TEE_BigInt, len: usize);
1084}
1085unsafe extern "C" {
1086    pub fn TEE_BigIntInitFMMContext1(
1087        context: *mut TEE_BigIntFMMContext,
1088        len: usize,
1089        modulus: *mut TEE_BigInt,
1090    ) -> TEE_Result;
1091}
1092unsafe extern "C" {
1093    pub fn TEE_BigIntInitFMM(bigIntFMM: *mut TEE_BigIntFMM, len: usize);
1094}
1095unsafe extern "C" {
1096    pub fn TEE_BigIntConvertFromOctetString(
1097        dest: *mut TEE_BigInt,
1098        buffer: *mut u8,
1099        bufferLen: usize,
1100        sign: i32,
1101    ) -> TEE_Result;
1102}
1103unsafe extern "C" {
1104    pub fn TEE_BigIntConvertToOctetString(
1105        buffer: *mut ::std::os::raw::c_void,
1106        bufferLen: *mut usize,
1107        bigInt: *mut TEE_BigInt,
1108    ) -> TEE_Result;
1109}
1110unsafe extern "C" {
1111    pub fn TEE_BigIntConvertFromS32(dest: *mut TEE_BigInt, shortVal: i32);
1112}
1113unsafe extern "C" {
1114    pub fn TEE_BigIntConvertToS32(dest: *mut i32, src: *mut TEE_BigInt) -> TEE_Result;
1115}
1116unsafe extern "C" {
1117    pub fn TEE_BigIntCmp(op1: *mut TEE_BigInt, op2: *mut TEE_BigInt) -> i32;
1118}
1119unsafe extern "C" {
1120    pub fn TEE_BigIntCmpS32(op: *mut TEE_BigInt, shortVal: i32) -> i32;
1121}
1122unsafe extern "C" {
1123    pub fn TEE_BigIntShiftRight(dest: *mut TEE_BigInt, op: *mut TEE_BigInt, bits: usize);
1124}
1125unsafe extern "C" {
1126    pub fn TEE_BigIntGetBit(src: *mut TEE_BigInt, bitIndex: u32) -> bool;
1127}
1128unsafe extern "C" {
1129    pub fn TEE_BigIntGetBitCount(src: *mut TEE_BigInt) -> u32;
1130}
1131unsafe extern "C" {
1132    pub fn TEE_BigIntSetBit(op: *mut TEE_BigInt, bitIndex: u32, value: bool) -> TEE_Result;
1133}
1134unsafe extern "C" {
1135    pub fn TEE_BigIntAssign(dest: *mut TEE_BigInt, src: *const TEE_BigInt) -> TEE_Result;
1136}
1137unsafe extern "C" {
1138    pub fn TEE_BigIntAbs(dest: *mut TEE_BigInt, src: *const TEE_BigInt) -> TEE_Result;
1139}
1140unsafe extern "C" {
1141    pub fn TEE_BigIntAdd(dest: *mut TEE_BigInt, op1: *const TEE_BigInt, op2: *const TEE_BigInt);
1142}
1143unsafe extern "C" {
1144    pub fn TEE_BigIntSub(dest: *mut TEE_BigInt, op1: *const TEE_BigInt, op2: *const TEE_BigInt);
1145}
1146unsafe extern "C" {
1147    pub fn TEE_BigIntNeg(dest: *mut TEE_BigInt, op: *const TEE_BigInt);
1148}
1149unsafe extern "C" {
1150    pub fn TEE_BigIntMul(dest: *mut TEE_BigInt, op1: *const TEE_BigInt, op2: *const TEE_BigInt);
1151}
1152unsafe extern "C" {
1153    pub fn TEE_BigIntSquare(dest: *mut TEE_BigInt, op: *const TEE_BigInt);
1154}
1155unsafe extern "C" {
1156    pub fn TEE_BigIntDiv(
1157        dest_q: *mut TEE_BigInt,
1158        dest_r: *mut TEE_BigInt,
1159        op1: *const TEE_BigInt,
1160        op2: *const TEE_BigInt,
1161    );
1162}
1163unsafe extern "C" {
1164    pub fn TEE_BigIntMod(dest: *mut TEE_BigInt, op: *const TEE_BigInt, n: *const TEE_BigInt);
1165}
1166unsafe extern "C" {
1167    pub fn TEE_BigIntAddMod(
1168        dest: *mut TEE_BigInt,
1169        op1: *const TEE_BigInt,
1170        op2: *const TEE_BigInt,
1171        n: *const TEE_BigInt,
1172    );
1173}
1174unsafe extern "C" {
1175    pub fn TEE_BigIntSubMod(
1176        dest: *mut TEE_BigInt,
1177        op1: *const TEE_BigInt,
1178        op2: *const TEE_BigInt,
1179        n: *const TEE_BigInt,
1180    );
1181}
1182unsafe extern "C" {
1183    pub fn TEE_BigIntMulMod(
1184        dest: *mut TEE_BigInt,
1185        op1: *const TEE_BigInt,
1186        op2: *const TEE_BigInt,
1187        n: *const TEE_BigInt,
1188    );
1189}
1190unsafe extern "C" {
1191    pub fn TEE_BigIntSquareMod(dest: *mut TEE_BigInt, op: *const TEE_BigInt, n: *const TEE_BigInt);
1192}
1193unsafe extern "C" {
1194    pub fn TEE_BigIntInvMod(dest: *mut TEE_BigInt, op: *const TEE_BigInt, n: *const TEE_BigInt);
1195}
1196unsafe extern "C" {
1197    pub fn TEE_BigIntExpMod(
1198        dest: *mut TEE_BigInt,
1199        op1: *mut TEE_BigInt,
1200        op2: *mut TEE_BigInt,
1201        n: *mut TEE_BigInt,
1202        context: *mut TEE_BigIntFMMContext,
1203    ) -> TEE_Result;
1204}
1205unsafe extern "C" {
1206    pub fn TEE_BigIntRelativePrime(op1: *mut TEE_BigInt, op2: *mut TEE_BigInt) -> bool;
1207}
1208unsafe extern "C" {
1209    pub fn TEE_BigIntComputeExtendedGcd(
1210        gcd: *mut TEE_BigInt,
1211        u: *mut TEE_BigInt,
1212        v: *mut TEE_BigInt,
1213        op1: *mut TEE_BigInt,
1214        op2: *mut TEE_BigInt,
1215    );
1216}
1217unsafe extern "C" {
1218    pub fn TEE_BigIntIsProbablePrime(op: *mut TEE_BigInt, confidenceLevel: u32) -> i32;
1219}
1220unsafe extern "C" {
1221    pub fn TEE_BigIntConvertToFMM(
1222        dest: *mut TEE_BigIntFMM,
1223        src: *mut TEE_BigInt,
1224        n: *mut TEE_BigInt,
1225        context: *mut TEE_BigIntFMMContext,
1226    );
1227}
1228unsafe extern "C" {
1229    pub fn TEE_BigIntConvertFromFMM(
1230        dest: *mut TEE_BigInt,
1231        src: *mut TEE_BigIntFMM,
1232        n: *mut TEE_BigInt,
1233        context: *mut TEE_BigIntFMMContext,
1234    );
1235}
1236unsafe extern "C" {
1237    pub fn TEE_BigIntComputeFMM(
1238        dest: *mut TEE_BigIntFMM,
1239        op1: *mut TEE_BigIntFMM,
1240        op2: *mut TEE_BigIntFMM,
1241        n: *mut TEE_BigInt,
1242        context: *mut TEE_BigIntFMMContext,
1243    );
1244}
1245unsafe extern "C" {
1246    pub fn TEE_GetObjectInfo(object: TEE_ObjectHandle, objectInfo: *mut TEE_ObjectInfo);
1247}
1248unsafe extern "C" {
1249    pub fn TEE_RestrictObjectUsage(object: TEE_ObjectHandle, objectUsage: u32);
1250}
1251unsafe extern "C" {
1252    pub fn TEE_CopyObjectAttributes(destObject: TEE_ObjectHandle, srcObject: TEE_ObjectHandle);
1253}
1254unsafe extern "C" {
1255    pub fn TEE_CloseAndDeletePersistentObject(object: TEE_ObjectHandle);
1256}
1257unsafe extern "C" {
1258    pub fn TEE_BigIntInitFMMContext(
1259        context: *mut TEE_BigIntFMMContext,
1260        len: usize,
1261        modulus: *const TEE_BigInt,
1262    );
1263}
1264
1265// LINT.ThenChange(//zircon/system/public/zircon/compiler.h)