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.