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

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

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

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

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

示例1:

const char *ERR_reason_error_string(unsigned long e)	{	ERR_STRING_DATA d,*p=NULL;	unsigned long l,r;	l=ERR_GET_LIB(e);	r=ERR_GET_REASON(e);	CRYPTO_r_lock(CRYPTO_LOCK_ERR_HASH);	if (error_hash != NULL)		{		d.error=ERR_PACK(l,0,r);		p=(ERR_STRING_DATA *)lh_retrieve(error_hash,&d);		if (p == NULL)			{			d.error=ERR_PACK(0,0,r);			p=(ERR_STRING_DATA *)lh_retrieve(error_hash,&d);			}		}	CRYPTO_r_unlock(CRYPTO_LOCK_ERR_HASH);	return((p == NULL)?NULL:p->string);	}
开发者ID:Apple-FOSS-Mirror,项目名称:Security,代码行数:25,


示例2: iotssl_log_errors

voidiotssl_log_errors(lcbio_XSSL *xs){    unsigned long curerr;    while ((curerr = ERR_get_error())) {        char errbuf[4096];        ERR_error_string_n(curerr, errbuf, sizeof errbuf);        lcb_log(LOGARGS(xs->ssl, LCB_LOG_ERROR), "%s", errbuf);        if (xs->errcode != LCB_SUCCESS) {            continue; /* Already set */        }        if (ERR_GET_LIB(curerr) == ERR_LIB_SSL) {            switch (ERR_GET_REASON(curerr)) {            case SSL_R_CERTIFICATE_VERIFY_FAILED:            case SSL_R_MISSING_VERIFY_MESSAGE:                xs->errcode = LCB_SSL_CANTVERIFY;                break;            case SSL_R_BAD_PROTOCOL_VERSION_NUMBER:            case SSL_R_UNKNOWN_PROTOCOL:            case SSL_R_WRONG_VERSION_NUMBER:            case SSL_R_UNKNOWN_SSL_VERSION:            case SSL_R_UNSUPPORTED_SSL_VERSION:                xs->errcode = LCB_PROTOCOL_ERROR;                break;            default:                xs->errcode = LCB_SSL_ERROR;            }        }    }}
开发者ID:00christian00,项目名称:couchnode,代码行数:33,


示例3: toresult

static isc_result_ttoresult(isc_result_t fallback) {	isc_result_t result = fallback;	unsigned long err = ERR_get_error();#ifdef HAVE_OPENSSL_ECDSA	int lib = ERR_GET_LIB(err);#endif	int reason = ERR_GET_REASON(err);	switch (reason) {	/*	 * ERR_* errors are globally unique; others	 * are unique per sublibrary	 */	case ERR_R_MALLOC_FAILURE:		result = ISC_R_NOMEMORY;		break;	default:#ifdef HAVE_OPENSSL_ECDSA		if (lib == ERR_R_ECDSA_LIB &&		    reason == ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED) {			result = ISC_R_NOENTROPY;			break;		}#endif		break;	}	return (result);}
开发者ID:edmonds,项目名称:isc-bind9,代码行数:30,


示例4: z_ssl_get_error_str

/** * Fetch OpenSSL error code and generate a string interpretation of it. * * @param[out] buf buffer to put string into * @param[in]  buflen size of buffer * * @returns buf **/gchar *z_ssl_get_error_str(gchar *buf, int buflen){  const char *ls, *fs, *rs;  unsigned long e, l, f, r;  unsigned long new_error = 0;  gint count = -1;  do {    e = new_error;    new_error= ERR_get_error();    ++count;   } while (new_error);  l = ERR_GET_LIB(e);  f = ERR_GET_FUNC(e);  r = ERR_GET_REASON(e);  ls = ERR_lib_error_string(e);  fs = ERR_func_error_string(e);  rs = ERR_reason_error_string(e);  if (count)    g_snprintf(buf, buflen, "error:%08lX:%s:lib(%lu):%s:func(%lu):%s:reason(%lu), supressed %d messages", e, ls ? ls : "(null)", l, fs ? fs : "(null)", f, rs ? rs : "(null)", r, count);  else    g_snprintf(buf, buflen, "error:%08lX:%s:lib(%lu):%s:func(%lu):%s:reason(%lu)", e, ls ? ls : "(null)", l, fs ? fs : "(null)", f, rs ? rs : "(null)", r);  return buf;}
开发者ID:VPetyaa,项目名称:libzorpll,代码行数:36,


示例5: err_hash

/* static unsigned long err_hash(ERR_STRING_DATA *a) */static unsigned long err_hash(const void *a_void)	{	unsigned long ret,l;	l=((const ERR_STRING_DATA *)a_void)->error;	ret=l^ERR_GET_LIB(l)^ERR_GET_FUNC(l);	return(ret^ret%19*13);	}
开发者ID:174high,项目名称:openssl-0.9.8e_linux_porting,代码行数:9,


示例6: err_string_data_hash

static unsigned long err_string_data_hash(const ERR_STRING_DATA *a){    unsigned long ret, l;    l = a->error;    ret = l ^ ERR_GET_LIB(l) ^ ERR_GET_FUNC(l);    return (ret ^ ret % 19 * 13);}
开发者ID:AndreV84,项目名称:openssl,代码行数:8,


示例7: SSL_CTX_use_certificate_chain_mem

intSSL_CTX_use_certificate_chain_mem(SSL_CTX *ctx, void *data, int data_len){	pem_password_cb *psw_fn = ctx->default_passwd_callback;	void *psw_arg = ctx->default_passwd_callback_userdata;	X509 *cert;	BIO *bio = NULL;	int ok;	ERR_clear_error();	/* Read from memory */	bio = BIO_new_mem_buf(data, data_len);	if (!bio) {		SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE, ERR_R_BUF_LIB);		goto failed;	}	/* Load primary cert */	cert = PEM_read_bio_X509_AUX(bio, NULL, psw_fn, psw_arg);	if (!cert) {		SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE, ERR_R_PEM_LIB);		goto failed;	}	/* Increments refcount */	ok = SSL_CTX_use_certificate(ctx, cert);	X509_free(cert);	if (!ok || ERR_peek_error())		goto failed;	/* Load extra certs */	ok = SSL_CTX_clear_extra_chain_certs(ctx);	while (ok) {		cert = PEM_read_bio_X509(bio, NULL, psw_fn, psw_arg);		if (!cert) {			/* Is it EOF? */			unsigned long err = ERR_peek_last_error();			if (ERR_GET_LIB(err) != ERR_LIB_PEM)				break;			if (ERR_GET_REASON(err) != PEM_R_NO_START_LINE)				break;			/* On EOF do successful exit */			BIO_free(bio);			ERR_clear_error();			return 1;		}		/* Does not increment refcount */		ok = SSL_CTX_add_extra_chain_cert(ctx, cert);		if (!ok)			X509_free(cert);	}failed:	if (bio)		BIO_free(bio);	return 0;}
开发者ID:greenplum-db,项目名称:libusual,代码行数:58,


示例8: ERR_peek_error

const char *openssl_iostream_key_load_error(void){       unsigned long err = ERR_peek_error();       if (ERR_GET_LIB(err) == ERR_LIB_X509 &&           ERR_GET_REASON(err) == X509_R_KEY_VALUES_MISMATCH)               return "Key is for a different cert than ssl_cert";       else               return openssl_iostream_error();}
开发者ID:bdraco,项目名称:dovecot,代码行数:10,


示例9: err_component_error_string

const char *ERR_reason_error_string(uint32_t packed_error) {  const char *reason_str = err_component_error_string(      ERR_PACK(ERR_GET_LIB(packed_error), 0, ERR_GET_REASON(packed_error)));  if (reason_str != NULL) {    return reason_str;  }  return err_component_error_string(      ERR_PACK(0, 0, ERR_GET_REASON(packed_error)));}
开发者ID:xin3liang,项目名称:platform_external_chromium_org_third_party_boringssl_src,代码行数:11,


示例10: err_fns_check

const char *ERR_lib_error_string(unsigned long e)	{	ERR_STRING_DATA d,*p;	unsigned long l;	err_fns_check();	l=ERR_GET_LIB(e);	d.error=ERR_PACK(l,0,0);	p=ERRFN(err_get_item)(&d);	return((p == NULL)?NULL:p->string);	}
开发者ID:174high,项目名称:openssl-0.9.8e_linux_porting,代码行数:11,


示例11: checkX509_STORE_error

static int checkX509_STORE_error(char* err, size_t err_len) {    unsigned long errCode = ERR_peek_last_error();    if (ERR_GET_LIB(errCode) != ERR_LIB_X509 ||        ERR_GET_REASON(errCode) != X509_R_CERT_ALREADY_IN_HASH_TABLE) {        snprintf(err,                 err_len,                 "Error adding certificate to X509 store: %s",                 ERR_reason_error_string(errCode));        return 0;    }    return 1;}
开发者ID:ShaneHarvey,项目名称:mongo,代码行数:12,


示例12: CRYPTO_THREAD_run_once

const char *ERR_lib_error_string(unsigned long e){    ERR_STRING_DATA d, *p;    unsigned long l;    CRYPTO_THREAD_run_once(&err_string_init, do_err_strings_init);    l = ERR_GET_LIB(e);    d.error = ERR_PACK(l, 0, 0);    p = int_err_get_item(&d);    return ((p == NULL) ? NULL : p->string);}
开发者ID:AndyUI,项目名称:openssl,代码行数:12,


示例13: ERR_error_string_n

void ERR_error_string_n(unsigned long e, char *buf, size_t len){    char lsbuf[64], fsbuf[64], rsbuf[64];    const char *ls, *fs, *rs;    unsigned long l, f, r;    if (len == 0)        return;    l = ERR_GET_LIB(e);    f = ERR_GET_FUNC(e);    r = ERR_GET_REASON(e);    ls = ERR_lib_error_string(e);    fs = ERR_func_error_string(e);    rs = ERR_reason_error_string(e);    if (ls == NULL)        BIO_snprintf(lsbuf, sizeof(lsbuf), "lib(%lu)", l);    if (fs == NULL)        BIO_snprintf(fsbuf, sizeof(fsbuf), "func(%lu)", f);    if (rs == NULL)        BIO_snprintf(rsbuf, sizeof(rsbuf), "reason(%lu)", r);    BIO_snprintf(buf, len, "error:%08lX:%s:%s:%s", e, ls ? ls : lsbuf,                 fs ? fs : fsbuf, rs ? rs : rsbuf);    if (strlen(buf) == len - 1) {        /*         * output may be truncated; make sure we always have 5         * colon-separated fields, i.e. 4 colons ...         */#define NUM_COLONS 4        if (len > NUM_COLONS) { /* ... if possible */            int i;            char *s = buf;            for (i = 0; i < NUM_COLONS; i++) {                char *colon = strchr(s, ':');                if (colon == NULL || colon > &buf[len - 1] - NUM_COLONS + i) {                    /*                     * set colon no. i at last possible position (buf[len-1]                     * is the terminating 0)                     */                    colon = &buf[len - 1] - NUM_COLONS + i;                    *colon = ':';                }                s = colon + 1;            }        }    }}
开发者ID:winstard,项目名称:GmSSL,代码行数:51,


示例14: ssl_path_err

/** exit with ssl error related to a file path */static void ssl_path_err(const char* s, const char *path){	unsigned long err;	err = ERR_peek_error();	if (ERR_GET_LIB(err) == ERR_LIB_SYS &&		(ERR_GET_FUNC(err) == SYS_F_FOPEN ||		 ERR_GET_FUNC(err) == SYS_F_FREAD) ) {		fprintf(stderr, "error: %s/n%s: %s/n",			s, path, ERR_reason_error_string(err));		exit(1);	} else {		ssl_err(s);	}}
开发者ID:FreeBSDFoundation,项目名称:freebsd,代码行数:15,


示例15: ERR_GET_LIB

const char *ERR_lib_error_string(unsigned long e){    ERR_STRING_DATA d, *p;    unsigned long l;    if (!RUN_ONCE(&err_string_init, do_err_strings_init)) {        return NULL;    }    l = ERR_GET_LIB(e);    d.error = ERR_PACK(l, 0, 0);    p = int_err_get_item(&d);    return ((p == NULL) ? NULL : p->string);}
开发者ID:ZuyingWo,项目名称:openssl,代码行数:14,


示例16: ssleay_rand_pseudo_bytes

/* pseudo-random bytes that are guaranteed to be unique but not   unpredictable */static int ssleay_rand_pseudo_bytes(unsigned char *buf, int num) 	{	int ret;	unsigned long err;	ret = RAND_bytes(buf, num);	if (ret == 0)		{		err = ERR_peek_error();		if (ERR_GET_LIB(err) == ERR_LIB_RAND &&		    ERR_GET_REASON(err) == RAND_R_PRNG_NOT_SEEDED)			ERR_clear_error();		}	return (ret);	}
开发者ID:Ayati1987,项目名称:netmf-interpreter,代码行数:17,


示例17: ERR_get_error

void SafetPKCS12Private::setLastError(){    unsigned long err = ERR_get_error();    if( ERR_GET_LIB(err) == ERR_LIB_PKCS12 )    {        switch( ERR_GET_REASON(err) )        {            case PKCS12_R_MAC_VERIFY_FAILURE: error = SafetPKCS12::InvalidPassword; break;            default: error = SafetPKCS12::Unknown; break;        }    }    else        error = SafetPKCS12::Unknown;    errorString = ERR_error_string( err, NULL );}
开发者ID:Cenditel,项目名称:pysafet,代码行数:15,


示例18: EC_GFp_nist_method

EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)	{	const EC_METHOD *meth;	EC_GROUP *ret;	meth = EC_GFp_nist_method();		ret = EC_GROUP_new(meth);	if (ret == NULL)		return NULL;	if (!EC_GROUP_set_curve_GFp(ret, p, a, b, ctx))		{		unsigned long err;		  		err = ERR_peek_last_error();		if (!(ERR_GET_LIB(err) == ERR_LIB_EC &&			((ERR_GET_REASON(err) == EC_R_NOT_A_NIST_PRIME) ||			 (ERR_GET_REASON(err) == EC_R_NOT_A_SUPPORTED_NIST_PRIME))))			{			/* real error */						EC_GROUP_clear_free(ret);			return NULL;			}							/* not an actual error, we just cannot use EC_GFp_nist_method */		ERR_clear_error();		EC_GROUP_clear_free(ret);		meth = EC_GFp_mont_method();		ret = EC_GROUP_new(meth);		if (ret == NULL)			return NULL;		if (!EC_GROUP_set_curve_GFp(ret, p, a, b, ctx))			{			EC_GROUP_clear_free(ret);			return NULL;			}		}	return ret;	}
开发者ID:AustinWise,项目名称:Netduino-Micro-Framework,代码行数:48,


示例19: PEM_read_bio_X509_AUX

/* Based on Node's SSL_CTX_use_certificate_chain, in src/node_crypto.cc */selene_error_t *read_certificate_chain(selene_conf_t *conf, BIO *in,                                       selene_cert_chain_t **p_certs) {  X509 *x = NULL;  selene_cert_chain_t *chain;  selene_cert_t *tmpc;  x = PEM_read_bio_X509_AUX(in, NULL, NULL, NULL);  if (x == NULL) {    return selene_error_create(SELENE_ENOMEM, "Failed to parse certificate");  }  SELENE_ERR(sln_cert_chain_create(conf, &chain));  SELENE_ERR(sln_cert_create(conf, x, 0, &tmpc));  SLN_CERT_CHAIN_INSERT_TAIL(chain, tmpc);  {    /**     * If we could set up our certificate, now proceed to     * the CA certificates.     */    X509 *ca;    unsigned long err;    while ((ca = PEM_read_bio_X509(in, NULL, NULL, NULL))) {      SELENE_ERR(sln_cert_create(conf, ca, 0, &tmpc));      SLN_CERT_CHAIN_INSERT_TAIL(chain, tmpc);    }    /* When the while loop ends, it's usually just EOF. */    err = ERR_peek_last_error();    if (ERR_GET_LIB(err) == ERR_LIB_PEM &&        ERR_GET_REASON(err) == PEM_R_NO_START_LINE) {      ERR_clear_error();    } else {      /* some real error */      /* TODO: handle parse errors of the ca certs */      ERR_clear_error();    }  }  *p_certs = chain;  return SELENE_SUCCESS;}
开发者ID:pquerna,项目名称:selene,代码行数:46,


示例20: ssl_ctx_use_certificate_chain_bio

/* * Read a bio that contains our certificate in "PEM" format, * possibly followed by a sequence of CA certificates that should be * sent to the peer in the Certificate message. */static intssl_ctx_use_certificate_chain_bio(SSL_CTX *ctx, BIO *in){	X509 *ca, *x = NULL;	unsigned long err;	int ret = 0;	if ((x = PEM_read_bio_X509_AUX(in, NULL, ctx->default_passwd_callback,	    ctx->default_passwd_callback_userdata)) == NULL) {		SSLerrorx(ERR_R_PEM_LIB);		goto err;	}	if (!SSL_CTX_use_certificate(ctx, x))		goto err;	if (!ssl_cert_set0_chain(ctx->internal->cert, NULL))		goto err;	/* Process any additional CA certificates. */	while ((ca = PEM_read_bio_X509(in, NULL,	    ctx->default_passwd_callback,	    ctx->default_passwd_callback_userdata)) != NULL) {		if (!ssl_cert_add0_chain_cert(ctx->internal->cert, ca)) {			X509_free(ca);			goto err;		}	}	/* When the while loop ends, it's usually just EOF. */	err = ERR_peek_last_error();	if (ERR_GET_LIB(err) == ERR_LIB_PEM &&	    ERR_GET_REASON(err) == PEM_R_NO_START_LINE) {		ERR_clear_error();		ret = 1;	} err:	X509_free(x);	return (ret);}
开发者ID:libressl-portable,项目名称:openbsd,代码行数:47,


示例21: tlso_session_errmsg

static char *tlso_session_errmsg( tls_session *sess, int rc, char *buf, size_t len ){	char err[256] = "";	const char *certerr=NULL;	tlso_session *s = (tlso_session *)sess;	rc = ERR_peek_error();	if ( rc ) {		ERR_error_string_n( rc, err, sizeof(err) );		if ( ( ERR_GET_LIB(rc) == ERR_LIB_SSL ) && 				( ERR_GET_REASON(rc) == SSL_R_CERTIFICATE_VERIFY_FAILED ) ) {			int certrc = SSL_get_verify_result(s);			certerr = (char *)X509_verify_cert_error_string(certrc);		}		snprintf(buf, len, "%s%s%s%s", err, certerr ? " (" :"", 				certerr ? certerr : "", certerr ?  ")" : "" );		return buf;	}	return NULL;}
开发者ID:cptaffe,项目名称:openldap,代码行数:21,


示例22: strcpy

/* BAD for multi-threaded, uses a local buffer if ret == NULL */char *ERR_error_string(unsigned long e, char *ret)	{	#ifdef	NO_ERR	if(ret != NULL) {		strcpy(ret, "No Error String Info.");	}	return "No Error String info.";	#else	static char buf[256];	const char *ls,*fs,*rs;	unsigned long l,f,r;	int i;	l=ERR_GET_LIB(e);	f=ERR_GET_FUNC(e);	r=ERR_GET_REASON(e);	ls=ERR_lib_error_string(e);	fs=ERR_func_error_string(e);	rs=ERR_reason_error_string(e);	if (ret == NULL) ret=buf;	sprintf(&(ret[0]),"error:%08lX:",e);	i=strlen(ret);	if (ls == NULL)		sprintf(&(ret[i]),":lib(%lu) ",l);	else	sprintf(&(ret[i]),"%s",ls);	i=strlen(ret);	if (fs == NULL)		sprintf(&(ret[i]),":func(%lu) ",f);	else	sprintf(&(ret[i]),":%s",fs);	i=strlen(ret);	if (rs == NULL)		sprintf(&(ret[i]),":reason(%lu)",r);	else	sprintf(&(ret[i]),":%s",rs);	return(ret);	#endif	}
开发者ID:Apple-FOSS-Mirror,项目名称:Security,代码行数:41,


示例23: X509_STORE_load_bio

/** * Read from a BIO, adding to the x509 store. */static intX509_STORE_load_bio(X509_STORE *ca_store, BIO *in) {  int ret = 1;  X509 *ca;  int r;  int found = 0;  unsigned long err;  while ((ca = PEM_read_bio_X509(in, NULL, NULL, NULL))) {    r = X509_STORE_add_cert(ca_store, ca);    if (r == 0) {      X509_free(ca);      ret = 0;      break;    }    found++;    /**     * The x509 cert object is reference counted by OpenSSL, so the STORE     * keeps it alive after its been added.     */    X509_free(ca);  }  /* When the while loop ends, it's usually just EOF. */  err = ERR_peek_last_error();  if (found != 0 &&      ERR_GET_LIB(err) == ERR_LIB_PEM &&      ERR_GET_REASON(err) == PEM_R_NO_START_LINE) {    ERR_clear_error();  } else  {    /* some real error */    ret = 0;  }  return ret;}
开发者ID:xming,项目名称:luvit,代码行数:43,


示例24: makeChain

SISCertificateChain* makeChain(const char* certData, EVP_PKEY** publicKey) {	BIO* in = BIO_new_mem_buf((void*) certData, -1);	BIO* out = BIO_new(BIO_s_mem());	while (true) {		X509* cert = PEM_read_bio_X509(in, NULL, NULL, NULL);		if (!cert) {			unsigned long err = ERR_peek_last_error();			int lib = ERR_GET_LIB(err);			int func = ERR_GET_FUNC(err);			int reason = ERR_GET_REASON(err);			if (lib == ERR_LIB_PEM && func == PEM_F_PEM_READ_BIO && reason == PEM_R_NO_START_LINE)				break;			ERR_print_errors_fp(stderr);			throw SignBadCert;		}		if (!*publicKey)			*publicKey = X509_PUBKEY_get(X509_get_X509_PUBKEY(cert));		i2d_X509_bio(out, cert);		X509_OBJECT obj;		obj.type = X509_LU_X509;		obj.data.x509 = cert;		X509_OBJECT_free_contents(&obj);	}	BIO_free_all(in);	char* ptr;	long length = BIO_get_mem_data(out, &ptr);	if (length <= 0) {		fprintf(stderr, "Bad certificate file/n");		throw SignBadCert;	}	SISBlob* blob = new SISBlob((uint8_t*) ptr, length);	BIO_free_all(out);	return new SISCertificateChain(blob);}
开发者ID:AliSayed,项目名称:MoSync,代码行数:38,


示例25: is_pem_password_error

static int is_pem_password_error(struct openconnect_info *vpninfo){	unsigned long err = ERR_peek_error();	openconnect_report_ssl_errors(vpninfo);#ifndef EVP_F_EVP_DECRYPTFINAL_EX#define EVP_F_EVP_DECRYPTFINAL_EX EVP_F_EVP_DECRYPTFINAL#endif	/* If the user fat-fingered the passphrase, try again */	if (ERR_GET_LIB(err) == ERR_LIB_EVP &&	    ERR_GET_FUNC(err) == EVP_F_EVP_DECRYPTFINAL_EX &&	    ERR_GET_REASON(err) == EVP_R_BAD_DECRYPT) {		vpn_progress(vpninfo, PRG_ERR,			     _("Loading private key failed (wrong passphrase?)/n"));		ERR_clear_error();		return 1;	}	vpn_progress(vpninfo, PRG_ERR,		     _("Loading private key failed (see above errors)/n"));	return 0;}
开发者ID:shahrdad1,项目名称:openconnect,代码行数:23,


示例26: ERR_error_string_n

void ERR_error_string_n(unsigned long e, char *buf, size_t len){    char lsbuf[64], fsbuf[64], rsbuf[64];    const char *ls, *fs, *rs;    unsigned long l, f, r;    if (len == 0)        return;    l = ERR_GET_LIB(e);    ls = ERR_lib_error_string(e);    if (ls == NULL) {        BIO_snprintf(lsbuf, sizeof(lsbuf), "lib(%lu)", l);        ls = lsbuf;    }    fs = ERR_func_error_string(e);    f = ERR_GET_FUNC(e);    if (fs == NULL) {        BIO_snprintf(fsbuf, sizeof(fsbuf), "func(%lu)", f);        fs = fsbuf;    }    rs = ERR_reason_error_string(e);    r = ERR_GET_REASON(e);    if (rs == NULL) {        BIO_snprintf(rsbuf, sizeof(rsbuf), "reason(%lu)", r);        rs = rsbuf;    }    BIO_snprintf(buf, len, "error:%08lX:%s:%s:%s", e, ls, fs, rs);    if (strlen(buf) == len - 1) {        /* Didn't fit; use a minimal format. */        BIO_snprintf(buf, len, "err:%lx:%lx:%lx:%lx", e, l, f, r);    }}
开发者ID:dgalaxy,项目名称:openssl,代码行数:36,


示例27: ec_GFp_simple_set_compressed_coordinates

int ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *group,                                             EC_POINT *point, const BIGNUM *x_,                                             int y_bit, BN_CTX *ctx) {  BN_CTX *new_ctx = NULL;  BIGNUM *tmp1, *tmp2, *x, *y;  int ret = 0;  ERR_clear_error();  if (ctx == NULL) {    ctx = new_ctx = BN_CTX_new();    if (ctx == NULL) {      return 0;    }  }  y_bit = (y_bit != 0);  BN_CTX_start(ctx);  tmp1 = BN_CTX_get(ctx);  tmp2 = BN_CTX_get(ctx);  x = BN_CTX_get(ctx);  y = BN_CTX_get(ctx);  if (y == NULL) {    goto err;  }  /* Recover y.  We have a Weierstrass equation   *     y^2 = x^3 + a*x + b,   * so  y  is one of the square roots of  x^3 + a*x + b. */  /* tmp1 := x^3 */  if (!BN_nnmod(x, x_, &group->field, ctx)) {    goto err;  }  if (group->meth->field_decode == 0) {    /* field_{sqr,mul} work on standard representation */    if (!group->meth->field_sqr(group, tmp2, x_, ctx) ||        !group->meth->field_mul(group, tmp1, tmp2, x_, ctx)) {      goto err;    }  } else {    if (!BN_mod_sqr(tmp2, x_, &group->field, ctx) ||        !BN_mod_mul(tmp1, tmp2, x_, &group->field, ctx)) {      goto err;    }  }  /* tmp1 := tmp1 + a*x */  if (group->a_is_minus3) {    if (!BN_mod_lshift1_quick(tmp2, x, &group->field) ||        !BN_mod_add_quick(tmp2, tmp2, x, &group->field) ||        !BN_mod_sub_quick(tmp1, tmp1, tmp2, &group->field)) {      goto err;    }  } else {    if (group->meth->field_decode) {      if (!group->meth->field_decode(group, tmp2, &group->a, ctx) ||          !BN_mod_mul(tmp2, tmp2, x, &group->field, ctx)) {        goto err;      }    } else {      /* field_mul works on standard representation */      if (!group->meth->field_mul(group, tmp2, &group->a, x, ctx)) {        goto err;      }    }    if (!BN_mod_add_quick(tmp1, tmp1, tmp2, &group->field)) {      goto err;    }  }  /* tmp1 := tmp1 + b */  if (group->meth->field_decode) {    if (!group->meth->field_decode(group, tmp2, &group->b, ctx) ||        !BN_mod_add_quick(tmp1, tmp1, tmp2, &group->field)) {      goto err;    }  } else {    if (!BN_mod_add_quick(tmp1, tmp1, &group->b, &group->field)) {      goto err;    }  }  if (!BN_mod_sqrt(y, tmp1, &group->field, ctx)) {    unsigned long err = ERR_peek_last_error();    if (ERR_GET_LIB(err) == ERR_LIB_BN &&        ERR_GET_REASON(err) == BN_R_NOT_A_SQUARE) {      ERR_clear_error();      OPENSSL_PUT_ERROR(EC, ec_GFp_simple_set_compressed_coordinates, EC_R_INVALID_COMPRESSED_POINT);    } else {      OPENSSL_PUT_ERROR(EC, ec_GFp_simple_set_compressed_coordinates, ERR_R_BN_LIB);    }    goto err;  }  if (y_bit != BN_is_odd(y)) {//.........这里部分代码省略.........
开发者ID:ZzeetteEZzOLARINventionZ,项目名称:libwebrtc,代码行数:101,



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


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