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

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

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

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

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

示例1: RSA_PSS_PARAMS_new

RSA_PSS_PARAMS *rsa_pss_params_create(const EVP_MD *sigmd,                                      const EVP_MD *mgf1md, int saltlen){    RSA_PSS_PARAMS *pss = RSA_PSS_PARAMS_new();    if (pss == NULL)        goto err;    if (saltlen != 20) {        pss->saltLength = ASN1_INTEGER_new();        if (pss->saltLength == NULL)            goto err;        if (!ASN1_INTEGER_set(pss->saltLength, saltlen))            goto err;    }    if (!rsa_md_to_algor(&pss->hashAlgorithm, sigmd))        goto err;    if (mgf1md == NULL)        mgf1md = sigmd;    if (!rsa_md_to_mgf1(&pss->maskGenAlgorithm, mgf1md))        goto err;    if (!rsa_md_to_algor(&pss->maskHash, mgf1md))        goto err;    return pss; err:    RSA_PSS_PARAMS_free(pss);    return NULL;}
开发者ID:Bilibili,项目名称:openssl,代码行数:27,


示例2: create_nonce

static ASN1_INTEGER *create_nonce(int bits){	unsigned char buf[20];	ASN1_INTEGER *nonce = NULL;	int len = (bits - 1) / 8 + 1;	int i;	/* Generating random byte sequence. */	if (len > (int) sizeof(buf))		goto err;	arc4random_buf(buf, len);	/* Find the first non-zero byte and creating ASN1_INTEGER object. */	for (i = 0; i < len && !buf[i]; ++i)		;	if (!(nonce = ASN1_INTEGER_new()))		goto err;	free(nonce->data);	/* Allocate at least one byte. */	nonce->length = len - i;	if (!(nonce->data = malloc(nonce->length + 1)))		goto err;	memcpy(nonce->data, buf + i, nonce->length);	return nonce;err:	BIO_printf(bio_err, "could not create nonce/n");	ASN1_INTEGER_free(nonce);	return NULL;}
开发者ID:Heratom,项目名称:Firefly-project,代码行数:32,


示例3: EVP_PKEY_CTX_get0_pkey

/* rsa_ctx_to_pss converts EVP_PKEY_CTX in PSS mode into corresponding * algorithm parameter, suitable for setting as an AlgorithmIdentifier. */static ASN1_STRING *rsa_ctx_to_pss(EVP_PKEY_CTX *pkctx) {  const EVP_MD *sigmd, *mgf1md;  RSA_PSS_PARAMS *pss = NULL;  ASN1_STRING *os = NULL;  EVP_PKEY *pk = EVP_PKEY_CTX_get0_pkey(pkctx);  int saltlen, rv = 0;  if (!EVP_PKEY_CTX_get_signature_md(pkctx, &sigmd) ||      !EVP_PKEY_CTX_get_rsa_mgf1_md(pkctx, &mgf1md) ||      !EVP_PKEY_CTX_get_rsa_pss_saltlen(pkctx, &saltlen)) {    goto err;  }  if (saltlen == -1) {    saltlen = EVP_MD_size(sigmd);  } else if (saltlen == -2) {    saltlen = EVP_PKEY_size(pk) - EVP_MD_size(sigmd) - 2;    if (((EVP_PKEY_bits(pk) - 1) & 0x7) == 0) {      saltlen--;    }  } else {    goto err;  }  pss = RSA_PSS_PARAMS_new();  if (!pss) {    goto err;  }  if (saltlen != 20) {    pss->saltLength = ASN1_INTEGER_new();    if (!pss->saltLength ||        !ASN1_INTEGER_set(pss->saltLength, saltlen)) {      goto err;    }  }  if (!rsa_md_to_algor(&pss->hashAlgorithm, sigmd) ||      !rsa_md_to_mgf1(&pss->maskGenAlgorithm, mgf1md)) {    goto err;  }  /* Finally create string with pss parameter encoding. */  if (!ASN1_item_pack(pss, ASN1_ITEM_rptr(RSA_PSS_PARAMS), &os)) {    goto err;  }  rv = 1;err:  if (pss) {    RSA_PSS_PARAMS_free(pss);  }  if (rv) {    return os;  }  if (os) {    ASN1_STRING_free(os);  }  return NULL;}
开发者ID:krunalsoni01,项目名称:src,代码行数:62,


示例4: memcpy

static ASN1_INTEGER *create_nonce(int bits){    unsigned char buf[20];    ASN1_INTEGER *nonce = NULL;    int len = (bits - 1) / 8 + 1;    int i;    if (len > (int)sizeof(buf))        goto err;    if (RAND_bytes(buf, len) <= 0)        goto err;    /* Find the first non-zero byte and creating ASN1_INTEGER object. */    for (i = 0; i < len && !buf[i]; ++i)        continue;    if ((nonce = ASN1_INTEGER_new()) == NULL)        goto err;    OPENSSL_free(nonce->data);    nonce->length = len - i;    nonce->data = app_malloc(nonce->length + 1, "nonce buffer");    memcpy(nonce->data, buf + i, nonce->length);    return nonce; err:    BIO_printf(bio_err, "could not create nonce/n");    ASN1_INTEGER_free(nonce);    return NULL;}
开发者ID:Beatzevo,项目名称:openssl,代码行数:28,


示例5: AUTHORITY_KEYID_new

X509_EXTENSION* AuthorityKeyIdentifierExtension::getX509Extension(){    X509_EXTENSION *ret;    AUTHORITY_KEYID *authKeyId;    ByteArray temp;    authKeyId = AUTHORITY_KEYID_new();    if (this->keyIdentifier.size() > 0)    {        authKeyId->keyid = ASN1_OCTET_STRING_new();        temp = this->keyIdentifier;        ASN1_OCTET_STRING_set(authKeyId->keyid, temp.getDataPointer(), temp.size());    }    if (this->authorityCertIssuer.getNumberOfEntries() > 0)    {        authKeyId->issuer = this->authorityCertIssuer.getInternalGeneralNames();    }    if (this->serialNumber >= 0)    {        authKeyId->serial = ASN1_INTEGER_new();        ASN1_INTEGER_set(authKeyId->serial, this->serialNumber);    }    ret = X509V3_EXT_i2d(NID_authority_key_identifier, this->critical?1:0, (void *)authKeyId);    AUTHORITY_KEYID_free(authKeyId);    return ret;}
开发者ID:GNakayama,项目名称:libcryptosec,代码行数:25,


示例6: VMCAGetNextCrlNumber

DWORDVMCAGetNextCrlNumber(    X509_CRL *pCrl,    DWORD *pNextNum){    DWORD dwError = 0;    ASN1_INTEGER *pCrlNumber = NULL;    long nCrlNum = 0;    if(pCrl == NULL) {        dwError = ERROR_INVALID_PARAMETER;        BAIL_ON_ERROR(dwError);    }    pCrlNumber = ASN1_INTEGER_new();    if(pCrlNumber == NULL) {        dwError = VMCA_OUT_MEMORY_ERR;        BAIL_ON_ERROR(dwError);    }    pCrlNumber = X509_CRL_get_ext_d2i(pCrl, NID_crl_number, 0,0);    nCrlNum = ASN1_INTEGER_get(pCrlNumber);    nCrlNum++;    *pNextNum = nCrlNum;cleanup:    if(pCrlNumber) {        ASN1_INTEGER_free(pCrlNumber);    }    return dwError;error :    goto cleanup;}
开发者ID:Dan-McGee,项目名称:lightwave,代码行数:33,


示例7: main

int main(int argc, char const *argv[]){	/* code */	long value;	int ret, len, i;	unsigned char *buf = NULL;	unsigned char *p;	ASN1_INTEGER *a = ASN1_INTEGER_new();	ret = ASN1_INTEGER_set(a, 100);	len = i2d_ASN1_INTEGER(a, NULL);	p = buf = malloc(sizeof(unsigned char) * len);	len = i2d_ASN1_INTEGER(a, &buf);	for( i = 0; i < len; i++)	{		//printf("%0x/t", p[i]);		printf("%0x/t", buf[i]);	}	printf("/n");	a= d2i_ASN1_INTEGER(&a, &p, len);	value = ASN1_INTEGER_get(a);	printf("value = %d/n", value);	ASN1_INTEGER_free(a);	return 0;}
开发者ID:gwg-bhb,项目名称:exercise-win,代码行数:27,


示例8: d2i_ASN1_UINTEGER

ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, long length){	ASN1_INTEGER *ret = NULL;	const unsigned char *p;	unsigned char *s;	long len;	int inf, tag, xclass;	int i;	if ((a == NULL) || ((*a) == NULL)) {		if ((ret = ASN1_INTEGER_new()) == NULL)			return (NULL);	} else		ret = (*a);	p = *pp;	inf = ASN1_get_object(&p, &len, &tag, &xclass, length);	if (inf & 0x80) {		i = ASN1_R_BAD_OBJECT_HEADER;		goto err;	}	if (tag != V_ASN1_INTEGER) {		i = ASN1_R_EXPECTING_AN_INTEGER;		goto err;	}	/* We must malloc stuff, even for 0 bytes otherwise it	 * signifies a missing NULL parameter. */	s = malloc(len + 1);	if (s == NULL) {		i = ERR_R_MALLOC_FAILURE;		goto err;	}	ret->type = V_ASN1_INTEGER;	if (len) {		if ((*p == 0) && (len != 1)) {			p++;			len--;		}		memcpy(s, p, len);		p += len;	}	free(ret->data);	ret->data = s;	ret->length = (int)len;	if (a != NULL)		(*a) = ret;	*pp = p;	return (ret);err:	ASN1error(i);	if (a == NULL || *a != ret)		ASN1_INTEGER_free(ret);	return (NULL);}
开发者ID:MiKTeX,项目名称:miktex,代码行数:59,


示例9: X509_CRL_set_version

int X509_CRL_set_version(X509_CRL *x, long version){    if (x == NULL)        return (0);    if (x->crl.version == NULL) {        if ((x->crl.version = ASN1_INTEGER_new()) == NULL)            return (0);    }    return (ASN1_INTEGER_set(x->crl.version, version));}
开发者ID:Beatzevo,项目名称:openssl,代码行数:10,


示例10: x509_rsa_ctx_to_pss

int x509_rsa_ctx_to_pss(EVP_MD_CTX *ctx, X509_ALGOR *algor) {  const EVP_MD *sigmd, *mgf1md;  int saltlen;  if (!EVP_PKEY_CTX_get_signature_md(ctx->pctx, &sigmd) ||      !EVP_PKEY_CTX_get_rsa_mgf1_md(ctx->pctx, &mgf1md) ||      !EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx->pctx, &saltlen)) {    return 0;  }  EVP_PKEY *pk = EVP_PKEY_CTX_get0_pkey(ctx->pctx);  if (saltlen == -1) {    saltlen = EVP_MD_size(sigmd);  } else if (saltlen == -2) {    saltlen = EVP_PKEY_size(pk) - EVP_MD_size(sigmd) - 2;    if (((EVP_PKEY_bits(pk) - 1) & 0x7) == 0) {      saltlen--;    }  } else {    return 0;  }  int ret = 0;  ASN1_STRING *os = NULL;  RSA_PSS_PARAMS *pss = RSA_PSS_PARAMS_new();  if (!pss) {    goto err;  }  if (saltlen != 20) {    pss->saltLength = ASN1_INTEGER_new();    if (!pss->saltLength ||        !ASN1_INTEGER_set(pss->saltLength, saltlen)) {      goto err;    }  }  if (!rsa_md_to_algor(&pss->hashAlgorithm, sigmd) ||      !rsa_md_to_mgf1(&pss->maskGenAlgorithm, mgf1md)) {    goto err;  }  /* Finally create string with pss parameter encoding. */  if (!ASN1_item_pack(pss, ASN1_ITEM_rptr(RSA_PSS_PARAMS), &os)) {    goto err;  }  X509_ALGOR_set0(algor, OBJ_nid2obj(NID_rsassaPss), V_ASN1_SEQUENCE, os);  os = NULL;  ret = 1;err:  RSA_PSS_PARAMS_free(pss);  ASN1_STRING_free(os);  return ret;}
开发者ID:MateusDeSousa,项目名称:FiqueRico,代码行数:55,


