• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ d2i_RSAPrivateKey函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: Destroy

int COsslKey::setPrivateKeyRaw( sqbind::CSqBinary *pBin )
{_STT();

	Destroy();

	if ( !pBin || !pBin->getUsed() )
		return 0;

	m_pkey = EVP_PKEY_new();
	if ( !m_pkey )
	{	oexERROR( 0, oexT( "EVP_PKEY_new() failed" ) );
		Destroy();
		return 0;
	} // end if

	const unsigned char *p = (const unsigned char*)pBin->Ptr();
	RSA *rsa = d2i_RSAPrivateKey( oexNULL, &p, pBin->getUsed() );
	if ( !rsa )
	{	oexERROR( 0, oexT( "d2i_RSAPrivateKey() failed" ) );
		Destroy();
		return 0;
	} // end if

	// Assign key
	if ( !EVP_PKEY_assign_RSA( m_pkey, rsa ) )
	{	oexERROR( 0, oexT( "EVP_PKEY_assign_RSA() failed" ) );
		Destroy();
		return 0;
	} // end if
	rsa = oexNULL;

	return GenPublicKey();
}
开发者ID:MangoCats,项目名称:winglib,代码行数:33,代码来源:sq_ossl_key.cpp


示例2: keystore_load_rsakey

static void keystore_load_rsakey(GKeyFile *keyfile, gchar *key,
                                 struct keystore_t *keystore)
{
	g_assert(NULL != keyfile);
	g_assert(NULL != key);
	g_assert(NULL != keystore);
	gsize length = 0;
	gchar **list = g_key_file_get_string_list(keyfile, "rsa", key, &length, NULL);

	if (length == 2)
	{
		int key_index = atoi(key);
		int keylen = atoi(list[0]);
		gsize keybits_len = 0;
		guchar *keybits = g_base64_decode(list[1], &keybits_len);
		const guchar *tmp = keybits;

		struct rsa_key_t *rsa_key = g_malloc(sizeof(struct rsa_key_t));
		rsa_key->keylen = keylen;
		rsa_key->rsa = d2i_RSAPrivateKey(NULL, (const unsigned char **)&tmp,
		                                 keybits_len);

		if (NULL != rsa_key->rsa)
		{
			keystore_key_replace(keystore->rsa, rsa_key, &key_index);
		}

		g_free(keybits);
	}

	g_strfreev(list);
}
开发者ID:ctbrowser,项目名称:nyx-modules,代码行数:32,代码来源:keystore.c


示例3: PrivateKeyRead

VbPrivateKey* PrivateKeyRead(const char* filename) {
  VbPrivateKey *key;
  uint64_t filelen = 0;
  uint8_t *buffer;
  const unsigned char *start;

  buffer = ReadFile(filename, &filelen);
  if (!buffer) {
    VbExError("unable to read from file %s\n", filename);
    return 0;
  }

  key = (VbPrivateKey*)malloc(sizeof(VbPrivateKey));
  if (!key) {
    VbExError("Unable to allocate VbPrivateKey\n");
    free(buffer);
    return 0;
  }

  key->algorithm = *(typeof(key->algorithm) *)buffer;
  start = buffer + sizeof(key->algorithm);

  key->rsa_private_key = d2i_RSAPrivateKey(0, &start,
                                           filelen - sizeof(key->algorithm));

  if (!key->rsa_private_key) {
    VbExError("Unable to parse RSA private key\n");
    free(buffer);
    free(key);
    return 0;
  }

  free(buffer);
  return key;
}
开发者ID:Sigterm-no,项目名称:vboot_reference,代码行数:35,代码来源:host_key.c


示例4: ASN1err

EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp,
       long length)
  {
  EVP_PKEY *ret;

  if ((a == NULL) || (*a == NULL))
    {
    if ((ret=EVP_PKEY_new()) == NULL)
      {
      ASN1err(ASN1_F_D2I_PRIVATEKEY,ERR_R_EVP_LIB);
      return(NULL);
      }
    }
  else  ret= *a;

  ret->save_type=type;
  ret->type=EVP_PKEY_type(type);
  switch (ret->type)
    {
#ifndef OPENSSL_NO_RSA
  case EVP_PKEY_RSA:
    if ((ret->pkey.rsa=d2i_RSAPrivateKey(NULL,
      (const unsigned char **)pp,length)) == NULL) /* TMP UGLY CAST */
      {
      ASN1err(ASN1_F_D2I_PRIVATEKEY,ERR_R_ASN1_LIB);
      goto err;
      }
    break;
#endif
#ifndef OPENSSL_NO_DSA
  case EVP_PKEY_DSA:
    if ((ret->pkey.dsa=d2i_DSAPrivateKey(NULL,
      (const unsigned char **)pp,length)) == NULL) /* TMP UGLY CAST */
      {
      ASN1err(ASN1_F_D2I_PRIVATEKEY,ERR_R_ASN1_LIB);
      goto err;
      }
    break;
#endif
#ifndef OPENSSL_NO_EC
  case EVP_PKEY_EC:
    if ((ret->pkey.ec = d2i_ECPrivateKey(NULL, 
      (const unsigned char **)pp, length)) == NULL)
      {
      ASN1err(ASN1_F_D2I_PRIVATEKEY, ERR_R_ASN1_LIB);
      goto err;
      }
    break;
#endif
  default:
    ASN1err(ASN1_F_D2I_PRIVATEKEY,ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE);
    goto err;
    /* break; */
    }
  if (a != NULL) (*a)=ret;
  return(ret);
err:
  if ((ret != NULL) && ((a == NULL) || (*a != ret))) EVP_PKEY_free(ret);
  return(NULL);
  }
开发者ID:yyyyyao,项目名称:Slicer3-lib-mirrors,代码行数:60,代码来源:d2i_pr.c


示例5:

static EVP_PKEY *load_example_rsa_key(void)
{
    EVP_PKEY *ret = NULL;
    const unsigned char *derp = kExampleRSAKeyDER;
    EVP_PKEY *pkey = NULL;
    RSA *rsa = NULL;

    if (!d2i_RSAPrivateKey(&rsa, &derp, sizeof(kExampleRSAKeyDER))) {
        return NULL;
    }

    pkey = EVP_PKEY_new();
    if (pkey == NULL || !EVP_PKEY_set1_RSA(pkey, rsa)) {
        goto out;
    }

    ret = pkey;
    pkey = NULL;

 out:
    EVP_PKEY_free(pkey);
    RSA_free(rsa);

    return ret;
}
开发者ID:erbridge,项目名称:openssl,代码行数:25,代码来源:evp_extra_test.c


示例6: PKI_load_private_RSA

SEXP PKI_load_private_RSA(SEXP what, SEXP sPassword) {
    EVP_PKEY *key = 0;
    BIO *bio_mem;
    if (TYPEOF(sPassword) != STRSXP || LENGTH(sPassword) != 1)
	Rf_error("Password must be a string");
    PKI_init();
    if (TYPEOF(what) == RAWSXP) { /* assuming binary DER format */
	RSA *rsa = 0;
	const unsigned char *ptr;
	ptr = (const unsigned char *) RAW(what);
	rsa = d2i_RSAPrivateKey(&rsa, &ptr, LENGTH(what));
	if (!rsa)
	    Rf_error("%s", ERR_error_string(ERR_get_error(), NULL));
	key = EVP_PKEY_new();
	EVP_PKEY_assign_RSA(key, rsa);
    } else if (TYPEOF(what) == STRSXP && LENGTH(what)) {
	SEXP b64Key = STRING_ELT(what, 0);
	bio_mem = BIO_new_mem_buf((void *) CHAR(b64Key), -1);
	key = PEM_read_bio_PrivateKey(bio_mem, 0, 0, (void*) CHAR(STRING_ELT(sPassword, 0)));
	BIO_free(bio_mem);
	if (!key)
	    Rf_error("%s", ERR_error_string(ERR_get_error(), NULL));
    } else
	Rf_error("Private key must be a character or raw vector");

    return wrap_EVP_PKEY(key, PKI_KT_PRIVATE);
}
开发者ID:rOpenSec,项目名称:PKI,代码行数:27,代码来源:pki-x509.c


示例7: main

