本文整理汇总了C++中EVP_sha512函数的典型用法代码示例。如果您正苦于以下问题:C++ EVP_sha512函数的具体用法?C++ EVP_sha512怎么用?C++ EVP_sha512使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了EVP_sha512函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EVP_BytesToKey
bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::vector<unsigned char>& chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod)
{
if (nRounds < 1 || chSalt.size() != WALLET_CRYPTO_SALT_SIZE)
return false;
int i = 0;
if (nDerivationMethod == 0)
i = EVP_BytesToKey(EVP_aes_256_cbc(), EVP_sha512(), &chSalt[0],
(unsigned char *)&strKeyData[0], strKeyData.size(), nRounds, chKey, chIV);
if (i != (int)WALLET_CRYPTO_KEY_SIZE)
{
OPENSSL_cleanse(chKey, sizeof(chKey));
OPENSSL_cleanse(chIV, sizeof(chIV));
return false;
}
fKeySet = true;
return true;
}
示例2: hb_EVP_MD_ptr_to_id
static int hb_EVP_MD_ptr_to_id( const EVP_MD * p )
{
int n;
if( p == EVP_md_null() ) n = HB_EVP_MD_MD_NULL;
#ifndef OPENSSL_NO_MD2
else if( p == EVP_md2() ) n = HB_EVP_MD_MD2;
#endif
#ifndef OPENSSL_NO_MD4
else if( p == EVP_md4() ) n = HB_EVP_MD_MD4;
#endif
#ifndef OPENSSL_NO_MD5
else if( p == EVP_md5() ) n = HB_EVP_MD_MD5;
#endif
#ifndef OPENSSL_NO_SHA
else if( p == EVP_sha() ) n = HB_EVP_MD_SHA;
else if( p == EVP_sha1() ) n = HB_EVP_MD_SHA1;
else if( p == EVP_dss() ) n = HB_EVP_MD_DSS;
else if( p == EVP_dss1() ) n = HB_EVP_MD_DSS1;
#if ! defined( HB_OPENSSL_OLD_OSX_ )
else if( p == EVP_ecdsa() ) n = HB_EVP_MD_ECDSA;
#endif
#endif
#ifndef OPENSSL_NO_SHA256
else if( p == EVP_sha224() ) n = HB_EVP_MD_SHA224;
else if( p == EVP_sha256() ) n = HB_EVP_MD_SHA256;
#endif
#ifndef OPENSSL_NO_SHA512
else if( p == EVP_sha384() ) n = HB_EVP_MD_SHA384;
else if( p == EVP_sha512() ) n = HB_EVP_MD_SHA512;
#endif
#ifndef OPENSSL_NO_MDC2
else if( p == EVP_mdc2() ) n = HB_EVP_MD_MDC2;
#endif
#ifndef OPENSSL_NO_RIPEMD
else if( p == EVP_ripemd160() ) n = HB_EVP_MD_RIPEMD160;
#endif
else n = HB_EVP_MD_UNSUPPORTED;
return n;
}
示例3: openssl_add_all_digests_int
void openssl_add_all_digests_int(void)
{
#ifndef OPENSSL_NO_MD4
EVP_add_digest(EVP_md4());
#endif
#ifndef OPENSSL_NO_MD5
EVP_add_digest(EVP_md5());
EVP_add_digest_alias(SN_md5, "ssl3-md5");
EVP_add_digest(EVP_md5_sha1());
#endif
EVP_add_digest(EVP_sha1());
EVP_add_digest_alias(SN_sha1, "ssl3-sha1");
EVP_add_digest_alias(SN_sha1WithRSAEncryption, SN_sha1WithRSA);
#if !defined(OPENSSL_NO_MDC2) && !defined(OPENSSL_NO_DES)
EVP_add_digest(EVP_mdc2());
#endif
#ifndef OPENSSL_NO_RMD160
EVP_add_digest(EVP_ripemd160());
EVP_add_digest_alias(SN_ripemd160, "ripemd");
EVP_add_digest_alias(SN_ripemd160, "rmd160");
#endif
EVP_add_digest(EVP_sha224());
EVP_add_digest(EVP_sha256());
EVP_add_digest(EVP_sha384());
EVP_add_digest(EVP_sha512());
#ifndef OPENSSL_NO_WHIRLPOOL
EVP_add_digest(EVP_whirlpool());
#endif
#ifndef OPENSSL_NO_BLAKE2
EVP_add_digest(EVP_blake2b512());
EVP_add_digest(EVP_blake2s256());
#endif
EVP_add_digest(EVP_sha3_224());
EVP_add_digest(EVP_sha3_256());
EVP_add_digest(EVP_sha3_384());
EVP_add_digest(EVP_sha3_512());
#if 0
EVP_add_digest(EVP_shake128());
EVP_add_digest(EVP_shake256());
#endif
}
示例4: is_rsa_pkcs1
/* TODO(davidben): Forbid RSA-PKCS1 in TLS 1.3. For now we allow it because NSS
* has yet to start doing RSA-PSS, so enforcing it would complicate interop
* testing. */
static int is_rsa_pkcs1(const EVP_MD **out_md, uint16_t sigalg) {
switch (sigalg) {
case SSL_SIGN_RSA_PKCS1_MD5_SHA1:
*out_md = EVP_md5_sha1();
return 1;
case SSL_SIGN_RSA_PKCS1_SHA1:
*out_md = EVP_sha1();
return 1;
case SSL_SIGN_RSA_PKCS1_SHA256:
*out_md = EVP_sha256();
return 1;
case SSL_SIGN_RSA_PKCS1_SHA384:
*out_md = EVP_sha384();
return 1;
case SSL_SIGN_RSA_PKCS1_SHA512:
*out_md = EVP_sha512();
return 1;
default:
return 0;
}
}
示例5: KDF_get_x9_63
KDF_FUNC KDF_get_x9_63(const EVP_MD *md)
{
if (md == EVP_md5())
return x963_md5kdf;
else if (md == EVP_ripemd160())
return x963_rmd160kdf;
else if (md == EVP_sha1())
return x963_sha1kdf;
else if (md == EVP_sha224())
return x963_sha224kdf;
else if (md == EVP_sha256())
return x963_sha256kdf;
else if (md == EVP_sha384())
return x963_sha384kdf;
else if (md == EVP_sha512())
return x963_sha512kdf;
else if (md == EVP_sm3())
return x963_sm3kdf;
return NULL;
}
示例6: digest_decide_md
static inline const EVP_MD *
digest_decide_md(const unsigned int alg)
{
switch (alg)
{
case DIGALG_MD5:
return EVP_md5();
case DIGALG_SHA1:
return EVP_sha1();
case DIGALG_SHA2_256:
return EVP_sha256();
case DIGALG_SHA2_512:
return EVP_sha512();
}
(void) slog(LG_ERROR, "%s: called with unknown/unimplemented alg '%u' (BUG)", __func__, alg);
return NULL;
}
示例7: crypto_rsa_verify_signature
bool
crypto_rsa_verify_signature(struct string *databuffer, struct string *signature, const char *pubkey)
{
int err;
bool retval;
EVP_MD_CTX md_ctx;
EVP_PKEY *pkey;
/* load public key into openssl structure */
pkey = crypto_load_key(pubkey, false);
if (pkey == NULL) {
log_err("crypto_verify_signature: key loading failed\n");
return false;
}
/* Verify the signature */
if (EVP_VerifyInit(&md_ctx, EVP_sha512()) != 1) {
log_err("crypto_verify_signature: libcrypto verify init failed\n");
EVP_PKEY_free(pkey);
return false;
}
EVP_VerifyUpdate(&md_ctx, string_get(databuffer), string_length(databuffer));
err = EVP_VerifyFinal(&md_ctx, (unsigned char*)string_get(signature), string_length(signature), pkey);
EVP_PKEY_free(pkey);
if (err != 1) {
log_err("crypto_verify_signature: signature verify failed, received bogus data from backend.\n");
ERR_print_errors_fp(stderr);
retval = false;
goto bailout_ctx_cleanup;
}
retval = true;
bailout_ctx_cleanup:
EVP_MD_CTX_cleanup(&md_ctx);
//log_info("Signature Verified Ok.\n");
return retval;
}
示例8: _md_init_subsystem
static void
_md_init_subsystem (void)
{
int i;
for (i = 0; i < MUNGE_MAC_LAST_ITEM; i++) {
_md_map [i] = NULL;
}
_md_map [MUNGE_MAC_MD5] = EVP_md5 ();
_md_map [MUNGE_MAC_SHA1] = EVP_sha1 ();
_md_map [MUNGE_MAC_RIPEMD160] = EVP_ripemd160 ();
#if HAVE_EVP_SHA256
_md_map [MUNGE_MAC_SHA256] = EVP_sha256 ();
#endif /* HAVE_EVP_SHA256 */
#if HAVE_EVP_SHA512
_md_map [MUNGE_MAC_SHA512] = EVP_sha512 ();
#endif /* HAVE_EVP_SHA512 */
return;
}
示例9: sign_hello
/* This function signs the buffer passed as argument, returns the length of the signature
* else -1 on error
* It leaves the sign in **sign_buf (which is allocated)
*/
int sign_hello(unsigned char* hello_buf,unsigned int hello_len,unsigned char** sign_buf){
EVP_MD_CTX* ctx = NULL;
unsigned int sign_len;
EVP_PKEY* evp = EVP_PKEY_new();
FILE* fp;
*sign_buf = NULL;
ctx = (EVP_MD_CTX*)calloc(1,sizeof(EVP_MD_CTX));
EVP_MD_CTX_init(ctx);
OpenSSL_add_all_algorithms();
if((fp=fopen(PRIV_KEY,"r"))==NULL){
goto fail;
}
if((evp=PEM_read_PrivateKey(fp,NULL,NULL,NULL))==NULL){
goto fail;
}
*sign_buf = (unsigned char*)calloc(1,EVP_PKEY_size(evp));
if(EVP_SignInit(ctx,EVP_sha512())==0){
goto fail;
}
if(EVP_SignUpdate(ctx,hello_buf,hello_len)==0){
goto fail;
}
if(EVP_SignFinal(ctx,*sign_buf,&sign_len,evp)==0){
goto fail;
}
EVP_MD_CTX_cleanup(ctx);
free(ctx);
EVP_PKEY_free(evp);
return sign_len;
fail:
EVP_MD_CTX_cleanup(ctx);
free(ctx);
if (*sign_buf != NULL) {
free(*sign_buf);
}
return -1;
}
示例10: is_ecdsa
static int is_ecdsa(int *out_curve, const EVP_MD **out_md, uint16_t sigalg) {
switch (sigalg) {
case SSL_SIGN_ECDSA_SHA1:
*out_curve = NID_undef;
*out_md = EVP_sha1();
return 1;
case SSL_SIGN_ECDSA_SECP256R1_SHA256:
*out_curve = NID_X9_62_prime256v1;
*out_md = EVP_sha256();
return 1;
case SSL_SIGN_ECDSA_SECP384R1_SHA384:
*out_curve = NID_secp384r1;
*out_md = EVP_sha384();
return 1;
case SSL_SIGN_ECDSA_SECP521R1_SHA512:
*out_curve = NID_secp521r1;
*out_md = EVP_sha512();
return 1;
default:
return 0;
}
}
示例11: lws_genhmac_init
int
lws_genhmac_init(struct lws_genhmac_ctx *ctx, enum lws_genhmac_types type,
const uint8_t *key, size_t key_len)
{
EVP_PKEY *pkey;
ctx->type = type;
switch (type) {
case LWS_GENHMAC_TYPE_SHA256:
ctx->evp_type = EVP_sha256();
break;
case LWS_GENHMAC_TYPE_SHA384:
ctx->evp_type = EVP_sha384();
break;
case LWS_GENHMAC_TYPE_SHA512:
ctx->evp_type = EVP_sha512();
break;
default:
lwsl_err("%s: unknown HMAC type %d\n", __func__, type);
return -1;
}
ctx->ctx = EVP_MD_CTX_create();
if (!ctx->ctx)
return -1;
if (EVP_DigestInit_ex(ctx->ctx, ctx->evp_type, NULL) != 1)
return -1;
pkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, (int)key_len);
if (EVP_DigestSignInit(ctx->ctx, NULL, ctx->evp_type, NULL, pkey) != 1)
return -1;
EVP_PKEY_free(pkey);
return 0;
}
示例12: switch
const EVP_MD *FIPS_get_digestbynid(int nid)
{
switch (nid) {
case NID_sha1:
return EVP_sha1();
case NID_sha224:
return EVP_sha224();
case NID_sha256:
return EVP_sha256();
case NID_sha384:
return EVP_sha384();
case NID_sha512:
return EVP_sha512();
default:
return NULL;
}
}
示例13: get_hash_via_env_var
static int get_hash_via_env_var(char *hash)
{
int fd;
char *ob_key;
struct stat stat_info;
char *p;
if (NULL == (ob_key = (char *) getenv("gtm_obfuscation_key")))
return 1;
fd = open(ob_key, O_RDONLY);
if (fd == -1)
return 1;
if (fstat(fd, &stat_info) == -1)
return 1;
if (!S_ISREG(stat_info.st_mode))
return 1;
p = mmap(0, stat_info.st_size, PROT_READ, MAP_SHARED, fd, 0);
if (MAP_FAILED == p)
return 1;
if (-1 == close(fd))
return 1;
# ifdef USE_OPENSSL
EVP_Digest(p, stat_info.st_size, (unsigned char *)hash, NULL, EVP_sha512(), NULL);
# elif defined USE_GCRYPT
gcry_md_hash_buffer(GCRY_MD_SHA512, hash, p, stat_info.st_size );
# endif
/* Since we have what we want no need to check the status of the munmap */
munmap(p, stat_info.st_size);
return 0;
}
示例14: parcSymmetricKeySigner_Create
PARCSymmetricKeySigner *
parcSymmetricKeySigner_Create(PARCSymmetricKeyStore *keyStore, PARCCryptoHashType hmacHashType)
{
PARCSymmetricKeySigner *result = parcObject_CreateInstance(PARCSymmetricKeySigner);
if (result != NULL) {
result->hashType = hmacHashType;
switch (hmacHashType) {
case PARC_HASH_SHA256:
result->hashLength = SHA256_DIGEST_LENGTH;
result->opensslMd = EVP_sha256();
break;
case PARC_HASH_SHA512:
result->hashLength = SHA512_DIGEST_LENGTH;
result->opensslMd = EVP_sha512();
break;
default:
parcObject_Release((void **) &result);
trapIllegalValue(hmacHashType, "Unknown HMAC hash type: %d", hmacHashType);
}
// the signer key digest is SHA256, independent of the HMAC digest
result->secretKeyHash = parcSymmetricKeyStore_GetVerifierKeyDigest(keyStore);
result->keyStore = parcSymmetricKeyStore_Acquire(keyStore);
result->generalKeyStore = parcKeyStore_Create(result->keyStore, PARCSymmetricKeyStoreAsKeyStore);
// create the functor from the template then specialize it to this keystore.
// This depends on keystore->secret_key being set. It will cause a callback
// into hmac_setup()
result->hasherFunctor = functor_hmac;
result->hasherFunctor.functor_env = result;
result->hasher = parcCryptoHasher_CustomHasher(hmacHashType, result->hasherFunctor);
}
return result;
}
示例15: HMAC_Create
bool HMAC_Create(COSE_MacMessage * pcose, int HSize, int TSize, const byte * pbKey, size_t cbKey, const byte * pbAuthData, size_t cbAuthData, cose_errback * perr)
{
HMAC_CTX ctx;
const EVP_MD * pmd = NULL;
byte * rgbOut = NULL;
unsigned int cbOut;
#ifdef USE_CBOR_CONTEXT
cn_cbor_context * context = &pcose->m_message.m_allocContext;
#endif
HMAC_CTX_init(&ctx);
if (0) {
errorReturn:
COSE_FREE(rgbOut, context);
HMAC_cleanup(&ctx);
return false;
}
switch (HSize) {
case 256: pmd = EVP_sha256(); break;
case 384: pmd = EVP_sha384(); break;
case 512: pmd = EVP_sha512(); break;
default: FAIL_CONDITION(COSE_ERR_INVALID_PARAMETER); break;
}
rgbOut = COSE_CALLOC(EVP_MAX_MD_SIZE, 1, context);
CHECK_CONDITION(rgbOut != NULL, COSE_ERR_OUT_OF_MEMORY);
CHECK_CONDITION(HMAC_Init(&ctx, pbKey, (int) cbKey, pmd), COSE_ERR_CRYPTO_FAIL);
CHECK_CONDITION(HMAC_Update(&ctx, pbAuthData, cbAuthData), COSE_ERR_CRYPTO_FAIL);
CHECK_CONDITION(HMAC_Final(&ctx, rgbOut, &cbOut), COSE_ERR_CRYPTO_FAIL);
CHECK_CONDITION(_COSE_array_replace(&pcose->m_message, cn_cbor_data_create(rgbOut, TSize / 8, CBOR_CONTEXT_PARAM_COMMA NULL), INDEX_MAC_TAG, CBOR_CONTEXT_PARAM_COMMA NULL), COSE_ERR_CBOR);
HMAC_cleanup(&ctx);
return true;
}