示例11: X509_set_version

intX509_set_version(X509 *x, long version){	if (x == NULL)		return (0);	if (x->cert_info->version == NULL) {		if ((x->cert_info->version = ASN1_INTEGER_new()) == NULL)			return (0);	}	return (ASN1_INTEGER_set(x->cert_info->version, version));}
开发者ID:2trill2spill,项目名称:nextgen,代码行数:11,


示例12: VMCAGetCRLInfoPrivate

DWORDVMCAGetCRLInfoPrivate(    PSTR pszFileName,    time_t *ptmLastUpdate,    time_t *ptmNextUpdate,    DWORD  *pdwCRLNumber){    DWORD dwError = 0;    X509_CRL *pCrl = NULL;    ASN1_TIME *pLastUpdate = NULL;    ASN1_TIME *pNextUpdate = NULL;    ASN1_INTEGER *pCrlNumber = NULL;    long nCrlNum = 0;    if (   (IsNullOrEmptyString(pszFileName))        || (ptmNextUpdate == NULL)        || (ptmLastUpdate == NULL)        || (pdwCRLNumber == NULL)        ) {        dwError = ERROR_INVALID_PARAMETER;        BAIL_ON_ERROR(dwError);    }    dwError = VMCAFileToCRL(pszFileName, &pCrl);    BAIL_ON_ERROR(dwError);    pLastUpdate = X509_CRL_get_lastUpdate(pCrl);    pNextUpdate = X509_CRL_get_nextUpdate(pCrl);    pCrlNumber = ASN1_INTEGER_new();    if(pCrlNumber == NULL) {        dwError = VMCA_OUT_MEMORY_ERR;        BAIL_ON_ERROR(dwError);    }    pCrlNumber = X509_CRL_get_ext_d2i(pCrl, NID_crl_number, 0,0);    nCrlNum = ASN1_INTEGER_get(pCrlNumber);    *pdwCRLNumber = nCrlNum;    dwError =  VMCAASN1ToTimeT(pLastUpdate,ptmLastUpdate);    BAIL_ON_ERROR(dwError);    dwError =  VMCAASN1ToTimeT(pNextUpdate,ptmNextUpdate);    BAIL_ON_ERROR(dwError);cleanup:    if(pCrlNumber){        ASN1_INTEGER_free(pCrlNumber);    }    VMCACrlFree(pCrl);    return dwError;error :    goto cleanup;}
开发者ID:Dan-McGee,项目名称:lightwave,代码行数:54,


示例13: getRandomSN

