33 #ifndef GEPS_SRC_CRYPTO_M2MB_CRYPTO_H_    34 #define GEPS_SRC_CRYPTO_M2MB_CRYPTO_H_    65 #define M2MB_CRYPTO_OBJ_TYPE_AES_E 0xA0000010    67 #define M2MB_CRYPTO_OBJ_TYPE_HMAC_MD5_E 0xA0000001    69 #define M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA1_E 0xA0000002    71 #define M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA224_E 0xA0000003    73 #define M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA256_E 0xA0000004    75 #define M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA384_E 0xA0000005    77 #define M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA512_E 0xA0000006    79 #define M2MB_CRYPTO_OBJ_TYPE_RSA_PUBLIC_KEY_E 0xA0000030    81 #define M2MB_CRYPTO_OBJ_TYPE_RSA_KEYPAIR_E 0xA1000030    83 #define M2MB_CRYPTO_OBJ_TYPE_DH_KEYPAIR_E 0xA1000032    85 #define M2MB_CRYPTO_OBJ_TYPE_ECDSA_PUBLIC_KEY_E 0xA0000041    87 #define M2MB_CRYPTO_OBJ_TYPE_ECDSA_KEYPAIR_E 0xA1000041    89 #define M2MB_CRYPTO_OBJ_TYPE_ECDH_KEYPAIR_E  0xA1000042    91 #define M2MB_CRYPTO_OBJ_TYPE_GENERIC_SECRET_E 0xA0000000    93 #define M2MB_CRYPTO_OBJ_TYPE_ED25519_PUBLIC_KEY_E 0xA00000C0    95 #define M2MB_CRYPTO_OBJ_TYPE_ED25519_KEYPAIR_E 0xA10000C0    97 #define M2MB_CRYPTO_OBJ_TYPE_CURVE25519_KEYPAIR_E 0xA10000C1    99 #define M2MB_CRYPTO_OBJ_TYPE_SRP_KEYPAIR_E 0xA10000C2   101 #define M2MB_CRYPTO_OBJ_TYPE_CHACHA20_E 0xA00000C3   103 #define M2MB_CRYPTO_OBJ_TYPE_ECJPAKE_ROUND1_PUBLIC_KEY_AND_ZKP_PAIR_E 0xA10000C3   105 #define M2MB_CRYPTO_OBJ_TYPE_ECJPAKE_ROUND2_PUBLIC_KEY_AND_ZKP_E 0xA10000C4   116 #define M2MB_CRYPTO_ALG_AES_CBC_NOPAD_E    0x10000110   118 #define M2MB_CRYPTO_ALG_AES_CTR_E  0x10000210   120 #define M2MB_CRYPTO_ALG_AES_CCM_E  0x40000710   122 #define M2MB_CRYPTO_ALG_AES_GCM_E  0x40000810   124 #define M2MB_CRYPTO_ALG_RSASSA_PKCS1_V1_5_SHA1_E   0x70002830   126 #define M2MB_CRYPTO_ALG_RSASSA_PKCS1_V1_5_SHA256_E     0x70004830   128 #define M2MB_CRYPTO_ALG_RSASSA_PKCS1_V1_5_SHA384_E     0x70005830   130 #define M2MB_CRYPTO_ALG_RSASSA_PKCS1_V1_5_SHA512_E     0x70006830   132 #define M2MB_CRYPTO_ALG_RSAES_PKCS1_V1_5_E     0x60000130   134 #define M2MB_CRYPTO_ALG_RSA_NOPAD_E    0x60000030   136 #define M2MB_CRYPTO_ALG_DH_DERIVE_SHARED_SECRET_E  0x80000032   138 #define M2MB_CRYPTO_ALG_MD5_E  0x50000001   140 #define M2MB_CRYPTO_ALG_SHA1_E     0x50000002   142 #define M2MB_CRYPTO_ALG_SHA224_E   0x50000003   144 #define M2MB_CRYPTO_ALG_SHA256_E   0x50000004   146 #define M2MB_CRYPTO_ALG_SHA384_E   0x50000005   148 #define M2MB_CRYPTO_ALG_SHA512_E   0x50000006   150 #define M2MB_CRYPTO_ALG_HMAC_MD5_E     0x30000001   152 #define M2MB_CRYPTO_ALG_HMAC_SHA1_E    0x30000002   154 #define M2MB_CRYPTO_ALG_HMAC_SHA224_E  0x30000003   156 #define M2MB_CRYPTO_ALG_HMAC_SHA256_E  0x30000004   158 #define M2MB_CRYPTO_ALG_HMAC_SHA384_E  0x30000005   160 #define M2MB_CRYPTO_ALG_HMAC_SHA512_E  0x30000006   162 #define M2MB_CRYPTO_ALG_ECDSA_P192_E   0x70001042   164 #define M2MB_CRYPTO_ALG_ECDSA_P224_E   0x70002042   166 #define M2MB_CRYPTO_ALG_ECDSA_P256_E   0x70003042   168 #define M2MB_CRYPTO_ALG_ECDSA_P384_E   0x70004042   170 #define M2MB_CRYPTO_ALG_ECDSA_P521_E   0x70005042   172 #define M2MB_CRYPTO_ALG_ECDH_P192_E    0x80001042   174 #define M2MB_CRYPTO_ALG_ECDH_P224_E    0x80002042   176 #define M2MB_CRYPTO_ALG_ECDH_P256_E    0x80003042   178 #define M2MB_CRYPTO_ALG_ECDH_P384_E    0x80004042   180 #define M2MB_CRYPTO_ALG_ECDH_P521_E    0x80005042   182 #define M2MB_CRYPTO_ALG_ED25519_E  0x700000C0   184 #define M2MB_CRYPTO_ALG_CURVE25519_DERIVE_SHARED_SECRET_E  0x800000C1   186 #define M2MB_CRYPTO_ALG_SRP_DERIVE_SHARED_SECRET_E     0x800000C2   188 #define M2MB_CRYPTO_ALG_CHACHA20_POLY1305_E    0x400000C3   190 #define M2MB_CRYPTO_ALG_ECJPAKE_E  0x800000C3   218 #define M2MB_CRYPTO_ATTR_SECRET_VALUE_E 0xC0000000   220 #define M2MB_CRYPTO_ATTR_ED25519_PUBLIC_VALUE_E 0xD00001C0   222 #define M2MB_CRYPTO_ATTR_ED25519_PRIVATE_VALUE_E 0xC00001C0   224 #define M2MB_CRYPTO_ATTR_CURVE25519_PUBLIC_VALUE_E 0xD00001C1   226 #define M2MB_CRYPTO_ATTR_CURVE25519_PRIVATE_VALUE_E 0xC00002C1   228 #define M2MB_CRYPTO_ATTR_ECC_PUBLIC_VALUE_X_E 0xD0000141   230 #define M2MB_CRYPTO_ATTR_ECC_PUBLIC_VALUE_Y_E 0xD0000241   232 #define M2MB_CRYPTO_ATTR_ECC_PRIVATE_VALUE_E 0xC0000341   234 #define M2MB_CRYPTO_ATTR_ECC_CURVE_E 0xF0000441   236 #define M2MB_CRYPTO_ATTR_DH_PRIME_E 0xD0001032   238 #define M2MB_CRYPTO_ATTR_DH_BASE_E 0xD0001232   240 #define M2MB_CRYPTO_ATTR_DH_PUBLIC_VALUE_E 0xD0000132   242 #define M2MB_CRYPTO_ATTR_DH_PRIVATE_VALUE_E 0xC0000232   244 #define M2MB_CRYPTO_ATTR_RSA_MODULUS_E 0xD0000130   246 #define M2MB_CRYPTO_ATTR_RSA_PUBLIC_EXPONENT_E 0xD0000230   248 #define M2MB_CRYPTO_ATTR_RSA_PRIVATE_EXPONENT_E 0xC0000330   250 #define M2MB_CRYPTO_ATTR_RSA_PRIME1_E 0xC0000430   252 #define M2MB_CRYPTO_ATTR_RSA_PRIME2_E 0xC0000530   254 #define M2MB_CRYPTO_ATTR_RSA_EXPONENT1_E 0xC0000630   256 #define M2MB_CRYPTO_ATTR_RSA_EXPONENT2_E 0xC0000730   258 #define M2MB_CRYPTO_ATTR_RSA_COEFFICIENT_E 0xC0000830   260 #define M2MB_CRYPTO_ATTR_SRP_PRIME_E 0xD00001C2   262 #define M2MB_CRYPTO_ATTR_SRP_GEN_E   0xD00002C2   264 #define M2MB_CRYPTO_ATTR_SRP_VERIFIER_E  0xC00003C2   266 #define M2MB_CRYPTO_ATTR_SRP_USERNAME_E  0xD00004C2   268 #define M2MB_CRYPTO_ATTR_SRP_PASSWORD_E  0xC00005C2   270 #define M2MB_CRYPTO_ATTR_SRP_TYPE_E  0xD00006C2   272 #define M2MB_CRYPTO_ATTR_SRP_HASH_E  0xD00007C2   274 #define M2MB_CRYPTO_ATTR_SRP_SALT_E  0xD00008C2   276 #define M2MB_CRYPTO_ATTR_SRP_PUBLIC_VALUE_E  0xD00009C2   278 #define M2MB_CRYPTO_ATTR_SRP_PRIVATE_VALUE_E 0xC0000AC2   280 #define M2MB_CRYPTO_ATTR_ECJPAKE_LOCAL_IDENTITY_E 0xD00010C2   282 #define M2MB_CRYPTO_ATTR_ECJPAKE_REMOTE_IDENTITY_E 0xD00020C2   284 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_PUBLIC_KEY_1_E 0xD00030C2   286 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_ZKP_EPHEMERAL_PUBLIC_KEY_1_E 0xD00040C2   288 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_ZKP_SIGNATURE_1_E 0xD00050C2   290 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_PUBLIC_KEY_2_E 0xD00060C2   292 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_ZKP_EPHEMERAL_PUBLIC_KEY_2_E 0xD00070C2   294 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_ZKP_SIGNATURE_2_E 0xD00080C2   296 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND2_PUBLIC_KEY_E 0xD00090C2   298 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND2_ZKP_EPHEMERAL_PUBLIC_KEY_E 0xD00100C2   300 #define M2MB_CRYPTO_ATTR_ECJPAKE_ROUND2_ZKP_SIGNATURE_E 0xD00110C2   309 #define M2MB_CRYPTO_AES128_KEY_BYTES (16)   311 #define M2MB_CRYPTO_AES256_KEY_BYTES (32)   313 #define M2MB_CRYPTO_AES_IV_BYTES (16)   315 #define M2MB_CRYPTO_AES_BLOCK_BYTES (16) 
struct m2mb_crypto_attrib::@0::@2 val
INT32 m2mb_crypto_random_get(VOID *buffer, UINT16 len)
To get random number. 
struct m2mb_crypto_attrib m2mb_crypto_attrib_t
An attribute can be either a buffer attribute or a value attribute. This is determined by bit [29] of...
An attribute can be either a buffer attribute or a value attribute. This is determined by bit [29] of...
struct m2mb_crypto_attrib::@0::@1 ref
m2mb_crypto_obj_type_t obj
m2mb_crypto_mode_t
Operation mode. enum. 
VOID * M2M_SHA_HANDLE
Handle used in SHA operations. 
UINT32 m2mb_crypto_alg_t
Crypto algorithm type.   Algorithms are the cryptographic functions performed on the keys...
UINT32 m2mb_crypto_attr_type_t
Attribute type. Used in m2mb_crypto_attrib_t. 
union m2mb_crypto_attrib::@0 u
struct m2mb_crypto_attr m2mb_crypto_attr_t
UINT32 m2mb_crypto_obj_type_t
Crypto object type.   Objects are the keys used in the crypto operations.