main(){
	
	unsigned char *pem_key_str = "MIGJAoGBAKz8scCXFg2O2r2sMsic40hSgHw1q52LUAvEHDH4S5pgflNjs8NfJKOjZmnkTpxI+eLmGKqPPWg7SF7YbUMmmTXvhuTWQF9OcXhIxzIUVFwQKZEWSgZyoaqwcy3XF6sIf7oFDRWfkIY5RCp03GdM0IjGK3lDIdfh0p6wSjTdfvvhAgMBAAEwggJcAgEAAoGBAKz8scCXFg2O2r2sMsic40hSgHw1q52LUAvEHDH4S5pgflNjs8NfJKOjZmnkTpxI+eLmGKqPPWg7SF7YbUMmmTXvhuTWQF9OcXhIxzIUVFwQKZEWSgZyoaqwcy3XF6sIf7oFDRWfkIY5RCp03GdM0IjGK3lDIdfh0p6wSjTdfvvhAgMBAAECgYBo1D1Xq3dWwgI2vPqNbd2h/zUTkGauczUP3EkF0yTlqaIEIMBYHfkTHTs74nns5aBg6vV5rpIU7w/9QgR8lBB1it3g6QU8RWdLG1cpckEL8LLPPWPIUOTSaId2BAeIU3Q0NOBc0sWO1pUTvYBGykQW9LYsP3254yIbc+5aQhwjAQJBANUh5TA45sMvpK+ZoRd3rWTQMU3Ted2/MCsGknPSPCk9ZxHTknU+q5O8L2kmWuc0b/IrVp4Zi9AUDx9AplRUvjECQQDPx7t6Iaim+jjO5y9FcKQPnFW4PRD2s2OffGisrIVAoLoQqNeHW5itltEs/CIT2AyTYRhg4uBIC37gt3kelDyxAkBhNv24Oiwf2apvok6VSrRfaIskqZJLr/pDldLVW46vbN+HhQ6nxfczAsJJXwJVtVheiKAQqyxXs96V7cIwcxrxAkEAihggRRK7yYaCXRkPtOIhV/K6kgGcFaqyapw/4Yuj4IkyQMJGxMKe3bhf+7rzVyb/bLBaiIIhOCDTybyHNkilcQJAHNSMtPgDVvYbzImMaNcpGHKJdkPoChO7W7EpRuCMlT7OMIc8cQIOiTBrHRDzF72NT0p+QfAXUAZxat7s1oqSDw==";
	
	RSA *pub_rsa,*priv_rsa;
	unsigned char de_buf[2048],*p,*start;
	int de_len;
	
	p=de_buf;
	base64_decode(pem_key_str,strlen(pem_key_str),de_buf,&de_len);
	
	p = (unsigned char*)malloc(de_len);
    memcpy(p,de_buf,de_len);
    start = p;  
    pub_rsa=d2i_RSAPublicKey(NULL,(const unsigned char**)&p,(long)de_len);
    de_len-=(p-start);
    priv_rsa=d2i_RSAPrivateKey(NULL,(const unsigned char**)&p,(long)de_len);

	if ((pub_rsa == NULL) || (priv_rsa == NULL))
		ERR_print_errors_fp(stderr);

    RSA_print_fp(stdout,pub_rsa,11);
    RSA_print_fp(stdout,priv_rsa,11);
    
	RSA_free(pub_rsa);
	RSA_free(priv_rsa);
	

}
开发者ID:v0re,项目名称:shopexts,代码行数:29,代码来源:d2i.c


示例8: d2i_X509

int EdSSLContext::setSSLCertMem(void* crt, int crtlen, void* key, int keylen)
{
	X509* xcert = d2i_X509(NULL, (const unsigned char**)&crt, crtlen);
	SSL_CTX_use_certificate(mCtx, xcert);

	RSA *pkey = d2i_RSAPrivateKey(NULL, (const unsigned char**)&key, keylen);
	SSL_CTX_use_RSAPrivateKey(mCtx, pkey);
	return 0;
}
开发者ID:netmindms,项目名称:ednio,代码行数:9,代码来源:EdSSLContext.cpp


示例9: old_rsa_priv_decode

static int old_rsa_priv_decode(EVP_PKEY *pkey, const unsigned char **pder,
                               int derlen) {
  RSA *rsa = d2i_RSAPrivateKey(NULL, pder, derlen);
  if (rsa == NULL) {
    OPENSSL_PUT_ERROR(EVP, old_rsa_priv_decode, ERR_R_RSA_LIB);
    return 0;
  }
  EVP_PKEY_assign_RSA(pkey, rsa);
  return 1;
}
开发者ID:krunalsoni01,项目名称:src,代码行数:10,代码来源:p_rsa_asn1.c


示例10: old_rsa_priv_decode

static int old_rsa_priv_decode(EVP_PKEY *pkey,
                               const unsigned char **pder, int derlen)
{
    RSA *rsa;
    if (!(rsa = d2i_RSAPrivateKey(NULL, pder, derlen))) {
        RSAerr(RSA_F_OLD_RSA_PRIV_DECODE, ERR_R_RSA_LIB);
        return 0;
    }
    EVP_PKEY_assign_RSA(pkey, rsa);
    return 1;
}
开发者ID:03050903,项目名称:godot,代码行数:11,代码来源:rsa_ameth.c


示例11: R_rsa_decrypt

SEXP R_rsa_decrypt(SEXP data, SEXP keydata){
  static unsigned char* buf[8192];
  RSA *rsa = RSA_new();
  const unsigned char *ptr = RAW(keydata);
  bail(!!d2i_RSAPrivateKey(&rsa, &ptr, LENGTH(keydata)));
  int len = RSA_private_decrypt(LENGTH(data), RAW(data), (unsigned char*) buf, rsa, RSA_PKCS1_PADDING);
  bail(len > 0);
  SEXP res = allocVector(RAWSXP, len);
  memcpy(RAW(res), buf, len);
  return res;
}
开发者ID:rOpenSec,项目名称:openssl,代码行数:11,代码来源:rsa.c


示例12: psRsaParsePkcs1PrivKey

/**
    Parse an RSA private key from a PKCS#1 byte stream.
    @see ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf
 */
int32_t psRsaParsePkcs1PrivKey(psPool_t *pool,
    const unsigned char *p, psSize_t size,
    psRsaKey_t *key)
{
    RSA *rsa;

#  ifndef USE_D2I
    const unsigned char *end, *seq;
    int32_t version;
    psSize_t seqlen;
#  endif

#  ifdef USE_D2I
    if ((rsa = d2i_RSAPrivateKey(NULL, &p, size)) == NULL)
    {
        return PS_PARSE_FAIL;
    }
#  else
    if ((rsa = RSA_new()) == NULL)
    {
        return PS_MEM_FAIL;
    }
    end = p + size;
    if (getAsnSequence(&p, size, &seqlen) < 0)
    {
        RSA_free(rsa);
        goto L_FAIL;
    }
    seq = p;
    if (getAsnInteger(&p, (uint16_t) (end - p), &version) < 0 || version != 0 ||
        getBig(&p, (uint16_t) (end - p), &rsa->n) < 0 ||
        getBig(&p, (uint16_t) (end - p), &rsa->e) < 0 ||
        getBig(&p, (uint16_t) (end - p), &rsa->d) < 0 ||
        getBig(&p, (uint16_t) (end - p), &rsa->p) < 0 ||
        getBig(&p, (uint16_t) (end - p), &rsa->q) < 0 ||
        getBig(&p, (uint16_t) (end - p), &rsa->dmp1) < 0 ||
        getBig(&p, (uint16_t) (end - p), &rsa->dmq1) < 0 ||
        getBig(&p, (uint16_t) (end - p), &rsa->iqmp) < 0 ||
        (uint16_t) (p - seq) != seqlen)
    {

        RSA_free(rsa);
        goto L_FAIL;
    }
    rsa->version = version;
#  endif
    /* RSA_print_fp(stdout, rsa, 0); */
    *key = rsa;
    return PS_SUCCESS;
L_FAIL:
    psTraceIntCrypto("psRsaParsePkcs1PrivKey error on byte %d\n", p - (end - size));
    return PS_PARSE_FAIL;
}
开发者ID:vonydev,项目名称:matrixssl,代码行数:57,代码来源:rsa_openssl.c


示例13: main

main(){	
	
	char *source_filename = "/etc/shopex/skomart.com/sec.pem.en";
	
	char *file_content = NULL;
	int file_content_len = 0;
	
	FILE *fp;

	char *output;
	int output_len;
	int de_len;
	
	int i = 0;
	
	RSA *priv_rsa;
	
	char *b64_decode;
	int b64_decode_len = 0;
	
	char *input = NULL;
	
	if((fp=fopen(source_filename,"rb"))==NULL)
	{
		printf("cant open the file");
		exit(0);
	}
	
	fseek(fp, 0L, SEEK_END);
	file_content_len = ftell(fp);
	fseek(fp, 0L, SEEK_SET);
	file_content = (char *)malloc(file_content_len);
	fread(file_content, 1, file_content_len, fp );
	file_content[file_content_len] = '\0';
	//fclose(fp);
	
	shopex_conf_rsa_decrypt(file_content,file_content_len,&output,&output_len);
	output_len = output_len > strlen(output) ?  strlen(output) :  output_len;
	b64_decode = (char *)malloc(output_len);
	input = (char *)malloc(output_len);
	memcpy(input,output,output_len);
	base64_decode(input,output_len,b64_decode,&b64_decode_len);
	printf("%d\n",b64_decode_len);
	for(i=0;i<b64_decode_len;i++){
		printf("%2x",b64_decode[i]);
	}
	priv_rsa=d2i_RSAPrivateKey(NULL,(const unsigned char**)&b64_decode,(long)b64_decode_len);
		
	RSA_print_fp(stdout,priv_rsa,11);
	
	RSA_free(priv_rsa);

}
开发者ID:noikiy,项目名称:shopexts,代码行数:53,代码来源:decrypt_user_privkey.c


示例14: PKI_load_private_RSA

SEXP PKI_load_private_RSA(SEXP what) {
    EVP_PKEY *key;
    RSA *rsa = 0;
    const unsigned char *ptr;
    if (TYPEOF(what) != RAWSXP)
	Rf_error("key must be a raw vector");
    ptr = (const unsigned char *) RAW(what);
    rsa = d2i_RSAPrivateKey(&rsa, &ptr, LENGTH(what));
    if (!rsa)
	Rf_error("%s", ERR_error_string(ERR_get_error(), NULL));
    key = EVP_PKEY_new();
    EVP_PKEY_assign_RSA(key, rsa);
    return wrap_EVP_PKEY(key, PKI_KT_PRIVATE);
}
开发者ID:prateek05,项目名称:PKI,代码行数:14,代码来源:pki-x509.c


示例15: memset

void pki_evp::veryOldFromData(unsigned char *p, int size )
{
	unsigned char *sik, *pdec, *pdec1, *sik1;
	int outl, decsize;
	unsigned char iv[EVP_MAX_IV_LENGTH];
	unsigned char ckey[EVP_MAX_KEY_LENGTH];
	memset(iv, 0, EVP_MAX_IV_LENGTH);
	RSA *rsakey;
	EVP_CIPHER_CTX ctx;
	const EVP_CIPHER *cipher = EVP_des_ede3_cbc();
	sik = (unsigned char *)OPENSSL_malloc(size);
	check_oom(sik);
	pki_openssl_error();
	pdec = (unsigned char *)OPENSSL_malloc(size);
	if (pdec == NULL ) {
		OPENSSL_free(sik);
		check_oom(pdec);
	}
	pdec1=pdec;
	sik1=sik;
	memcpy(iv, p, 8); /* recover the iv */
	/* generate the key */
	EVP_BytesToKey(cipher, EVP_sha1(), iv, (unsigned char *)oldpasswd,
		strlen(oldpasswd), 1, ckey,NULL);
	/* we use sha1 as message digest,
	 * because an md5 version of the password is
	 * stored in the database...
	 */
	EVP_CIPHER_CTX_init (&ctx);
	EVP_DecryptInit( &ctx, cipher, ckey, iv);
	EVP_DecryptUpdate( &ctx, pdec , &outl, p + 8, size -8 );
	decsize = outl;
	EVP_DecryptFinal( &ctx, pdec + decsize , &outl );
	decsize += outl;
	pki_openssl_error();
	memcpy(sik, pdec, decsize);
	if (key->type == EVP_PKEY_RSA) {
		rsakey=d2i_RSAPrivateKey(NULL,(const unsigned char **)&pdec, decsize);
		if (pki_ign_openssl_error()) {
			rsakey = d2i_RSA_PUBKEY(NULL, (const unsigned char **)&sik, decsize);
		}
		pki_openssl_error();
		if (rsakey) EVP_PKEY_assign_RSA(key, rsakey);
	}
	OPENSSL_free(sik1);
	OPENSSL_free(pdec1);
	EVP_CIPHER_CTX_cleanup(&ctx);
	pki_openssl_error();
	encryptKey();
}
开发者ID:J-Javan,项目名称:xca,代码行数:50,代码来源:pki_evp.cpp


示例16: s2n_asn1der_to_rsa_private_key

int s2n_asn1der_to_rsa_private_key(struct s2n_rsa_private_key *key, struct s2n_blob *asn1der)
{
    uint8_t *original_ptr = asn1der->data;

    key->rsa = d2i_RSAPrivateKey(NULL, (const unsigned char **)(void *)&asn1der->data, asn1der->size);
    if (key->rsa == NULL) {
        S2N_ERROR(S2N_ERR_DECODE_PRIVATE_KEY);
    }
    if (asn1der->data - original_ptr != asn1der->size) {
        S2N_ERROR(S2N_ERR_DECODE_PRIVATE_KEY);
    }

    return 0;
}
开发者ID:Gorelli,项目名称:s2n,代码行数:14,代码来源:s2n_rsa.c


示例17: put_key_der

int
put_key_der(int is_public_only, PyObject *py_key_der,
		PyObject **py_private_key_ccn, PyObject **py_public_key_ccn,
		PyObject **py_public_key_digest, int *public_key_digest_len)
{
	RSA *key_rsa = NULL;
	const unsigned char *key_der;
	Py_ssize_t der_len;
	int r;
	unsigned long err;

	r = PyBytes_AsStringAndSize(py_key_der, (char **) &key_der, &der_len);
	JUMP_IF_NEG(r, error);

	if (is_public_only)
		key_rsa = d2i_RSA_PUBKEY(NULL, &key_der, der_len);
	else
		key_rsa = d2i_RSAPrivateKey(NULL, &key_der, der_len);

	//above changes the key_der, so we set it to NULL for safety to not use it
	key_der = NULL;
	JUMP_IF_NULL(key_rsa, openssl_error);

	r = ccn_keypair_from_rsa(is_public_only, key_rsa, py_private_key_ccn,
			py_public_key_ccn);
	JUMP_IF_NEG(r, error);

	r = create_public_key_digest(key_rsa, py_public_key_digest,
			public_key_digest_len);
	JUMP_IF_NEG(r, error);

	RSA_free(key_rsa);

	return 0;

openssl_error:
	err = ERR_get_error();
	{
		char buf[256];

		ERR_error_string_n(err, buf, sizeof(buf));
		PyErr_Format(g_PyExc_CCNKeyError, "Unable to read Private Key: %s",
				buf);
	}

error:
	RSA_free(key_rsa);
	return -1;
}
开发者ID:Emat12,项目名称:PyCCN,代码行数:49,代码来源:key_utils.c


示例18: SSL_CTX_use_RSAPrivateKey_ASN1

int
SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, long len)
{
	int ret;
	RSA *rsa;

	if ((rsa = d2i_RSAPrivateKey(NULL, &d, (long)len)) == NULL) {
		SSLerrorx(ERR_R_ASN1_LIB);
		return (0);
	}

	ret = SSL_CTX_use_RSAPrivateKey(ctx, rsa);
	RSA_free(rsa);
	return (ret);
}
开发者ID:libressl-portable,项目名称:openbsd,代码行数:15,代码来源:ssl_rsa.c


示例19: SSL_use_RSAPrivateKey_ASN1

int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, long len)
{
    int ret;
    const unsigned char *p;
    RSA *rsa;

    p = d;
    if ((rsa = d2i_RSAPrivateKey(NULL, &p, (long)len)) == NULL) {
        SSLerr(SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1, ERR_R_ASN1_LIB);
        return (0);
    }

    ret = SSL_use_RSAPrivateKey(ssl, rsa);
    RSA_free(rsa);
    return (ret);
}
开发者ID:ChenZewei,项目名称:openssl,代码行数:16,代码来源:ssl_rsa.c


示例20: LUA_FUNCTION

static LUA_FUNCTION(openssl_rsa_read)
{
  size_t l;
  const char* data = luaL_checklstring(L, 1, &l);
  const unsigned char* in = (const unsigned char*)data;
  RSA *rsa = d2i_RSAPrivateKey(NULL, &in, l);
  if (rsa == NULL)
  {
    in = (const unsigned char*)data;
    rsa = d2i_RSA_PUBKEY(NULL, &in, l);
  }
  if (rsa)
    PUSH_OBJECT(rsa, "openssl.rsa");
  else
    lua_pushnil(L);
  return 1;
}
开发者ID:world100,项目名称:11111,代码行数:17,代码来源:rsa.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ d2i_X509_bio函数代码示例发布时间:2022-05-30
下一篇:
C++ d2i_PrivateKey函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap