michael@0: /* michael@0: * ldvector.c - platform dependent DSO containing freebl implementation. michael@0: * michael@0: * This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifdef FREEBL_NO_DEPEND michael@0: extern int FREEBL_InitStubs(void); michael@0: #endif michael@0: michael@0: #include "loader.h" michael@0: #include "alghmac.h" michael@0: #include "hmacct.h" michael@0: michael@0: michael@0: static const struct FREEBLVectorStr vector = michael@0: { michael@0: michael@0: sizeof vector, michael@0: FREEBL_VERSION, michael@0: michael@0: RSA_NewKey, michael@0: RSA_PublicKeyOp, michael@0: RSA_PrivateKeyOp, michael@0: DSA_NewKey, michael@0: DSA_SignDigest, michael@0: DSA_VerifyDigest, michael@0: DSA_NewKeyFromSeed, michael@0: DSA_SignDigestWithSeed, michael@0: DH_GenParam, michael@0: DH_NewKey, michael@0: DH_Derive, michael@0: KEA_Derive, michael@0: KEA_Verify, michael@0: RC4_CreateContext, michael@0: RC4_DestroyContext, michael@0: RC4_Encrypt, michael@0: RC4_Decrypt, michael@0: RC2_CreateContext, michael@0: RC2_DestroyContext, michael@0: RC2_Encrypt, michael@0: RC2_Decrypt, michael@0: RC5_CreateContext, michael@0: RC5_DestroyContext, michael@0: RC5_Encrypt, michael@0: RC5_Decrypt, michael@0: DES_CreateContext, michael@0: DES_DestroyContext, michael@0: DES_Encrypt, michael@0: DES_Decrypt, michael@0: AES_CreateContext, michael@0: AES_DestroyContext, michael@0: AES_Encrypt, michael@0: AES_Decrypt, michael@0: MD5_Hash, michael@0: MD5_HashBuf, michael@0: MD5_NewContext, michael@0: MD5_DestroyContext, michael@0: MD5_Begin, michael@0: MD5_Update, michael@0: MD5_End, michael@0: MD5_FlattenSize, michael@0: MD5_Flatten, michael@0: MD5_Resurrect, michael@0: MD5_TraceState, michael@0: MD2_Hash, michael@0: MD2_NewContext, michael@0: MD2_DestroyContext, michael@0: MD2_Begin, michael@0: MD2_Update, michael@0: MD2_End, michael@0: MD2_FlattenSize, michael@0: MD2_Flatten, michael@0: MD2_Resurrect, michael@0: SHA1_Hash, michael@0: SHA1_HashBuf, michael@0: SHA1_NewContext, michael@0: SHA1_DestroyContext, michael@0: SHA1_Begin, michael@0: SHA1_Update, michael@0: SHA1_End, michael@0: SHA1_TraceState, michael@0: SHA1_FlattenSize, michael@0: SHA1_Flatten, michael@0: SHA1_Resurrect, michael@0: RNG_RNGInit, michael@0: RNG_RandomUpdate, michael@0: RNG_GenerateGlobalRandomBytes, michael@0: RNG_RNGShutdown, michael@0: PQG_ParamGen, michael@0: PQG_ParamGenSeedLen, michael@0: PQG_VerifyParams, michael@0: michael@0: /* End of Version 3.001. */ michael@0: michael@0: RSA_PrivateKeyOpDoubleChecked, michael@0: RSA_PrivateKeyCheck, michael@0: BL_Cleanup, michael@0: michael@0: /* End of Version 3.002. */ michael@0: michael@0: SHA256_NewContext, michael@0: SHA256_DestroyContext, michael@0: SHA256_Begin, michael@0: SHA256_Update, michael@0: SHA256_End, michael@0: SHA256_HashBuf, michael@0: SHA256_Hash, michael@0: SHA256_TraceState, michael@0: SHA256_FlattenSize, michael@0: SHA256_Flatten, michael@0: SHA256_Resurrect, michael@0: michael@0: SHA512_NewContext, michael@0: SHA512_DestroyContext, michael@0: SHA512_Begin, michael@0: SHA512_Update, michael@0: SHA512_End, michael@0: SHA512_HashBuf, michael@0: SHA512_Hash, michael@0: SHA512_TraceState, michael@0: SHA512_FlattenSize, michael@0: SHA512_Flatten, michael@0: SHA512_Resurrect, michael@0: michael@0: SHA384_NewContext, michael@0: SHA384_DestroyContext, michael@0: SHA384_Begin, michael@0: SHA384_Update, michael@0: SHA384_End, michael@0: SHA384_HashBuf, michael@0: SHA384_Hash, michael@0: SHA384_TraceState, michael@0: SHA384_FlattenSize, michael@0: SHA384_Flatten, michael@0: SHA384_Resurrect, michael@0: michael@0: /* End of Version 3.003. */ michael@0: michael@0: AESKeyWrap_CreateContext, michael@0: AESKeyWrap_DestroyContext, michael@0: AESKeyWrap_Encrypt, michael@0: AESKeyWrap_Decrypt, michael@0: michael@0: /* End of Version 3.004. */ michael@0: michael@0: BLAPI_SHVerify, michael@0: BLAPI_VerifySelf, michael@0: michael@0: /* End of Version 3.005. */ michael@0: michael@0: EC_NewKey, michael@0: EC_NewKeyFromSeed, michael@0: EC_ValidatePublicKey, michael@0: ECDH_Derive, michael@0: ECDSA_SignDigest, michael@0: ECDSA_VerifyDigest, michael@0: ECDSA_SignDigestWithSeed, michael@0: michael@0: /* End of Version 3.006. */ michael@0: /* End of Version 3.007. */ michael@0: michael@0: AES_InitContext, michael@0: AESKeyWrap_InitContext, michael@0: DES_InitContext, michael@0: RC2_InitContext, michael@0: RC4_InitContext, michael@0: michael@0: AES_AllocateContext, michael@0: AESKeyWrap_AllocateContext, michael@0: DES_AllocateContext, michael@0: RC2_AllocateContext, michael@0: RC4_AllocateContext, michael@0: michael@0: MD2_Clone, michael@0: MD5_Clone, michael@0: SHA1_Clone, michael@0: SHA256_Clone, michael@0: SHA384_Clone, michael@0: SHA512_Clone, michael@0: michael@0: TLS_PRF, michael@0: HASH_GetRawHashObject, michael@0: michael@0: HMAC_Create, michael@0: HMAC_Init, michael@0: HMAC_Begin, michael@0: HMAC_Update, michael@0: HMAC_Clone, michael@0: HMAC_Finish, michael@0: HMAC_Destroy, michael@0: michael@0: RNG_SystemInfoForRNG, michael@0: michael@0: /* End of Version 3.008. */ michael@0: michael@0: FIPS186Change_GenerateX, michael@0: FIPS186Change_ReduceModQForDSA, michael@0: michael@0: /* End of Version 3.009. */ michael@0: Camellia_InitContext, michael@0: Camellia_AllocateContext, michael@0: Camellia_CreateContext, michael@0: Camellia_DestroyContext, michael@0: Camellia_Encrypt, michael@0: Camellia_Decrypt, michael@0: michael@0: PQG_DestroyParams, michael@0: PQG_DestroyVerify, michael@0: michael@0: /* End of Version 3.010. */ michael@0: michael@0: SEED_InitContext, michael@0: SEED_AllocateContext, michael@0: SEED_CreateContext, michael@0: SEED_DestroyContext, michael@0: SEED_Encrypt, michael@0: SEED_Decrypt, michael@0: michael@0: BL_Init, michael@0: BL_SetForkState, michael@0: michael@0: PRNGTEST_Instantiate, michael@0: PRNGTEST_Reseed, michael@0: PRNGTEST_Generate, michael@0: michael@0: PRNGTEST_Uninstantiate, michael@0: michael@0: /* End of Version 3.011. */ michael@0: michael@0: RSA_PopulatePrivateKey, michael@0: michael@0: DSA_NewRandom, michael@0: michael@0: JPAKE_Sign, michael@0: JPAKE_Verify, michael@0: JPAKE_Round2, michael@0: JPAKE_Final, michael@0: michael@0: /* End of Version 3.012 */ michael@0: michael@0: TLS_P_hash, michael@0: SHA224_NewContext, michael@0: SHA224_DestroyContext, michael@0: SHA224_Begin, michael@0: SHA224_Update, michael@0: SHA224_End, michael@0: SHA224_HashBuf, michael@0: SHA224_Hash, michael@0: SHA224_TraceState, michael@0: SHA224_FlattenSize, michael@0: SHA224_Flatten, michael@0: SHA224_Resurrect, michael@0: SHA224_Clone, michael@0: BLAPI_SHVerifyFile, michael@0: michael@0: /* End of Version 3.013 */ michael@0: michael@0: PQG_ParamGenV2, michael@0: PRNGTEST_RunHealthTests, michael@0: michael@0: /* End of Version 3.014 */ michael@0: michael@0: HMAC_ConstantTime, michael@0: SSLv3_MAC_ConstantTime, michael@0: michael@0: /* End of Version 3.015 */ michael@0: michael@0: RSA_SignRaw, michael@0: RSA_CheckSignRaw, michael@0: RSA_CheckSignRecoverRaw, michael@0: RSA_EncryptRaw, michael@0: RSA_DecryptRaw, michael@0: RSA_EncryptOAEP, michael@0: RSA_DecryptOAEP, michael@0: RSA_EncryptBlock, michael@0: RSA_DecryptBlock, michael@0: RSA_SignPSS, michael@0: RSA_CheckSignPSS, michael@0: RSA_Sign, michael@0: RSA_CheckSign, michael@0: RSA_CheckSignRecover, michael@0: michael@0: /* End of Version 3.016 */ michael@0: michael@0: EC_FillParams, michael@0: EC_DecodeParams, michael@0: EC_CopyParams michael@0: michael@0: /* End of Version 3.017 */ michael@0: }; michael@0: michael@0: const FREEBLVector * michael@0: FREEBL_GetVector(void) michael@0: { michael@0: extern const char __nss_freebl_rcsid[]; michael@0: extern const char __nss_freebl_sccsid[]; michael@0: michael@0: /* force a reference that won't get optimized away */ michael@0: volatile char c; michael@0: michael@0: c = __nss_freebl_rcsid[0] + __nss_freebl_sccsid[0]; michael@0: #ifdef FREEBL_NO_DEPEND michael@0: FREEBL_InitStubs(); michael@0: #endif michael@0: return &vector; michael@0: } michael@0: