您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ EVP_MD_CTX_size函数代码示例

51自学网 2021-06-01 20:35:15
  C++
这篇教程C++ EVP_MD_CTX_size函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中EVP_MD_CTX_size函数的典型用法代码示例。如果您正苦于以下问题:C++ EVP_MD_CTX_size函数的具体用法?C++ EVP_MD_CTX_size怎么用?C++ EVP_MD_CTX_size使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了EVP_MD_CTX_size函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: sc_pkcs11_openssl_md_final

static CK_RV sc_pkcs11_openssl_md_final(sc_pkcs11_operation_t *op,				CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen){	EVP_MD_CTX	*md_ctx = DIGEST_CTX(op);	unsigned int len = *pulDigestLen;	if (len < EVP_MD_CTX_size(md_ctx)) {		*pulDigestLen = EVP_MD_CTX_size(md_ctx);		return CKR_BUFFER_TOO_SMALL;	}	EVP_DigestFinal(md_ctx, pDigest, &len);	*pulDigestLen = len;	return CKR_OK;}
开发者ID:securez,项目名称:opendnie,代码行数:15,


示例2: sc_pkcs11_openssl_md_final

static CK_RV sc_pkcs11_openssl_md_final(sc_pkcs11_operation_t *op,				CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen){	EVP_MD_CTX *md_ctx = DIGEST_CTX(op);	if (*pulDigestLen < (unsigned) EVP_MD_CTX_size(md_ctx)) {		sc_log(context, "Provided buffer too small: %ul < %d",			*pulDigestLen, EVP_MD_CTX_size(md_ctx));		*pulDigestLen = EVP_MD_CTX_size(md_ctx);		return CKR_BUFFER_TOO_SMALL;	}	EVP_DigestFinal(md_ctx, pDigest, (unsigned *) pulDigestLen);	return CKR_OK;}
开发者ID:chmurek1985,项目名称:OpenSC,代码行数:16,


示例3: digest_result_size

static unsigneddigest_result_size(PX_MD *h){	OSSLDigest *digest = (OSSLDigest *) h->p.ptr;	return EVP_MD_CTX_size(&digest->ctx);}
开发者ID:Epictetus,项目名称:postgres,代码行数:7,


示例4: ssl3_final_finish_mac

int ssl3_final_finish_mac(SSL *s, const char *sender, int len, unsigned char *p){    int ret;    EVP_MD_CTX ctx;    if (!ssl3_digest_cached_records(s, 0))        return 0;    if (EVP_MD_CTX_type(s->s3->handshake_dgst) != NID_md5_sha1) {        SSLerr(SSL_F_SSL3_HANDSHAKE_MAC, SSL_R_NO_REQUIRED_DIGEST);        return 0;    }    EVP_MD_CTX_init(&ctx);    EVP_MD_CTX_copy_ex(&ctx, s->s3->handshake_dgst);    ret = EVP_MD_CTX_size(&ctx);    if (ret < 0) {        EVP_MD_CTX_cleanup(&ctx);        return 0;    }    if ((sender != NULL && EVP_DigestUpdate(&ctx, sender, len) <= 0)            || EVP_MD_CTX_ctrl(&ctx, EVP_CTRL_SSL3_MASTER_SECRET,                               s->session->master_key_length,                               s->session->master_key) <= 0            || EVP_DigestFinal_ex(&ctx, p, NULL) <= 0) {        SSLerr(SSL_F_SSL3_HANDSHAKE_MAC, ERR_R_INTERNAL_ERROR);        ret = 0;    }    EVP_MD_CTX_cleanup(&ctx);    return ret;}
开发者ID:super-ala,项目名称:openssl,代码行数:35,


示例5: ssl3_handshake_mac

static int ssl3_handshake_mac(SSL *s, EVP_MD_CTX *in_ctx,	     const char *sender, int len, unsigned char *p)	{	unsigned int ret;	int npad,n;	unsigned int i;	unsigned char md_buf[EVP_MAX_MD_SIZE];	EVP_MD_CTX ctx;	EVP_MD_CTX_copy(&ctx,in_ctx);	n=EVP_MD_CTX_size(&ctx);	npad=(48/n)*n;	if (sender != NULL)		EVP_DigestUpdate(&ctx,sender,len);	EVP_DigestUpdate(&ctx,s->session->master_key,		s->session->master_key_length);	EVP_DigestUpdate(&ctx,ssl3_pad_1,npad);	EVP_DigestFinal(&ctx,md_buf,&i);	EVP_DigestInit(&ctx,EVP_MD_CTX_md(&ctx));	EVP_DigestUpdate(&ctx,s->session->master_key,		s->session->master_key_length);	EVP_DigestUpdate(&ctx,ssl3_pad_2,npad);	EVP_DigestUpdate(&ctx,md_buf,i);	EVP_DigestFinal(&ctx,p,&ret);	memset(&ctx,0,sizeof(EVP_MD_CTX));	return((int)ret);	}
开发者ID:houzhenggang,项目名称:mt7688_mips_ecos,代码行数:32,


示例6: ssl3_handshake_mac

static int ssl3_handshake_mac(SSL *s, EVP_MD_CTX *in_ctx,	     const char *sender, int len, unsigned char *p)	{	unsigned int ret;	int npad,n;	unsigned int i;	unsigned char md_buf[EVP_MAX_MD_SIZE];	EVP_MD_CTX ctx;	EVP_MD_CTX_init(&ctx);	EVP_MD_CTX_set_flags(&ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);	EVP_MD_CTX_copy_ex(&ctx,in_ctx);	n=EVP_MD_CTX_size(&ctx);	npad=(48/n)*n;	if (sender != NULL)		EVP_DigestUpdate(&ctx,sender,len);	EVP_DigestUpdate(&ctx,s->session->master_key,		s->session->master_key_length);	EVP_DigestUpdate(&ctx,ssl3_pad_1,npad);	EVP_DigestFinal_ex(&ctx,md_buf,&i);	EVP_DigestInit_ex(&ctx,EVP_MD_CTX_md(&ctx), NULL);	EVP_DigestUpdate(&ctx,s->session->master_key,		s->session->master_key_length);	EVP_DigestUpdate(&ctx,ssl3_pad_2,npad);	EVP_DigestUpdate(&ctx,md_buf,i);	EVP_DigestFinal_ex(&ctx,p,&ret);	EVP_MD_CTX_cleanup(&ctx);	return((int)ret);	}
开发者ID:RafaelRMachado,项目名称:MinnowBoard,代码行数:34,


示例7: EVP_hexdigest

static PyObject *EVP_hexdigest(EVPobject *self, PyObject *unused){    unsigned char digest[EVP_MAX_MD_SIZE];    EVP_MD_CTX *temp_ctx;    unsigned int digest_size;    temp_ctx = EVP_MD_CTX_new();    if (temp_ctx == NULL) {        PyErr_NoMemory();        return NULL;    }    /* Get the raw (binary) digest value */    if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {        return _setException(PyExc_ValueError);    }    digest_size = EVP_MD_CTX_size(temp_ctx);    if (!EVP_DigestFinal(temp_ctx, digest, NULL)) {        _setException(PyExc_ValueError);        return NULL;    }    EVP_MD_CTX_free(temp_ctx);    return _Py_strhex((const char *)digest, digest_size);}
开发者ID:M31MOTH,项目名称:cpython,代码行数:27,


示例8: soter_hash_final

soter_status_t soter_hash_final(soter_hash_ctx_t *hash_ctx, uint8_t* hash_value, size_t* hash_length){	size_t md_length;	if (!hash_ctx || !hash_length)	{		return SOTER_INVALID_PARAMETER;	}	md_length = (size_t)EVP_MD_CTX_size(&(hash_ctx->evp_md_ctx));	if (!hash_value || (md_length > *hash_length))	{		*hash_length = md_length;		return SOTER_BUFFER_TOO_SMALL;	}	if (EVP_DigestFinal(&(hash_ctx->evp_md_ctx), hash_value, (unsigned int *)&md_length))	{		*hash_length = md_length;		return SOTER_SUCCESS;	}	else	{		return SOTER_FAIL;	}}
开发者ID:Lagovas,项目名称:themis,代码行数:28,


示例9: EVP_digest

static PyObject *EVP_digest(EVPobject *self, PyObject *unused){    unsigned char digest[EVP_MAX_MD_SIZE];    EVP_MD_CTX *temp_ctx;    PyObject *retval;    unsigned int digest_size;    temp_ctx = EVP_MD_CTX_new();    if (temp_ctx == NULL) {        PyErr_NoMemory();        return NULL;    }    if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {        return _setException(PyExc_ValueError);    }    digest_size = EVP_MD_CTX_size(temp_ctx);    if (!EVP_DigestFinal(temp_ctx, digest, NULL)) {        _setException(PyExc_ValueError);        return NULL;    }    retval = PyBytes_FromStringAndSize((const char *)digest, digest_size);    EVP_MD_CTX_free(temp_ctx);    return retval;}
开发者ID:M31MOTH,项目名称:cpython,代码行数:27,


示例10: n_ssl3_mac

int n_ssl3_mac(SSL *ssl, unsigned char *md, int send)	{	SSL3_RECORD *rec;	unsigned char *mac_sec,*seq;	EVP_MD_CTX md_ctx;	const EVP_MD_CTX *hash;	unsigned char *p,rec_char;	unsigned int md_size;	int npad;	int t;	if (send)		{		rec= &(ssl->s3->wrec);		mac_sec= &(ssl->s3->write_mac_secret[0]);		seq= &(ssl->s3->write_sequence[0]);		hash=ssl->write_hash;		}	else		{		rec= &(ssl->s3->rrec);		mac_sec= &(ssl->s3->read_mac_secret[0]);		seq= &(ssl->s3->read_sequence[0]);		hash=ssl->read_hash;		}	t=EVP_MD_CTX_size(hash);	if (t < 0)		return -1;	md_size=t;	npad=(48/md_size)*md_size;	/* Chop the digest off the end :-) */	EVP_MD_CTX_init(&md_ctx);	EVP_MD_CTX_copy_ex( &md_ctx,hash);	EVP_DigestUpdate(&md_ctx,mac_sec,md_size);	EVP_DigestUpdate(&md_ctx,ssl3_pad_1,npad);	EVP_DigestUpdate(&md_ctx,seq,8);	rec_char=rec->type;	EVP_DigestUpdate(&md_ctx,&rec_char,1);	p=md;	s2n(rec->length,p);	EVP_DigestUpdate(&md_ctx,md,2);	EVP_DigestUpdate(&md_ctx,rec->input,rec->length);	EVP_DigestFinal_ex( &md_ctx,md,NULL);	EVP_MD_CTX_copy_ex( &md_ctx,hash);	EVP_DigestUpdate(&md_ctx,mac_sec,md_size);	EVP_DigestUpdate(&md_ctx,ssl3_pad_2,npad);	EVP_DigestUpdate(&md_ctx,md,md_size);	EVP_DigestFinal_ex( &md_ctx,md,&md_size);	EVP_MD_CTX_cleanup(&md_ctx);	ssl3_record_sequence_update(seq);	return(md_size);	}
开发者ID:12019,项目名称:vendor_st-ericsson_u8500,代码行数:58,


示例11: EVP_MD_CTX_size

const Poco::DigestEngine::Digest& DigestEngine::digest(){	_digest.clear();	unsigned len = EVP_MD_CTX_size(_pContext);	_digest.resize(len);	EVP_DigestFinal_ex(_pContext, &_digest[0], &len);	reset();	return _digest;}
开发者ID:RobertAcksel,项目名称:poco,代码行数:9,


示例12: ossl_digest_size

/* *  call-seq: *      digest.digest_length -> integer * * Returns the output size of the digest, i.e. the length in bytes of the * final message digest result. * * === Example *   digest = OpenSSL::Digest::SHA1.new *   puts digest.digest_length # => 20 * */static VALUEossl_digest_size(VALUE self){    EVP_MD_CTX *ctx;    GetDigest(self, ctx);    return INT2NUM(EVP_MD_CTX_size(ctx));}
开发者ID:padde,项目名称:openssl,代码行数:21,


示例13: LUA_FUNCTION

static LUA_FUNCTION(openssl_digest_ctx_info){  EVP_MD_CTX *ctx = CHECK_OBJECT(1, EVP_MD_CTX, "openssl.evp_digest_ctx");  lua_newtable(L);  AUXILIAR_SET(L, -1, "block_size", EVP_MD_CTX_block_size(ctx), integer);  AUXILIAR_SET(L, -1, "size", EVP_MD_CTX_size(ctx), integer);  AUXILIAR_SET(L, -1, "type", EVP_MD_CTX_type(ctx), integer);  AUXILIAR_SETOBJECT(L, EVP_MD_CTX_md(ctx), "openssl.evp_digest", -1, "digest");  return 1;}
开发者ID:chk-jxcn,项目名称:lua-openssl,代码行数:11,


示例14: ssl3_handshake_mac

static int ssl3_handshake_mac(SSL *s, int md_nid,                              const char *sender, int len, unsigned char *p){    unsigned int ret;    int npad, n;    unsigned int i;    unsigned char md_buf[EVP_MAX_MD_SIZE];    EVP_MD_CTX ctx, *d = NULL;    if (!ssl3_digest_cached_records(s, 0))        return 0;    /*     * Search for digest of specified type in the handshake_dgst array     */    for (i = 0; i < SSL_MAX_DIGEST; i++) {        if (s->s3->handshake_dgst[i]            && EVP_MD_CTX_type(s->s3->handshake_dgst[i]) == md_nid) {            d = s->s3->handshake_dgst[i];            break;        }    }    if (!d) {        SSLerr(SSL_F_SSL3_HANDSHAKE_MAC, SSL_R_NO_REQUIRED_DIGEST);        return 0;    }    EVP_MD_CTX_init(&ctx);    EVP_MD_CTX_set_flags(&ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);    EVP_MD_CTX_copy_ex(&ctx, d);    n = EVP_MD_CTX_size(&ctx);    if (n < 0)        return 0;    npad = (48 / n) * n;    if ((sender != NULL && EVP_DigestUpdate(&ctx, sender, len) <= 0)            || EVP_DigestUpdate(&ctx, s->session->master_key,                                s->session->master_key_length) <= 0            || EVP_DigestUpdate(&ctx, ssl3_pad_1, npad) <= 0            || EVP_DigestFinal_ex(&ctx, md_buf, &i) <= 0            || EVP_DigestInit_ex(&ctx, EVP_MD_CTX_md(&ctx), NULL) <= 0            || EVP_DigestUpdate(&ctx, s->session->master_key,                                s->session->master_key_length) <= 0            || EVP_DigestUpdate(&ctx, ssl3_pad_2, npad) <= 0            || EVP_DigestUpdate(&ctx, md_buf, i) <= 0            || EVP_DigestFinal_ex(&ctx, p, &ret) <= 0) {        SSLerr(SSL_F_SSL3_HANDSHAKE_MAC, ERR_R_INTERNAL_ERROR);        ret = 0;    }    EVP_MD_CTX_cleanup(&ctx);    return ((int)ret);}
开发者ID:nyistsoft,项目名称:openssl,代码行数:54,


示例15: ossl_digest_finish

/* *  call-seq: *      digest.finish -> aString * */static VALUEossl_digest_finish(int argc, VALUE *argv, VALUE self){    EVP_MD_CTX *ctx;    VALUE str;    rb_scan_args(argc, argv, "01", &str);    GetDigest(self, ctx);    if (NIL_P(str)) {        str = rb_str_new(NULL, EVP_MD_CTX_size(ctx));    } else {        StringValue(str);        rb_str_resize(str, EVP_MD_CTX_size(ctx));    }    EVP_DigestFinal_ex(ctx, (unsigned char *)RSTRING_PTR(str), NULL);    return str;}
开发者ID:padde,项目名称:openssl,代码行数:26,


示例16: ikrt_openssl_evp_md_ctx_size

ikptrikrt_openssl_evp_md_ctx_size (ikptr s_ctx, ikpcb * pcb){#if ((defined HAVE_DECL_EVP_MD_CTX_SIZE) && HAVE_DECL_EVP_MD_CTX_SIZE)  const EVP_MD_CTX *	ctx = IK_EVP_MD_CTX(s_ctx);  int			rv;  rv = EVP_MD_CTX_size(ctx);  return ika_integer_from_int(pcb, rv);#else  feature_failure(__func__);#endif}
开发者ID:marcomaggi,项目名称:vicare-openssl,代码行数:12,


示例17: ssl3_final_finish_mac

size_t ssl3_final_finish_mac(SSL *s, const char *sender, size_t len,                             unsigned char *p){    int ret;    EVP_MD_CTX *ctx = NULL;    if (!ssl3_digest_cached_records(s, 0)) {        /* SSLfatal() already called */        return 0;    }    if (EVP_MD_CTX_type(s->s3->handshake_dgst) != NID_md5_sha1) {        SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_SSL3_FINAL_FINISH_MAC,                 SSL_R_NO_REQUIRED_DIGEST);        return 0;    }    ctx = EVP_MD_CTX_new();    if (ctx == NULL) {        SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_SSL3_FINAL_FINISH_MAC,                 ERR_R_MALLOC_FAILURE);        return 0;    }    if (!EVP_MD_CTX_copy_ex(ctx, s->s3->handshake_dgst)) {        SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_SSL3_FINAL_FINISH_MAC,                 ERR_R_INTERNAL_ERROR);        return 0;    }    ret = EVP_MD_CTX_size(ctx);    if (ret < 0) {        SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_SSL3_FINAL_FINISH_MAC,                 ERR_R_INTERNAL_ERROR);        EVP_MD_CTX_reset(ctx);        return 0;    }    if ((sender != NULL && EVP_DigestUpdate(ctx, sender, len) <= 0)        || EVP_MD_CTX_ctrl(ctx, EVP_CTRL_SSL3_MASTER_SECRET,                           (int)s->session->master_key_length,                           s->session->master_key) <= 0        || EVP_DigestFinal_ex(ctx, p, NULL) <= 0) {        SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_SSL3_FINAL_FINISH_MAC,                 ERR_R_INTERNAL_ERROR);        ret = 0;    }    EVP_MD_CTX_free(ctx);    return ret;}
开发者ID:matthauck,项目名称:openssl,代码行数:51,


示例18: EVP_DigestInit

char* MessageDigest::spc_digest_message ( const EVP_MD* type, const char* in, unsigned long n, unsigned int* outlen ){    EVP_MD_CTX    ctx;    char* ret;    EVP_DigestInit ( &ctx, type );    EVP_DigestUpdate ( &ctx, in, n );    if ( ! ( ret = ( char* ) malloc ( EVP_MD_CTX_size ( &ctx ) ) ) )    {        return 0;    }    EVP_DigestFinal ( &ctx, reinterpret_cast<unsigned char*> ( ret ), outlen );    return ret;}
开发者ID:fritzone,项目名称:pici-nms,代码行数:14,


示例19: rpmDigestFinal

int rpmDigestFinal(DIGEST_CTX ctx, void ** datap, size_t *lenp, int asAscii){    int ret;    unsigned char *digest = NULL;    unsigned int digestlen;    if (ctx == NULL) return -1;    digestlen = EVP_MD_CTX_size(ctx->md_ctx);    digest = xcalloc(digestlen, sizeof(*digest));    ret = EVP_DigestFinal_ex(ctx->md_ctx, digest, &digestlen);    if (ret != 1) goto done;    if (!asAscii) {        /* Raw data requested */        if (lenp) *lenp = digestlen;        if (datap) {            *datap = digest;            digest = NULL;        }    }    else {        /* ASCII requested */        if (lenp) *lenp = (2*digestlen) + 1;        if (datap) {            const uint8_t * s = (const uint8_t *) digest;            *datap = pgpHexStr(s, digestlen);        }    }    ret = 1;done:    if (digest) {        /* Zero the digest, just in case it's sensitive */        memset(digest, 0, digestlen);        free(digest);    }    EVP_MD_CTX_free(ctx->md_ctx);    free(ctx);    if (ret != 1) {        return -1;    }    return 0;}
开发者ID:maxamillion,项目名称:rpm,代码行数:50,


示例20: NativeCrypto_EVP_DigestSize

/* * public static native void EVP_DigestReset(int) */static jint NativeCrypto_EVP_DigestSize(JNIEnv* env, jclass clazz, EVP_MD_CTX* ctx) {    // LOGI("NativeCrypto_EVP_DigestSize");    if (ctx == NULL) {        throwNullPointerException(env);        return -1;    }    int result = EVP_MD_CTX_size(ctx);    throwExceptionIfNecessary(env);    return result;}
开发者ID:llnull,项目名称:platform_dalvik,代码行数:17,


示例21: compute_hash

intcompute_hash(int  hash_type,	     int  buf_size,	     char *buf,	     char *digest){	EVP_MD_CTX md_ctx;	unsigned int result_size;	int rv;	switch (hash_type) {		case HASH_SHA1:			rv = EVP_DigestInit(&md_ctx, EVP_sha1());			break;		case HASH_MD5:			rv = EVP_DigestInit(&md_ctx, EVP_md5());			break;		default:			rv = 1;			goto out;			break;	}	if (rv != EVP_SUCCESS) {		rv = 2;		goto err;	}	rv = EVP_DigestUpdate(&md_ctx, buf, buf_size);	if (rv != EVP_SUCCESS) {		rv = 3;		goto err;	}	result_size = EVP_MD_CTX_size(&md_ctx);	rv = EVP_DigestFinal(&md_ctx, (unsigned char *)digest, &result_size);	if (rv != EVP_SUCCESS) {		rv = 4;		goto err;	} else		rv = 0;	goto out;err:	print_openssl_errors();out:	return rv;}
开发者ID:BillTheBest,项目名称:OpenCryptoki,代码行数:49,


示例22: hsh_done

static boolhsh_done(jose_io_t *io){    io_t *i = containerof(io, io_t, io);    uint8_t hsh[EVP_MD_CTX_size(i->emc)];    unsigned int l = 0;    if (EVP_DigestFinal(i->emc, hsh, &l) <= 0)        return SIZE_MAX;    if (!i->next->feed(i->next, hsh, l) || !i->next->done(i->next))        return SIZE_MAX;    return l;}
开发者ID:latchset,项目名称:jose,代码行数:15,


示例23: append_digest

static int append_digest(const EVP_MD_CTX *ctx, uint8_t *out, size_t *out_len,                         size_t max_out) {  int ret = 0;  EVP_MD_CTX ctx_copy;  EVP_MD_CTX_init(&ctx_copy);  if (EVP_MD_CTX_size(ctx) > max_out) {    OPENSSL_PUT_ERROR(SSL, SSL_R_BUFFER_TOO_SMALL);    goto err;  }  unsigned len;  if (!EVP_MD_CTX_copy_ex(&ctx_copy, ctx) ||      !EVP_DigestFinal_ex(&ctx_copy, out, &len)) {    goto err;  }  assert(len == EVP_MD_CTX_size(ctx));  *out_len = len;  ret = 1;err:  EVP_MD_CTX_cleanup(&ctx_copy);  return ret;}
开发者ID:anthonylauzon,项目名称:bazel,代码行数:24,


示例24: hmac_signctx

static int hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,					EVP_MD_CTX *mctx)	{	unsigned int hlen;	HMAC_PKEY_CTX *hctx = (HMAC_PKEY_CTX *)ctx->data;	int l = EVP_MD_CTX_size(mctx);	if (l < 0)		return 0;	*siglen = l;	if (!sig)		return 1;	HMAC_Final(&hctx->ctx, sig, &hlen);	*siglen = (size_t)hlen;	return 1;	}
开发者ID:AustinWise,项目名称:Netduino-Micro-Framework,代码行数:17,


示例25: digest_final

static int digest_final(EVP_MD_CTX *ctx, unsigned char *md){    struct digest_ctx *digest_ctx =        (struct digest_ctx *)EVP_MD_CTX_md_data(ctx);    if (md == NULL || digest_ctx == NULL)        return 0;    if (EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_ONESHOT)) {        memcpy(md, digest_ctx->digest_res, EVP_MD_CTX_size(ctx));    } else if (digest_op(digest_ctx, NULL, 0, md, COP_FLAG_FINAL) < 0) {        SYSerr(SYS_F_IOCTL, errno);        return 0;    }    return 1;}
开发者ID:ciz,项目名称:openssl,代码行数:17,


示例26: ossl_hmac_signctx

static int ossl_hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig,                             size_t *siglen, EVP_MD_CTX *mctx){    unsigned int hlen;    OSSL_HMAC_PKEY_CTX *hctx = EVP_PKEY_CTX_get_data(ctx);    int l = EVP_MD_CTX_size(mctx);    if (l < 0)        return 0;    *siglen = l;    if (!sig)        return 1;    if (!HMAC_Final(hctx->ctx, sig, &hlen))        return 0;    *siglen = (size_t)hlen;    return 1;}
开发者ID:Bilibili,项目名称:openssl,代码行数:18,


示例27: Trspi_HashFinal

TSS_RESULTTrspi_HashFinal(Trspi_HashCtx *ctx, BYTE *digest){	int rv;	UINT32 result_size;	if (ctx == NULL || ctx->ctx == NULL)		return TSPERR(TSS_E_INTERNAL_ERROR);	result_size = EVP_MD_CTX_size((EVP_MD_CTX *)ctx->ctx);	rv = EVP_DigestFinal(ctx->ctx, digest, &result_size);	if (rv != EVP_SUCCESS)		return TSPERR(TSS_E_INTERNAL_ERROR);	free(ctx->ctx);	ctx->ctx = NULL;	return TSS_SUCCESS;}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:19,


示例28: Trspi_Hash

TSS_RESULTTrspi_Hash(UINT32 HashType, UINT32 BufSize, BYTE* Buf, BYTE* Digest){	EVP_MD_CTX md_ctx;	unsigned int result_size;	int rv;	switch (HashType) {		case TSS_HASH_SHA1:			rv = EVP_DigestInit(&md_ctx, EVP_sha1());			break;		default:			rv = TSPERR(TSS_E_BAD_PARAMETER);			goto out;			break;	}	if (rv != EVP_SUCCESS) {		rv = TSPERR(TSS_E_INTERNAL_ERROR);		goto err;	}	rv = EVP_DigestUpdate(&md_ctx, Buf, BufSize);	if (rv != EVP_SUCCESS) {		rv = TSPERR(TSS_E_INTERNAL_ERROR);		goto err;	}	result_size = EVP_MD_CTX_size(&md_ctx);	rv = EVP_DigestFinal(&md_ctx, Digest, &result_size);	if (rv != EVP_SUCCESS) {		rv = TSPERR(TSS_E_INTERNAL_ERROR);		goto err;	} else		rv = TSS_SUCCESS;	goto out;err:	DEBUG_print_openssl_errors();out:        return rv;}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:43,


示例29: hmac_signctx

static int hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,                        EVP_MD_CTX *mctx) {  unsigned int hlen;  HMAC_PKEY_CTX *hctx = ctx->data;  size_t md_size = EVP_MD_CTX_size(mctx);  if (!sig) {    *siglen = md_size;    return 1;  } else if (*siglen < md_size) {    OPENSSL_PUT_ERROR(EVP, hmac_signctx, EVP_R_BUFFER_TOO_SMALL);    return 0;  }  if (!HMAC_Final(&hctx->ctx, sig, &hlen)) {    return 0;  }  *siglen = (size_t)hlen;  return 1;}
开发者ID:gotomypc,项目名称:tiny-webrtc-gw,代码行数:20,


示例30: Hash

TSS_RESULTHash(UINT32 HashType, UINT32 BufSize, BYTE* Buf, BYTE* Digest){	EVP_MD_CTX *md_ctx;	unsigned int result_size;	int rv;	md_ctx = EVP_MD_CTX_create();	switch (HashType) {		case TSS_HASH_SHA1:			rv = EVP_DigestInit(md_ctx, EVP_sha1());			break;		default:			rv = TCSERR(TSS_E_BAD_PARAMETER);			goto out;			break;	}	if (rv != EVP_SUCCESS) {		rv = TCSERR(TSS_E_INTERNAL_ERROR);		goto out;	}	rv = EVP_DigestUpdate(md_ctx, Buf, BufSize);	if (rv != EVP_SUCCESS) {		rv = TCSERR(TSS_E_INTERNAL_ERROR);		goto out;	}	result_size = EVP_MD_CTX_size(md_ctx);	rv = EVP_DigestFinal(md_ctx, Digest, &result_size);	if (rv != EVP_SUCCESS) {		rv = TCSERR(TSS_E_INTERNAL_ERROR);	} else		rv = TSS_SUCCESS;out:	EVP_MD_CTX_destroy(md_ctx);	return rv;}
开发者ID:IIJ-NetBSD,项目名称:netbsd-src,代码行数:41,



注:本文中的EVP_MD_CTX_size函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ EVP_MD_type函数代码示例
C++ EVP_MD_CTX_new函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。