|  | 
| struct | m2mb_crypto_attr | 
|  | 
| struct | m2mb_crypto_attrib | 
|  | An attribute can be either a buffer attribute or a value attribute. This is determined by bit [29] of the attribute identifier. If this bit is set to 0, then the attribute is a buffer attribute and the field ref must be selected. If the bit is set to 1, it is a value attribute and the field val must be selected.  More... 
 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_AES_E   0xA0000010 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_HMAC_MD5_E   0xA0000001 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA1_E   0xA0000002 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA224_E   0xA0000003 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA256_E   0xA0000004 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA384_E   0xA0000005 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_HMAC_SHA512_E   0xA0000006 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_RSA_PUBLIC_KEY_E   0xA0000030 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_RSA_KEYPAIR_E   0xA1000030 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_DH_KEYPAIR_E   0xA1000032 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_ECDSA_PUBLIC_KEY_E   0xA0000041 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_ECDSA_KEYPAIR_E   0xA1000041 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_ECDH_KEYPAIR_E   0xA1000042 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_GENERIC_SECRET_E   0xA0000000 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_ED25519_PUBLIC_KEY_E   0xA00000C0 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_ED25519_KEYPAIR_E   0xA10000C0 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_CURVE25519_KEYPAIR_E   0xA10000C1 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_SRP_KEYPAIR_E   0xA10000C2 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_CHACHA20_E   0xA00000C3 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_ECJPAKE_ROUND1_PUBLIC_KEY_AND_ZKP_PAIR_E   0xA10000C3 | 
|  | 
| #define | M2MB_CRYPTO_OBJ_TYPE_ECJPAKE_ROUND2_PUBLIC_KEY_AND_ZKP_E   0xA10000C4 | 
|  | 
| #define | M2MB_CRYPTO_ALG_AES_CBC_NOPAD_E   0x10000110 | 
|  | Algorithm type.  More... 
 | 
|  | 
| #define | M2MB_CRYPTO_ALG_AES_CTR_E   0x10000210 | 
|  | 
| #define | M2MB_CRYPTO_ALG_AES_CCM_E   0x40000710 | 
|  | 
| #define | M2MB_CRYPTO_ALG_AES_GCM_E   0x40000810 | 
|  | 
| #define | M2MB_CRYPTO_ALG_RSASSA_PKCS1_V1_5_SHA1_E   0x70002830 | 
|  | 
| #define | M2MB_CRYPTO_ALG_RSASSA_PKCS1_V1_5_SHA256_E   0x70004830 | 
|  | 
| #define | M2MB_CRYPTO_ALG_RSASSA_PKCS1_V1_5_SHA384_E   0x70005830 | 
|  | 
| #define | M2MB_CRYPTO_ALG_RSASSA_PKCS1_V1_5_SHA512_E   0x70006830 | 
|  | 
| #define | M2MB_CRYPTO_ALG_RSAES_PKCS1_V1_5_E   0x60000130 | 
|  | 
| #define | M2MB_CRYPTO_ALG_RSA_NOPAD_E   0x60000030 | 
|  | 
| #define | M2MB_CRYPTO_ALG_DH_DERIVE_SHARED_SECRET_E   0x80000032 | 
|  | 
| #define | M2MB_CRYPTO_ALG_MD5_E   0x50000001 | 
|  | 
| #define | M2MB_CRYPTO_ALG_SHA1_E   0x50000002 | 
|  | 
| #define | M2MB_CRYPTO_ALG_SHA224_E   0x50000003 | 
|  | 
| #define | M2MB_CRYPTO_ALG_SHA256_E   0x50000004 | 
|  | 
| #define | M2MB_CRYPTO_ALG_SHA384_E   0x50000005 | 
|  | 
| #define | M2MB_CRYPTO_ALG_SHA512_E   0x50000006 | 
|  | 
| #define | M2MB_CRYPTO_ALG_HMAC_MD5_E   0x30000001 | 
|  | 
| #define | M2MB_CRYPTO_ALG_HMAC_SHA1_E   0x30000002 | 
|  | 
| #define | M2MB_CRYPTO_ALG_HMAC_SHA224_E   0x30000003 | 
|  | 
| #define | M2MB_CRYPTO_ALG_HMAC_SHA256_E   0x30000004 | 
|  | 
| #define | M2MB_CRYPTO_ALG_HMAC_SHA384_E   0x30000005 | 
|  | 
| #define | M2MB_CRYPTO_ALG_HMAC_SHA512_E   0x30000006 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDSA_P192_E   0x70001042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDSA_P224_E   0x70002042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDSA_P256_E   0x70003042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDSA_P384_E   0x70004042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDSA_P521_E   0x70005042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDH_P192_E   0x80001042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDH_P224_E   0x80002042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDH_P256_E   0x80003042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDH_P384_E   0x80004042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECDH_P521_E   0x80005042 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ED25519_E   0x700000C0 | 
|  | 
| #define | M2MB_CRYPTO_ALG_CURVE25519_DERIVE_SHARED_SECRET_E   0x800000C1 | 
|  | 
| #define | M2MB_CRYPTO_ALG_SRP_DERIVE_SHARED_SECRET_E   0x800000C2 | 
|  | 
| #define | M2MB_CRYPTO_ALG_CHACHA20_POLY1305_E   0x400000C3 | 
|  | 
| #define | M2MB_CRYPTO_ALG_ECJPAKE_E   0x800000C3 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SECRET_VALUE_E   0xC0000000 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ED25519_PUBLIC_VALUE_E   0xD00001C0 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ED25519_PRIVATE_VALUE_E   0xC00001C0 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_CURVE25519_PUBLIC_VALUE_E   0xD00001C1 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_CURVE25519_PRIVATE_VALUE_E   0xC00002C1 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECC_PUBLIC_VALUE_X_E   0xD0000141 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECC_PUBLIC_VALUE_Y_E   0xD0000241 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECC_PRIVATE_VALUE_E   0xC0000341 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECC_CURVE_E   0xF0000441 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_DH_PRIME_E   0xD0001032 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_DH_BASE_E   0xD0001232 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_DH_PUBLIC_VALUE_E   0xD0000132 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_DH_PRIVATE_VALUE_E   0xC0000232 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_RSA_MODULUS_E   0xD0000130 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_RSA_PUBLIC_EXPONENT_E   0xD0000230 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_RSA_PRIVATE_EXPONENT_E   0xC0000330 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_RSA_PRIME1_E   0xC0000430 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_RSA_PRIME2_E   0xC0000530 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_RSA_EXPONENT1_E   0xC0000630 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_RSA_EXPONENT2_E   0xC0000730 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_RSA_COEFFICIENT_E   0xC0000830 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_PRIME_E   0xD00001C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_GEN_E   0xD00002C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_VERIFIER_E   0xC00003C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_USERNAME_E   0xD00004C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_PASSWORD_E   0xC00005C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_TYPE_E   0xD00006C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_HASH_E   0xD00007C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_SALT_E   0xD00008C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_PUBLIC_VALUE_E   0xD00009C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_SRP_PRIVATE_VALUE_E   0xC0000AC2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_LOCAL_IDENTITY_E   0xD00010C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_REMOTE_IDENTITY_E   0xD00020C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_PUBLIC_KEY_1_E   0xD00030C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_ZKP_EPHEMERAL_PUBLIC_KEY_1_E   0xD00040C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_ZKP_SIGNATURE_1_E   0xD00050C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_PUBLIC_KEY_2_E   0xD00060C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_ZKP_EPHEMERAL_PUBLIC_KEY_2_E   0xD00070C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND1_ZKP_SIGNATURE_2_E   0xD00080C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND2_PUBLIC_KEY_E   0xD00090C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND2_ZKP_EPHEMERAL_PUBLIC_KEY_E   0xD00100C2 | 
|  | 
| #define | M2MB_CRYPTO_ATTR_ECJPAKE_ROUND2_ZKP_SIGNATURE_E   0xD00110C2 | 
|  | 
| #define | M2MB_CRYPTO_AES128_KEY_BYTES   (16) | 
|  | 
| #define | M2MB_CRYPTO_AES256_KEY_BYTES   (32) | 
|  | 
| #define | M2MB_CRYPTO_AES_IV_BYTES   (16) | 
|  | 
| #define | M2MB_CRYPTO_AES_BLOCK_BYTES   (16) | 
|  | 
| enum | m2mb_crypto_mode_t { M2MB_CRYPTO_MODE_ENCRYPT_E,
 M2MB_CRYPTO_MODE_DECRYPT_E,
 M2MB_CRYPTO_MODE_SIGN_E,
 M2MB_CRYPTO_MODE_VERIFY_E,
 M2MB_CRYPTO_MODE_MAC_E,
 M2MB_CRYPTO_MODE_DIGEST_E,
 M2MB_CRYPTO_MODE_DERIVE_E
 }
 | 
|  | Operation mode. enum.  More... 
 | 
|  | 
| typedef UINT32 | m2mb_crypto_obj_type_t | 
|  | Crypto object type. Objects are the keys used in the crypto operations.  More...
 
 | 
|  | 
| typedef UINT32 | m2mb_crypto_alg_t | 
|  | Crypto algorithm type. Algorithms are the cryptographic functions performed on the keys.  More...
 
 | 
|  | 
| typedef UINT32 | m2mb_crypto_attr_type_t | 
|  | Attribute type. Used in m2mb_crypto_attrib_t.  More... 
 | 
|  | 
| typedef struct m2mb_crypto_attr | m2mb_crypto_attr_t | 
|  | 
| typedef 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 the attribute identifier. If this bit is set to 0, then the attribute is a buffer attribute and the field ref must be selected. If the bit is set to 1, it is a value attribute and the field val must be selected.  More... 
 | 
|  | 
| typedef VOID * | M2M_SHA_HANDLE | 
|  | Handle used in SHA operations.  More... 
 | 
|  | 
| INT32 | m2mb_crypto_random_get (VOID *buffer, UINT16 len) | 
|  | To get random number.  More... 
 | 
|  | 
Crypto support. 
we866e4/epl/core/m2mb/driver/crypto/m2mb_crypto.h
M2MB APIs to perform various cryptographic operations
- Note
- Dependencies:
 "#include <m2mb_types.h>"
- Author
- Burhanuddin
- Date
- 3/04/2018 
Definition in file m2mb_crypto.h.