21 #ifndef __PKCS_KEY_HEADER__ 22 #define __PKCS_KEY_HEADER__ 32 enum PKCS8EncryptionType
34 PCKS8_EncryptionType_undefined = 0,
35 #if defined(__ENABLE_MOCANA_PKCS5__) 36 #if defined(__ENABLE_DES_CIPHER__) 37 PCKS8_EncryptionType_pkcs5_v1_sha1_des = 10,
40 #if defined(__ENABLE_ARC2_CIPHERS__) 41 PCKS8_EncryptionType_pkcs5_v1_sha1_rc2 = 11,
44 #if defined(__ENABLE_DES_CIPHER__) && defined(__ENABLE_MOCANA_MD2__) 45 PCKS8_EncryptionType_pkcs5_v1_md2_des = 1,
48 #if defined(__ENABLE_ARC2_CIPHERS__) && defined(__ENABLE_MOCANA_MD2__) 49 PCKS8_EncryptionType_pkcs5_v1_md2_rc2 = 4,
52 #if defined(__ENABLE_DES_CIPHER__) 53 PCKS8_EncryptionType_pkcs5_v1_md5_des = 3,
56 #if defined(__ENABLE_ARC2_CIPHERS__) 57 PCKS8_EncryptionType_pkcs5_v1_md5_rc2 = 6,
60 #if !defined(__DISABLE_3DES_CIPHERS__) 61 PCKS8_EncryptionType_pkcs5_v2_3des = 5000 + 1,
64 #if defined(__ENABLE_DES_CIPHER__) 65 PCKS8_EncryptionType_pkcs5_v2_des = 5000 + 2,
68 #if defined(__ENABLE_ARC2_CIPHERS__) 69 PCKS8_EncryptionType_pkcs5_v2_rc2 = 5000 + 3,
72 #if !defined(__DISABLE_AES_CIPHERS__) 74 #if !defined(__DISABLE_AES128_CIPHER__) 75 PCKS8_EncryptionType_pkcs5_v2_aes128 = 5000 + 4,
78 #if !defined(__DISABLE_AES192_CIPHER__) 79 PCKS8_EncryptionType_pkcs5_v2_aes192 = 5000 + 5,
82 #if !defined(__DISABLE_AES256_CIPHER__) 83 PCKS8_EncryptionType_pkcs5_v2_aes256 = 5000 + 6,
90 PKCS8_EncryptionType_pkcs12 = 12000,
91 #if !defined(__DISABLE_3DES_CIPHERS__) 92 PCKS8_EncryptionType_pkcs12_sha_2des = PKCS8_EncryptionType_pkcs12 + 4,
93 PCKS8_EncryptionType_pkcs12_sha_3des = PKCS8_EncryptionType_pkcs12 + 3,
96 #if defined(__ENABLE_ARC2_CIPHERS__) 97 PCKS8_EncryptionType_pkcs12_sha_rc2_40 = PKCS8_EncryptionType_pkcs12 + 6,
98 PCKS8_EncryptionType_pkcs12_sha_rc2_128 = PKCS8_EncryptionType_pkcs12 + 5,
101 #if !defined(__DISABLE_ARC4_CIPHERS__) 102 PCKS8_EncryptionType_pkcs12_sha_rc4_40 = PKCS8_EncryptionType_pkcs12 + 2,
103 PCKS8_EncryptionType_pkcs12_sha_rc4_128 = PKCS8_EncryptionType_pkcs12 + 1,
110 PKCS8_PrfType_undefined = 0,
114 PKCS8_PrfType_pkcs5_v2_hmacSHA1Digest = 7,
115 PKCS8_PrfType_pkcs5_v2_hmacSHA224Digest = 8,
116 PKCS8_PrfType_pkcs5_v2_hmacSHA256Digest = 9,
117 PKCS8_PrfType_pkcs5_v2_hmacSHA384Digest = 10,
118 PKCS8_PrfType_pkcs5_v2_hmacSHA512Digest = 11
121 #if !defined(__DISABLE_MOCANA_CERTIFICATE_PARSING__) 123 MOC_EXTERN MSTATUS PKCS_getPKCS1Key(MOC_RSA(hwAccelDescr hwAccelCtx)
const ubyte* pPKCS1DER, ubyte4 pkcs1DERLen, AsymmetricKey* pKey);
124 #if defined(__ENABLE_MOCANA_DSA__) 126 MOC_EXTERN MSTATUS PKCS_getDSAKey(MOC_DSA(hwAccelDescr hwAccelCtx)
127 const ubyte* pDSAKeyDer, ubyte4 pDSAKeyDerLen, AsymmetricKey* pKey);
157 MOC_EXTERN MSTATUS
PKCS_getPKCS8Key(MOC_ASYM(hwAccelDescr hwAccelCtx)
const ubyte* pPKCS8DER, ubyte4 pkcs8DERLen, AsymmetricKey* pKey);
191 MOC_EXTERN MSTATUS
PKCS_getPKCS8KeyEx(MOC_HW(hwAccelDescr hwAccelCtx)
const ubyte* pPKCS8DER, ubyte4 pkcs8DERLen,
192 const ubyte* password, ubyte4 passwordLen, AsymmetricKey* pKey);
194 #if defined( __ENABLE_MOCANA_DER_CONVERSION__) || defined(__ENABLE_MOCANA_PEM_CONVERSION__) 195 MOC_EXTERN MSTATUS PKCS_setPKCS1Key(MOC_RSA(hwAccelDescr hwAccelCtx)
196 const AsymmetricKey* pKey,
197 ubyte **ppRetKeyDER, ubyte4 *pRetKeyDERLength);
199 #ifdef __ENABLE_MOCANA_DSA__ 200 MOC_EXTERN MSTATUS PKCS_setDsaDerKey(MOC_DSA(hwAccelDescr hwAccelCtx)
const AsymmetricKey* pKey,
201 ubyte **ppRetKeyDER, ubyte4 *pRetKeyDERLength);
206 #if defined( __ENABLE_MOCANA_DER_CONVERSION__) 207 MOC_EXTERN MSTATUS PKCS_setPKCS8Key(MOC_HW(hwAccelDescr hwAccelCtx)
208 const AsymmetricKey* pKey,
209 randomContext* pRandomContext,
210 enum PKCS8EncryptionType encType,
211 enum PKCS8PrfType prfType,
212 const ubyte* password, ubyte4 passwordLen,
213 ubyte **ppRetKeyDER, ubyte4 *pRetKeyDERLength);
218 #if defined(__ENABLE_MOCANA_PKCS8__) 220 #if defined(__ENABLE_MOCANA_PEM_CONVERSION__) 257 MOC_EXTERN MSTATUS PKCS8_decodePrivateKeyPEMEx(
const ubyte* pFilePemPkcs8, ubyte4 fileSizePemPkcs8, ubyte *pPassword, ubyte4 passwordLen,
258 ubyte** ppKeyBlob, ubyte4 *pKeyBlobLength);
320 MOC_EXTERN MSTATUS PKCS8_encodePrivateKeyPEM(
321 randomContext *pRandomContext,
324 enum PKCS8EncryptionType encType,
325 enum PKCS8PrfType prfType,
328 ubyte** ppRetFilePemPkcs8,
329 ubyte4 *pRetFileSizePemPkcs8);
333 #if defined(__ENABLE_MOCANA_DER_CONVERSION__) 370 MOC_EXTERN MSTATUS PKCS8_decodePrivateKeyDEREx(
const ubyte* pFileDerPkcs8, ubyte4 fileSizeDerPkcs8, ubyte *pPassword, ubyte4 passwordLen,
371 ubyte** ppKeyBlob, ubyte4 *pKeyBlobLength);
433 MOC_EXTERN MSTATUS PKCS8_encodePrivateKeyDER(
434 randomContext *pRandomContext,
437 enum PKCS8EncryptionType encType,
438 enum PKCS8PrfType prfType,
441 ubyte** ppRetFileDerPkcs8,
442 ubyte4 *pRetFileSizeDerPkcs8);
MOC_EXTERN MSTATUS PKCS_getPKCS8KeyEx(MOC_HW(hwAccelDescr hwAccelCtx) const ubyte *pPKCS8DER, ubyte4 pkcs8DERLen, const ubyte *password, ubyte4 passwordLen, AsymmetricKey *pKey)
Extract SoT Platform-formatted key from PKCS #8 DER file (encrypted or unencrypted).
MOC_EXTERN MSTATUS PKCS_getPKCS8Key(MOC_ASYM(hwAccelDescr hwAccelCtx) const ubyte *pPKCS8DER, ubyte4 pkcs8DERLen, AsymmetricKey *pKey)
Extract SoT Platform-formatted key from unencrypted PKCS #8 DER file.