ASN1_INTEGER* getRandomSN(){  ASN1_INTEGER* res = ASN1_INTEGER_new();  BIGNUM *btmp = BN_new();  //64 bits of randomness?  BN_pseudo_rand(btmp, 64, 0, 0);  BN_to_ASN1_INTEGER(btmp, res);  BN_free(btmp);  return res;}
开发者ID:AlexWei2013,项目名称:Webinos-Platform,代码行数:11,


示例14: ASN1_INTEGER_new

static ASN1_INTEGER *def_serial_cb(struct TS_resp_ctx *ctx, void *data)	{	ASN1_INTEGER *serial = ASN1_INTEGER_new();	if (!serial) goto err;	if (!ASN1_INTEGER_set(serial, 1)) goto err;	return serial; err:	TSerr(TS_F_DEF_SERIAL_CB, ERR_R_MALLOC_FAILURE);	TS_RESP_CTX_set_status_info(ctx, TS_STATUS_REJECTION,				    "Error during serial number generation.");	return NULL;	}
开发者ID:RyunosukeOno,项目名称:rayjack,代码行数:12,


示例15: handle_serial

static char *handle_serial (char * serial){	int hex = NULL != strchr (serial, ':');	/* Convert serial to a decimal serial when input is	   a hexidecimal representation of the serial */	if (hex)	{		unsigned int i,ii;		char *tmp_serial = (char*) calloc (strlen (serial) + 1,1);		for (i=0,ii=0; '/0'!=serial[i];i++)		{			if (':'!=serial[i])				tmp_serial[ii++]=serial[i];		}		serial=tmp_serial;	}	else	{		unsigned int i;		for (i=0; ! hex && '/0' != serial[i]; i++)			hex = 'a'==serial[i]||'b'==serial[i]||'c'==serial[i]||'d'==serial[i]||'e'==serial[i]||'f'==serial[i];	}	if (hex)	{		ASN1_INTEGER* ai; 		BIGNUM *ret; 		BIO* in = BIO_new_mem_buf(serial, -1);  		char buf[1025];  		ai=ASN1_INTEGER_new();  		if (ai == NULL) return NULL;   		if (!a2i_ASN1_INTEGER(in,ai,buf,1024))   		{			return NULL;   		}   		ret=ASN1_INTEGER_to_BN(ai,NULL);   		if (ret == NULL)   		{			return NULL;   		}   		else   		{    		 serial = BN_bn2dec(ret);   		}  	}	return serial;} /* handle_serial */
开发者ID:flomar,项目名称:sscep,代码行数:51,


示例16: X509_EXTENSION_new

X509_EXTENSION* DeltaCRLIndicatorExtension::getX509Extension(){	X509_EXTENSION *ret;	ASN1_INTEGER* baseCrlNumber;		ret = X509_EXTENSION_new();	int rc;	baseCrlNumber = ASN1_INTEGER_new();	ASN1_INTEGER_set(baseCrlNumber, this->baseCrlNumber);		ret = X509V3_EXT_i2d(NID_delta_crl, this->critical?1:0, (void *)baseCrlNumber);	return ret;}
开发者ID:GNakayama,项目名称:libcryptosec,代码行数:14,


示例17: X509_set_version

int X509_set_version(X509 *x, long version){    if (x == NULL)        return (0);    if (version == 0) {        ASN1_INTEGER_free(x->cert_info.version);        x->cert_info.version = NULL;        return (1);    }    if (x->cert_info.version == NULL) {        if ((x->cert_info.version = ASN1_INTEGER_new()) == NULL)            return (0);    }    return (ASN1_INTEGER_set(x->cert_info.version, version));}
开发者ID:Castaglia,项目名称:openssl,代码行数:15,


示例18: X509_REQ_to_X509

X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey){	X509 *ret = NULL;	X509_CINF *xi = NULL;	X509_NAME *xn;	if ((ret = X509_new()) == NULL) {		X509error(ERR_R_MALLOC_FAILURE);		goto err;	}	/* duplicate the request */	xi = ret->cert_info;	if (sk_X509_ATTRIBUTE_num(r->req_info->attributes) != 0) {		if ((xi->version = ASN1_INTEGER_new()) == NULL)			goto err;		if (!ASN1_INTEGER_set(xi->version, 2))			goto err;/*		xi->extensions=ri->attributes; <- bad, should not ever be done		ri->attributes=NULL; */	}	xn = X509_REQ_get_subject_name(r);	if (X509_set_subject_name(ret, X509_NAME_dup(xn)) == 0)		goto err;	if (X509_set_issuer_name(ret, X509_NAME_dup(xn)) == 0)		goto err;	if (X509_gmtime_adj(xi->validity->notBefore, 0) == NULL)		goto err;	if (X509_gmtime_adj(xi->validity->notAfter,	    (long)60 * 60 * 24 * days) == NULL)		goto err;	X509_set_pubkey(ret, X509_REQ_get_pubkey(r));	if (!X509_sign(ret, pkey, EVP_md5()))		goto err;	if (0) {err:		X509_free(ret);		ret = NULL;	}	return (ret);}
开发者ID:2trill2spill,项目名称:nextgen,代码行数:47,


示例19: SetCertSerialNumber

static gbooleanSetCertSerialNumber(X509 *cert)                  // IN{   BIGNUM *btmp = NULL;   ASN1_INTEGER *sno;   gboolean ret = FALSE;   gchar *err = NULL;   sno = ASN1_INTEGER_new();   if (!sno) {      Error("Failed to allocate an ASN1 integer./n");      goto exit;   }   btmp = BN_new();   if (!btmp) {      Error("Failed to allocate a BIGNUM structure./n");      goto exit;   }   if (!BN_rand(btmp, 64, 0, 0)) {      Error("Failed to generate random number: %s./n",            GetSSLError(&err));      goto exit;   }   if (!BN_to_ASN1_INTEGER(btmp, sno)) {      Error("Failed to convert from BIGNUM to ASN1_INTEGER: %s./n",            GetSSLError(&err));      goto exit;   }   if (!X509_set_serialNumber(cert, sno)) {      Error("Failed to set the certificate serial number: %s./n",            GetSSLError(&err));      goto exit;   }   ret = TRUE;exit:   BN_free(btmp);   ASN1_INTEGER_free(sno);   g_free(err);   return ret;}
开发者ID:AlissonGiron,项目名称:open-vm-tools,代码行数:47,


示例20:

static ASN1_INTEGER *next_serial(const char *serialfile){    int ret = 0;    BIO *in = NULL;    ASN1_INTEGER *serial = NULL;    BIGNUM *bn = NULL;    if ((serial = ASN1_INTEGER_new()) == NULL)        goto err;    if ((in = BIO_new_file(serialfile, "r")) == NULL) {        ERR_clear_error();        BIO_printf(bio_err, "Warning: could not open file %s for "                   "reading, using serial number: 1/n", serialfile);        if (!ASN1_INTEGER_set(serial, 1))            goto err;    } else {        char buf[1024];        if (!a2i_ASN1_INTEGER(in, serial, buf, sizeof(buf))) {            BIO_printf(bio_err, "unable to load number from %s/n",                       serialfile);            goto err;        }        if ((bn = ASN1_INTEGER_to_BN(serial, NULL)) == NULL)            goto err;        ASN1_INTEGER_free(serial);        serial = NULL;        if (!BN_add_word(bn, 1))            goto err;        if ((serial = BN_to_ASN1_INTEGER(bn, NULL)) == NULL)            goto err;    }    ret = 1; err:    if (!ret) {        ASN1_INTEGER_free(serial);        serial = NULL;    }    BIO_free_all(in);    BN_free(bn);    return serial;}
开发者ID:Beatzevo,项目名称:openssl,代码行数:43,


示例21: BN_to_ASN1_INTEGER

ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai){	ASN1_INTEGER *ret;	int len, j;	if (ai == NULL)		ret = ASN1_INTEGER_new();	else		ret = ai;	if (ret == NULL) {		ASN1error(ERR_R_NESTED_ASN1_ERROR);		goto err;	}	if (BN_is_negative(bn))		ret->type = V_ASN1_NEG_INTEGER;	else		ret->type = V_ASN1_INTEGER;	j = BN_num_bits(bn);	len = ((j == 0) ? 0 : ((j / 8) + 1));	if (ret->length < len + 4) {		unsigned char *new_data = realloc(ret->data, len + 4);		if (!new_data) {			ASN1error(ERR_R_MALLOC_FAILURE);			goto err;		}		ret->data = new_data;	}	ret->length = BN_bn2bin(bn, ret->data);	/* Correct zero case */	if (!ret->length) {		ret->data[0] = 0;		ret->length = 1;	}	return (ret);err:	if (ret != ai)		ASN1_INTEGER_free(ret);	return (NULL);}
开发者ID:MiKTeX,项目名称:miktex,代码行数:42,


示例22: X509_to_X509_REQ

X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md){	X509_REQ *ret;	X509_REQ_INFO *ri;	int i;	EVP_PKEY *pktmp;	ret = X509_REQ_new();	if (ret == NULL) {		X509error(ERR_R_MALLOC_FAILURE);		goto err;	}	ri = ret->req_info;	if ((ri->version = ASN1_INTEGER_new()) == NULL)		goto err;	if (ASN1_INTEGER_set(ri->version, 0) == 0)		goto err;	if (!X509_REQ_set_subject_name(ret, X509_get_subject_name(x)))		goto err;	if ((pktmp = X509_get_pubkey(x)) == NULL)		goto err;	i = X509_REQ_set_pubkey(ret, pktmp);	EVP_PKEY_free(pktmp);	if (!i)		goto err;	if (pkey != NULL) {		if (!X509_REQ_sign(ret, pkey, md))			goto err;	}	return (ret);err:	X509_REQ_free(ret);	return (NULL);}
开发者ID:2trill2spill,项目名称:nextgen,代码行数:42,


示例23: ASN1_INTEGER_new

/* * Creates a x509v3 extension containing a nvcounter encapsulated in an ASN1 * Integer * * Parameters: *   pex: OpenSSL extension pointer (output parameter) *   nid: extension identifier *   crit: extension critical (EXT_NON_CRIT, EXT_CRIT) *   value: nvcounter value * * Return: Extension address, NULL if error */X509_EXTENSION *ext_new_nvcounter(int nid, int crit, int value){	X509_EXTENSION *ex;	ASN1_INTEGER *counter;	unsigned char *p = NULL;	int sz;	/* Encode counter */	counter = ASN1_INTEGER_new();	ASN1_INTEGER_set(counter, value);	sz = i2d_ASN1_INTEGER(counter, &p);	/* Create the extension */	ex = ext_new(nid, crit, p, sz);	/* Free objects */	OPENSSL_free(p);	ASN1_INTEGER_free(counter);	return ex;}
开发者ID:Summer-ARM,项目名称:arm-trusted-firmware,代码行数:33,


示例24: OCSP_BASICRESP_new

static OCSP_BASICRESP *make_dummy_resp(void){    const unsigned char namestr[] = "openssl.example.com";    unsigned char keybytes[128] = {7};    OCSP_BASICRESP *bs = OCSP_BASICRESP_new();    OCSP_BASICRESP *bs_out = NULL;    OCSP_CERTID *cid = NULL;    ASN1_TIME *thisupd = ASN1_TIME_set(NULL, time(NULL));    ASN1_TIME *nextupd = ASN1_TIME_set(NULL, time(NULL) + 200);    X509_NAME *name = X509_NAME_new();    ASN1_BIT_STRING *key = ASN1_BIT_STRING_new();    ASN1_INTEGER *serial = ASN1_INTEGER_new();    if (!X509_NAME_add_entry_by_NID(name, NID_commonName, MBSTRING_ASC,                                   namestr, -1, -1, 1)        || !ASN1_BIT_STRING_set(key, keybytes, sizeof(keybytes))        || !ASN1_INTEGER_set_uint64(serial, (uint64_t)1))        goto err;    cid = OCSP_cert_id_new(EVP_sha256(), name, key, serial);    if (!TEST_ptr(bs)        || !TEST_ptr(thisupd)        || !TEST_ptr(nextupd)        || !TEST_ptr(cid)        || !TEST_true(OCSP_basic_add1_status(bs, cid,                                             V_OCSP_CERTSTATUS_UNKNOWN,                                             0, NULL, thisupd, nextupd)))        goto err;    bs_out = bs;    bs = NULL; err:    ASN1_TIME_free(thisupd);    ASN1_TIME_free(nextupd);    ASN1_BIT_STRING_free(key);    ASN1_INTEGER_free(serial);    OCSP_CERTID_free(cid);    OCSP_BASICRESP_free(bs);    X509_NAME_free(name);    return bs_out;}
开发者ID:IIJ-NetBSD,项目名称:netbsd-src,代码行数:39,


示例25: PKCS12_setup_mac

/* Set up a mac structure */intPKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen,    const EVP_MD *md_type){	if (!(p12->mac = PKCS12_MAC_DATA_new()))		return PKCS12_ERROR;	if (iter > 1) {		if (!(p12->mac->iter = ASN1_INTEGER_new())) {			PKCS12err(PKCS12_F_PKCS12_SETUP_MAC,			    ERR_R_MALLOC_FAILURE);			return 0;		}		if (!ASN1_INTEGER_set(p12->mac->iter, iter)) {			PKCS12err(PKCS12_F_PKCS12_SETUP_MAC,			    ERR_R_MALLOC_FAILURE);			return 0;		}	}	if (!saltlen)		saltlen = PKCS12_SALT_LEN;	if (!(p12->mac->salt->data = malloc(saltlen))) {		PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);		return 0;	}	p12->mac->salt->length = saltlen;	if (!salt)		arc4random_buf(p12->mac->salt->data, saltlen);	else		memcpy (p12->mac->salt->data, salt, saltlen);	p12->mac->dinfo->algor->algorithm = OBJ_nid2obj(EVP_MD_type(md_type));	if (!(p12->mac->dinfo->algor->parameter = ASN1_TYPE_new())) {		PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);		return 0;	}	p12->mac->dinfo->algor->parameter->type = V_ASN1_NULL;	return 1;}
开发者ID:ajinkya93,项目名称:OpenBSD,代码行数:39,


示例26: certificate_set_serial

/* Taken from openssl certmodule.c */static int certificate_set_serial(X509 *x){        ASN1_INTEGER *sno = ASN1_INTEGER_new();        BIGNUM *bn = NULL;        int rv = 0;                bn = BN_new();                if (!bn) {                ASN1_INTEGER_free(sno);                return 0;        }                if (BN_pseudo_rand(bn, SERIAL_RAND_BITS, 0, 0) == 1 &&            (sno = BN_to_ASN1_INTEGER(bn, sno)) != NULL &&            X509_set_serialNumber(x, sno) == 1)                rv = 1;                BN_free(bn);        ASN1_INTEGER_free(sno);                return rv;}
开发者ID:SRI-CSL,项目名称:ENCODERS,代码行数:24,


示例27: MAIN

//.........这里部分代码省略.........			(req->req_info->pubkey->public_key->data == NULL))			{			BIO_printf(bio_err,"The certificate request appears to corrupted/n");			BIO_printf(bio_err,"It does not contain a public key/n");			goto end;			}		if ((pkey=X509_REQ_get_pubkey(req)) == NULL)	                {	                BIO_printf(bio_err,"error unpacking public key/n");	                goto end;	                }		i=X509_REQ_verify(req,pkey);		EVP_PKEY_free(pkey);		if (i < 0)			{			BIO_printf(bio_err,"Signature verification error/n");			ERR_print_errors(bio_err);			goto end;			}	        if (i == 0)			{			BIO_printf(bio_err,"Signature did not match the certificate request/n");			goto end;			}		else			BIO_printf(bio_err,"Signature ok/n");		print_name(bio_err, "subject=", X509_REQ_get_subject_name(req), nmflag);		if ((x=X509_new()) == NULL) goto end;		if (sno == NULL)			{			sno = ASN1_INTEGER_new();			if (!sno || !rand_serial(NULL, sno))				goto end;			if (!X509_set_serialNumber(x, sno)) 				goto end;			ASN1_INTEGER_free(sno);			sno = NULL;			}		else if (!X509_set_serialNumber(x, sno)) 			goto end;		if (!X509_set_issuer_name(x,req->req_info->subject)) goto end;		if (!X509_set_subject_name(x,req->req_info->subject)) goto end;		X509_gmtime_adj(X509_get_notBefore(x),0);	        X509_time_adj_ex(X509_get_notAfter(x),days, 0, NULL);		pkey = X509_REQ_get_pubkey(req);		X509_set_pubkey(x,pkey);		EVP_PKEY_free(pkey);		}	else		x=load_cert(bio_err,infile,informat,NULL,e,"Certificate");	if (x == NULL) goto end;	if (CA_flag)		{		xca=load_cert(bio_err,CAfile,CAformat,NULL,e,"CA Certificate");		if (xca == NULL) goto end;		}	if (!noout || text || next_serial)		{
开发者ID:0omega,项目名称:platform_external_openssl,代码行数:67,


示例28: SCRYPT_PARAMS_new

static X509_ALGOR *pkcs5_scrypt_set(const unsigned char *salt, size_t saltlen,                                    size_t keylen, uint64_t N, uint64_t r,                                    uint64_t p){    X509_ALGOR *keyfunc = NULL;    SCRYPT_PARAMS *sparam = NULL;    sparam = SCRYPT_PARAMS_new();    if (sparam == NULL)        goto merr;    if (!saltlen)        saltlen = PKCS5_SALT_LEN;    /* This will either copy salt or grow the buffer */    if (ASN1_STRING_set(sparam->salt, salt, saltlen) == 0)        goto merr;    if (salt == NULL && RAND_bytes(sparam->salt->data, saltlen) <= 0)        goto err;    if (ASN1_INTEGER_set_uint64(sparam->costParameter, N) == 0)        goto merr;    if (ASN1_INTEGER_set_uint64(sparam->blockSize, r) == 0)        goto merr;    if (ASN1_INTEGER_set_uint64(sparam->parallelizationParameter, p) == 0)        goto merr;    /* If have a key len set it up */    if (keylen > 0) {        sparam->keyLength = ASN1_INTEGER_new();        if (sparam->keyLength == NULL)            goto merr;        if (ASN1_INTEGER_set_int64(sparam->keyLength, keylen) == 0)            goto merr;    }    /* Finally setup the keyfunc structure */    keyfunc = X509_ALGOR_new();    if (keyfunc == NULL)        goto merr;    keyfunc->algorithm = OBJ_nid2obj(NID_id_scrypt);    /* Encode SCRYPT_PARAMS into parameter of pbe2 */    if (ASN1_TYPE_pack_sequence(ASN1_ITEM_rptr(SCRYPT_PARAMS), sparam,                                &keyfunc->parameter) == NULL)        goto merr;    SCRYPT_PARAMS_free(sparam);    return keyfunc; merr:    ASN1err(ASN1_F_PKCS5_SCRYPT_SET, ERR_R_MALLOC_FAILURE); err:    SCRYPT_PARAMS_free(sparam);    X509_ALGOR_free(keyfunc);    return NULL;}
开发者ID:AndreV84,项目名称:openssl,代码行数:64,


示例29: x509_main

//.........这里部分代码省略.........            (req->req_info->pubkey == NULL) ||            (req->req_info->pubkey->public_key == NULL) ||            (req->req_info->pubkey->public_key->data == NULL)) {            BIO_printf(bio_err,                       "The certificate request appears to corrupted/n");            BIO_printf(bio_err, "It does not contain a public key/n");            goto end;        }        if ((pkey = X509_REQ_get_pubkey(req)) == NULL) {            BIO_printf(bio_err, "error unpacking public key/n");            goto end;        }        i = X509_REQ_verify(req, pkey);        EVP_PKEY_free(pkey);        if (i < 0) {            BIO_printf(bio_err, "Signature verification error/n");            ERR_print_errors(bio_err);            goto end;        }        if (i == 0) {            BIO_printf(bio_err,                       "Signature did not match the certificate request/n");            goto end;        } else            BIO_printf(bio_err, "Signature ok/n");        print_name(bio_err, "subject=", X509_REQ_get_subject_name(req),                   nmflag);        if ((x = X509_new()) == NULL)            goto end;        if (sno == NULL) {            sno = ASN1_INTEGER_new();            if (!sno || !rand_serial(NULL, sno))                goto end;            if (!X509_set_serialNumber(x, sno))                goto end;            ASN1_INTEGER_free(sno);            sno = NULL;        } else if (!X509_set_serialNumber(x, sno))            goto end;        if (!X509_set_issuer_name(x, req->req_info->subject))            goto end;        if (!X509_set_subject_name(x, req->req_info->subject))            goto end;        X509_gmtime_adj(X509_get_notBefore(x), 0);        X509_time_adj_ex(X509_get_notAfter(x), days, 0, NULL);        if (fkey)            X509_set_pubkey(x, fkey);        else {            pkey = X509_REQ_get_pubkey(req);            X509_set_pubkey(x, pkey);            EVP_PKEY_free(pkey);        }    } else        x = load_cert(infile, informat, NULL, e, "Certificate");    if (x == NULL)        goto end;    if (CA_flag) {        xca = load_cert(CAfile, CAformat, NULL, e, "CA Certificate");        if (xca == NULL)            goto end;
开发者ID:eight-pack-abdominals,项目名称:openssl,代码行数:67,


示例30: x509_make_cert_nif

static ERL_NIF_TERM x509_make_cert_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]){  int expiry, serial;  ASN1_INTEGER *asn1serial = NULL;  BIGNUM *bn_rsa_genkey=NULL;  BIO *bio_signing_private=NULL, *bio_issuer_cert = NULL, *bio_newcert_public = NULL;  BIO *bio_x509=NULL;  char *issuer_cert_pem=NULL;  X509 *pX509 = NULL;  X509 *pIssuerX509 = NULL;  X509_NAME *pX509Name = NULL;  X509_NAME *pIssuerName = NULL;  x509_subject_entry *subject_entries;  int num_subject_entries;  int iret = 0;  RSA *rsa=NULL;  unsigned long f4=RSA_F4;  unsigned args_len=-1;  char *signing_keys[2], *cert_keys[2];  ERL_NIF_TERM tail, *arg_terms=NULL;  int idx;  ERL_NIF_TERM ret, x509term;  int x509len;  unsigned char *x509data;  EVP_PKEY *evp_signing_private = EVP_PKEY_new();  EVP_PKEY *evp_newcert_public_key = EVP_PKEY_new();  /* set RSA key gen type */  bn_rsa_genkey = BN_new();  BN_set_word(bn_rsa_genkey, f4);  //  // 1. stick subject of CA cert into NewCert  // 2. stick public key of NewKeypair into NewCert  // 3. sign NewCert with CA keypair  /* Should be 6 elements in the list of X509 parameters.  We'll check each */  if(!enif_get_list_length(env, argv[0], &args_len) || args_len != 6 ||     NULL == (arg_terms = (ERL_NIF_TERM*)malloc(args_len * sizeof(ERL_NIF_TERM)))) return enif_make_badarg(env);    enif_get_list_cell(env, argv[0], &arg_terms[0], &tail);  for(idx=1; idx<args_len; idx++){    if(!enif_get_list_cell(env, tail, &arg_terms[idx], &tail)){      free(arg_terms);      return enif_make_badarg(env);    }  }    idx=0;  /* get the signing private key */  x509_parse_keypair(env, "signing_key", arg_terms[idx++], signing_keys);  /* get the issuer cert */  x509_parse_issuer_cert(env, arg_terms[idx++], &issuer_cert_pem);  /* get the soon-to-be cert's public key */  x509_parse_keypair(env, "newcert_public_key", arg_terms[idx++], cert_keys);  /* get the subject */  x509_parse_subject(env, arg_terms[idx++], &num_subject_entries, &subject_entries);  /* get the serial number */  x509_parse_int_tuple(env, arg_terms[idx++], "serial", &serial);  /* get the expiry */  x509_parse_int_tuple(env, arg_terms[idx++], "expiry", &expiry);  /* work the OpenSSL cert creation magic */  if ((bio_signing_private = BIO_new_mem_buf(signing_keys[1], -1))      && (rsa = PEM_read_bio_RSAPrivateKey(bio_signing_private, NULL, NULL, NULL))      && (iret = EVP_PKEY_assign_RSA(evp_signing_private, rsa))                    && (bio_newcert_public = BIO_new_mem_buf(cert_keys[0], -1))      && (evp_newcert_public_key = PEM_read_bio_PUBKEY(bio_newcert_public, NULL, NULL, NULL))                    && (bio_issuer_cert = BIO_new_mem_buf(issuer_cert_pem, -1))      && (pIssuerX509 = PEM_read_bio_X509(bio_issuer_cert, NULL, NULL, NULL))      && (pX509 = X509_new())) {    /* if we've managed to generate a key and allocate structure memory,       set X509 fields */    asn1serial = ASN1_INTEGER_new();    X509_set_version(pX509, 2); /* cert_helper uses '3' here */    ASN1_INTEGER_set(asn1serial, serial);    X509_set_serialNumber(pX509, asn1serial);    X509_gmtime_adj(X509_get_notBefore(pX509),0);    X509_gmtime_adj(X509_get_notAfter(pX509),(long)60*60*24*expiry);    X509_set_pubkey(pX509, evp_newcert_public_key);    pX509Name = X509_get_subject_name(pX509);        while(--num_subject_entries >= 0){      X509_NAME_add_entry_by_txt(pX509Name, (subject_entries[num_subject_entries]).name,                                 MBSTRING_ASC, (unsigned char*)(subject_entries[num_subject_entries]).value, -1, -1, 0);    }        pIssuerName = X509_get_issuer_name(pIssuerX509);    X509_set_issuer_name(pX509, pIssuerName);    X509_sign(pX509, evp_signing_private, digest);        bio_x509 = BIO_new(BIO_s_mem());    PEM_write_bio_X509(bio_x509, pX509);//.........这里部分代码省略.........
开发者ID:chef,项目名称:chef_certgen,代码行数:101,



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


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