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

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

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

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

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

示例1: OPENSSL_zalloc

EC_KEY *EC_KEY_new_method(ENGINE *engine){    EC_KEY *ret = OPENSSL_zalloc(sizeof(*ret));    if (ret == NULL) {        ECerr(EC_F_EC_KEY_NEW_METHOD, ERR_R_MALLOC_FAILURE);        return NULL;    }    if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_EC_KEY, ret, &ret->ex_data)) {        OPENSSL_free(ret);        return NULL;    }    ret->lock = CRYPTO_THREAD_lock_new();    if (ret->lock == NULL) {        ECerr(EC_F_EC_KEY_NEW_METHOD, ERR_R_MALLOC_FAILURE);        CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, ret, &ret->ex_data);        OPENSSL_free(ret);        return NULL;    }    ret->meth = EC_KEY_get_default_method();#ifndef OPENSSL_NO_ENGINE    if (engine != NULL) {        if (!ENGINE_init(engine)) {            ECerr(EC_F_EC_KEY_NEW_METHOD, ERR_R_ENGINE_LIB);            CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, ret, &ret->ex_data);            CRYPTO_THREAD_lock_free(ret->lock);            OPENSSL_free(ret);            return NULL;        }        ret->engine = engine;    } else        ret->engine = ENGINE_get_default_EC();    if (ret->engine != NULL) {        ret->meth = ENGINE_get_EC(ret->engine);        if (ret->meth == NULL) {            ECerr(EC_F_EC_KEY_NEW_METHOD, ERR_R_ENGINE_LIB);            ENGINE_finish(ret->engine);            CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, ret, &ret->ex_data);            CRYPTO_THREAD_lock_free(ret->lock);            OPENSSL_free(ret);            return NULL;        }    }#endif    ret->version = 1;    ret->conv_form = POINT_CONVERSION_UNCOMPRESSED;    ret->references = 1;    if (ret->meth->init != NULL && ret->meth->init(ret) == 0) {        EC_KEY_free(ret);        return NULL;    }    return ret;}
开发者ID:Dmitry-Me,项目名称:openssl,代码行数:57,


示例2: bio_cleanup

void bio_cleanup(void){#ifndef OPENSSL_NO_SOCK    bio_sock_cleanup_int();    CRYPTO_THREAD_lock_free(bio_lookup_lock);    bio_lookup_lock = NULL;#endif    CRYPTO_THREAD_lock_free(bio_type_lock);    bio_type_lock = NULL;}
开发者ID:jens-maus,项目名称:amissl,代码行数:10,


示例3: rand_cleanup_int

void rand_cleanup_int(void){    const RAND_METHOD *meth = default_RAND_meth;    if (meth && meth->cleanup)        meth->cleanup();    RAND_set_rand_method(NULL);    CRYPTO_THREAD_lock_free(rand_meth_lock);#ifndef OPENSSL_NO_ENGINE    CRYPTO_THREAD_lock_free(rand_engine_lock);#endif}
开发者ID:vathpela,项目名称:mallory,代码行数:11,


示例4: rand_cleanup

static void rand_cleanup(void){    OPENSSL_cleanse(state, sizeof(state));    state_num = 0;    state_index = 0;    OPENSSL_cleanse(md, MD_DIGEST_LENGTH);    md_count[0] = 0;    md_count[1] = 0;    entropy = 0;    initialized = 0;    CRYPTO_THREAD_lock_free(rand_lock);    CRYPTO_THREAD_lock_free(rand_tmp_lock);}
开发者ID:G-P-S,项目名称:openssl,代码行数:13,


示例5: err_cleanup

void err_cleanup(void){    if (set_err_thread_local != 0)        CRYPTO_THREAD_cleanup_local(&err_thread_local);    CRYPTO_THREAD_lock_free(err_string_lock);    err_string_lock = NULL;}
开发者ID:michaellukashov,项目名称:Far-NetBox,代码行数:7,


示例6: BIO_set

int BIO_set(BIO *bio, const BIO_METHOD *method){    bio->method = method;    bio->callback = NULL;    bio->cb_arg = NULL;    bio->init = 0;    bio->shutdown = 1;    bio->flags = 0;    bio->retry_reason = 0;    bio->num = 0;    bio->ptr = NULL;    bio->prev_bio = NULL;    bio->next_bio = NULL;    bio->references = 1;    bio->num_read = 0L;    bio->num_write = 0L;    CRYPTO_new_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);    bio->lock = CRYPTO_THREAD_lock_new();    if (bio->lock == NULL) {        CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);        return 0;    }    if (method->create != NULL) {        if (!method->create(bio)) {            CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, bio, &bio->ex_data);            CRYPTO_THREAD_lock_free(bio->lock);            return 0;        }    }    return 1;}
开发者ID:3nGercog,项目名称:openssl,代码行数:34,


示例7: hwcrhk_destroy

/* Destructor (complements the "ENGINE_chil()" constructor) */static int hwcrhk_destroy(ENGINE *e){    free_HWCRHK_LIBNAME();    ERR_unload_HWCRHK_strings();    CRYPTO_THREAD_lock_free(chil_lock);    return 1;}
开发者ID:1234-,项目名称:openssl,代码行数:8,


示例8: BIO_free

int BIO_free(BIO *a){    int ret;    if (a == NULL)        return 0;    if (CRYPTO_DOWN_REF(&a->references, &ret, a->lock) <= 0)        return 0;    REF_PRINT_COUNT("BIO", a);    if (ret > 0)        return 1;    REF_ASSERT_ISNT(ret < 0);    if (a->callback != NULL || a->callback_ex != NULL) {        ret = (int)bio_call_callback(a, BIO_CB_FREE, NULL, 0, 0, 0L, 1L, NULL);        if (ret <= 0)            return ret;    }    if ((a->method != NULL) && (a->method->destroy != NULL))        a->method->destroy(a);    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, a, &a->ex_data);    CRYPTO_THREAD_lock_free(a->lock);    OPENSSL_free(a);    return 1;}
开发者ID:Bilibili,项目名称:openssl,代码行数:32,


示例9: X509_STORE_free

void X509_STORE_free(X509_STORE *vfy){    int i;    STACK_OF(X509_LOOKUP) *sk;    X509_LOOKUP *lu;    if (vfy == NULL)        return;    CRYPTO_atomic_add(&vfy->references, -1, &i, vfy->lock);    REF_PRINT_COUNT("X509_STORE", vfy);    if (i > 0)        return;    REF_ASSERT_ISNT(i < 0);    sk = vfy->get_cert_methods;    for (i = 0; i < sk_X509_LOOKUP_num(sk); i++) {        lu = sk_X509_LOOKUP_value(sk, i);        X509_LOOKUP_shutdown(lu);        X509_LOOKUP_free(lu);    }    sk_X509_LOOKUP_free(sk);    sk_X509_OBJECT_pop_free(vfy->objs, cleanup);    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, vfy, &vfy->ex_data);    X509_VERIFY_PARAM_free(vfy->param);    CRYPTO_THREAD_lock_free(vfy->lock);    OPENSSL_free(vfy);}
开发者ID:4ker,项目名称:openssl,代码行数:29,


示例10: DSA_free

void DSA_free(DSA *r){    int i;    if (r == NULL)        return;    CRYPTO_DOWN_REF(&r->references, &i, r->lock);    REF_PRINT_COUNT("DSA", r);    if (i > 0)        return;    REF_ASSERT_ISNT(i < 0);    if (r->meth->finish)        r->meth->finish(r);#ifndef OPENSSL_NO_ENGINE    ENGINE_finish(r->engine);#endif    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DSA, r, &r->ex_data);    CRYPTO_THREAD_lock_free(r->lock);    BN_clear_free(r->p);    BN_clear_free(r->q);    BN_clear_free(r->g);    BN_clear_free(r->pub_key);    BN_clear_free(r->priv_key);    OPENSSL_free(r);}
开发者ID:InfoHunter,项目名称:openssl,代码行数:30,


示例11: asn1_do_lock

int asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it){    const ASN1_AUX *aux;    int *lck, ret;    CRYPTO_RWLOCK **lock;    if ((it->itype != ASN1_ITYPE_SEQUENCE)        && (it->itype != ASN1_ITYPE_NDEF_SEQUENCE))        return 0;    aux = it->funcs;    if (!aux || !(aux->flags & ASN1_AFLG_REFCOUNT))        return 0;    lck = offset2ptr(*pval, aux->ref_offset);    lock = offset2ptr(*pval, aux->ref_lock);    if (op == 0) {        *lck = 1;        *lock = CRYPTO_THREAD_lock_new();        if (*lock == NULL)            return 0;        return 1;    }    CRYPTO_atomic_add(lck, op, &ret, *lock);#ifdef REF_PRINT    fprintf(stderr, "%p:%4d:%s/n", it, *lck, it->sname);#endif    REF_ASSERT_ISNT(ret < 0);    if (ret == 0)        CRYPTO_THREAD_lock_free(*lock);    return ret;}
开发者ID:ArmanIzad,项目名称:openssl,代码行数:29,


示例12: OPENSSL_zalloc

SSL_SESSION *SSL_SESSION_new(void){    SSL_SESSION *ss;    if (!OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL))        return NULL;    ss = OPENSSL_zalloc(sizeof(*ss));    if (ss == NULL) {        SSLerr(SSL_F_SSL_SESSION_NEW, ERR_R_MALLOC_FAILURE);        return NULL;    }    ss->verify_result = 1;      /* avoid 0 (= X509_V_OK) just in case */    ss->references = 1;    ss->timeout = 60 * 5 + 4;   /* 5 minute timeout by default */    ss->time = (unsigned long)time(NULL);    ss->lock = CRYPTO_THREAD_lock_new();    if (ss->lock == NULL) {        SSLerr(SSL_F_SSL_SESSION_NEW, ERR_R_MALLOC_FAILURE);        OPENSSL_free(ss);        return NULL;    }    if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data)) {        CRYPTO_THREAD_lock_free(ss->lock);        OPENSSL_free(ss);        return NULL;    }    return ss;}
开发者ID:infinityhacks,项目名称:openssl,代码行数:31,


示例13: BIO_free

int BIO_free(BIO *a){    int i;    if (a == NULL)        return 0;    if (CRYPTO_atomic_add(&a->references, -1, &i, a->lock) <= 0)        return 0;    REF_PRINT_COUNT("BIO", a);    if (i > 0)        return 1;    REF_ASSERT_ISNT(i < 0);    if ((a->callback != NULL) &&        ((i = (int)a->callback(a, BIO_CB_FREE, NULL, 0, 0L, 1L)) <= 0))        return i;    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, a, &a->ex_data);    CRYPTO_THREAD_lock_free(a->lock);    if ((a->method != NULL) && (a->method->destroy != NULL))        a->method->destroy(a);    OPENSSL_free(a);    return 1;}
开发者ID:3nGercog,项目名称:openssl,代码行数:29,


示例14: EC_KEY_free

void EC_KEY_free(EC_KEY *r){    int i;    if (r == NULL)        return;    CRYPTO_DOWN_REF(&r->references, &i, r->lock);    REF_PRINT_COUNT("EC_KEY", r);    if (i > 0)        return;    REF_ASSERT_ISNT(i < 0);    if (r->meth->finish != NULL)        r->meth->finish(r);#ifndef OPENSSL_NO_ENGINE    ENGINE_finish(r->engine);#endif    if (r->group && r->group->meth->keyfinish)        r->group->meth->keyfinish(r);    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_EC_KEY, r, &r->ex_data);    CRYPTO_THREAD_lock_free(r->lock);    EC_GROUP_free(r->group);    EC_POINT_free(r->pub_key);    BN_clear_free(r->priv_key);    OPENSSL_clear_free((void *)r, sizeof(EC_KEY));}
开发者ID:PeterMosmans,项目名称:openssl,代码行数:31,


示例15: ssl_cert_free

void ssl_cert_free(CERT *c){    int i;    if (c == NULL)        return;    CRYPTO_DOWN_REF(&c->references, &i, c->lock);    REF_PRINT_COUNT("CERT", c);    if (i > 0)        return;    REF_ASSERT_ISNT(i < 0);#ifndef OPENSSL_NO_DH    EVP_PKEY_free(c->dh_tmp);#endif    ssl_cert_clear_certs(c);    OPENSSL_free(c->conf_sigalgs);    OPENSSL_free(c->client_sigalgs);    OPENSSL_free(c->shared_sigalgs);    OPENSSL_free(c->ctype);    X509_STORE_free(c->verify_store);    X509_STORE_free(c->chain_store);    custom_exts_free(&c->custext);#ifndef OPENSSL_NO_PSK    OPENSSL_free(c->psk_identity_hint);#endif    CRYPTO_THREAD_lock_free(c->lock);    OPENSSL_free(c);}
开发者ID:danielctull-forks,项目名称:openssl,代码行数:31,


示例16: DSO_free

int DSO_free(DSO *dso){    int i;    if (dso == NULL)        return (1);    if (CRYPTO_DOWN_REF(&dso->references, &i, dso->lock) <= 0)        return 0;    REF_PRINT_COUNT("DSO", dso);    if (i > 0)        return 1;    REF_ASSERT_ISNT(i < 0);    if ((dso->flags & DSO_FLAG_NO_UNLOAD_ON_FREE) == 0) {        if ((dso->meth->dso_unload != NULL) && !dso->meth->dso_unload(dso)) {            DSOerr(DSO_F_DSO_FREE, DSO_R_UNLOAD_FAILED);            return 0;        }    }    if ((dso->meth->finish != NULL) && !dso->meth->finish(dso)) {        DSOerr(DSO_F_DSO_FREE, DSO_R_FINISH_FAILED);        return 0;    }    sk_void_free(dso->meth_data);    OPENSSL_free(dso->filename);    OPENSSL_free(dso->loaded_filename);    CRYPTO_THREAD_lock_free(dso->lock);    OPENSSL_free(dso);    return 1;}
开发者ID:Castaglia,项目名称:openssl,代码行数:34,


示例17: drbg_cleanup

/* Cleans up the given global DRBG  */static void drbg_cleanup(RAND_DRBG *drbg){    if (drbg != NULL) {        RAND_DRBG_uninstantiate(drbg);        CRYPTO_THREAD_lock_free(drbg->lock);        OPENSSL_secure_clear_free(drbg, sizeof(RAND_DRBG));    }}
开发者ID:syihotmail,项目名称:openssl,代码行数:9,


示例18: rand_cleanup_int

void rand_cleanup_int(void){    const RAND_METHOD *meth = default_RAND_meth;    if (meth != NULL && meth->cleanup != NULL)        meth->cleanup();    RAND_set_rand_method(NULL);#ifndef OPENSSL_NO_ENGINE    CRYPTO_THREAD_lock_free(rand_engine_lock);#endif    CRYPTO_THREAD_lock_free(rand_meth_lock);    CRYPTO_THREAD_lock_free(rand_bytes.lock);    if (rand_bytes.secure)        OPENSSL_secure_clear_free(rand_bytes.buff, rand_bytes.size);    else        OPENSSL_clear_free(rand_bytes.buff, rand_bytes.size);}
开发者ID:danielctull-forks,项目名称:openssl,代码行数:17,


示例19: engine_cleanup_int

void engine_cleanup_int(void){    if (int_cleanup_check(0)) {        sk_ENGINE_CLEANUP_ITEM_pop_free(cleanup_stack,                                        engine_cleanup_cb_free);        cleanup_stack = NULL;    }    CRYPTO_THREAD_lock_free(global_engine_lock);}
开发者ID:danielctull-forks,项目名称:openssl,代码行数:9,


示例20: free_drbg

static void free_drbg(RAND_DRBG *drbg){    CRYPTO_THREAD_lock_free(drbg->lock);    if (drbg->secure)        OPENSSL_secure_clear_free(drbg->randomness, drbg->size);    else        OPENSSL_clear_free(drbg->randomness, drbg->size);    RAND_DRBG_uninstantiate(drbg);}
开发者ID:Vonage,项目名称:openssl,代码行数:9,


示例21: err_cleanup

void err_cleanup(void){    if (set_err_thread_local != 0)        CRYPTO_THREAD_cleanup_local(&err_thread_local);    CRYPTO_THREAD_lock_free(err_string_lock);    err_string_lock = NULL;    lh_ERR_STRING_DATA_free(int_error_hash);    int_error_hash = NULL;}
开发者ID:dgalaxy,项目名称:openssl,代码行数:9,


示例22: UI_free

void UI_free(UI *ui){    if (ui == NULL)        return;    sk_UI_STRING_pop_free(ui->strings, free_string);    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_UI, ui, &ui->ex_data);    CRYPTO_THREAD_lock_free(ui->lock);    OPENSSL_free(ui);}
开发者ID:1234-,项目名称:openssl,代码行数:9,


示例23: provider_store_free

static void provider_store_free(void *vstore){    struct provider_store_st *store = vstore;    if (store == NULL)        return;    sk_OSSL_PROVIDER_pop_free(store->providers, ossl_provider_free);    CRYPTO_THREAD_lock_free(store->lock);    OPENSSL_free(store);}
开发者ID:Ana06,项目名称:openssl,代码行数:10,


示例24: CRYPTO_secure_malloc_done

int CRYPTO_secure_malloc_done(){#ifdef IMPLEMENTED    if (secure_mem_used == 0) {        sh_done();        secure_mem_initialized = 0;        CRYPTO_THREAD_lock_free(sec_malloc_lock);        return 1;    }#endif /* IMPLEMENTED */    return 0;}
开发者ID:robguima,项目名称:openssl,代码行数:12,


示例25: UI_free

void UI_free(UI *ui){    if (ui == NULL)        return;    if ((ui->flags & UI_FLAG_DUPL_DATA) != 0) {        ui->meth->ui_destroy_data(ui, ui->user_data);    }    sk_UI_STRING_pop_free(ui->strings, free_string);    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_UI, ui, &ui->ex_data);    CRYPTO_THREAD_lock_free(ui->lock);    OPENSSL_free(ui);}
开发者ID:danielctull-forks,项目名称:openssl,代码行数:12,


示例26: BN_BLINDING_free

void BN_BLINDING_free(BN_BLINDING *r){    if (r == NULL)        return;    BN_free(r->A);    BN_free(r->Ai);    BN_free(r->e);    BN_free(r->mod);    CRYPTO_THREAD_lock_free(r->lock);    OPENSSL_free(r);}
开发者ID:277800076,项目名称:openssl,代码行数:12,


示例27: EVP_PKEY_free_it

static void EVP_PKEY_free_it(EVP_PKEY *x){    /* internal function; x is never NULL */    if (x->ameth && x->ameth->pkey_free) {        x->ameth->pkey_free(x);        x->pkey.ptr = NULL;    }#ifndef OPENSSL_NO_ENGINE    ENGINE_finish(x->engine);    x->engine = NULL;#endif    CRYPTO_THREAD_lock_free(x->lock);}
开发者ID:ForestBook,项目名称:openssl,代码行数:13,


示例28: CRYPTO_secure_malloc_done

int CRYPTO_secure_malloc_done(void){#ifdef OPENSSL_SECURE_MEMORY    if (secure_mem_used == 0) {        sh_done();        secure_mem_initialized = 0;        CRYPTO_THREAD_lock_free(sec_malloc_lock);        sec_malloc_lock = NULL;        return 1;    }#endif /* OPENSSL_SECURE_MEMORY */    return 0;}
开发者ID:akamai,项目名称:openssl,代码行数:13,


示例29: engine_cleanup_int

void engine_cleanup_int(void){    if (int_cleanup_check(0)) {        sk_ENGINE_CLEANUP_ITEM_pop_free(cleanup_stack,                                        engine_cleanup_cb_free);        cleanup_stack = NULL;    }    /*     * FIXME: This should be handled (somehow) through RAND, eg. by it     * registering a cleanup callback.     */    RAND_set_rand_method(NULL);    CRYPTO_THREAD_lock_free(global_engine_lock);}
开发者ID:Castaglia,项目名称:openssl,代码行数:14,


示例30: RAND_DRBG_free

/* * Uninstantiate |drbg| and free all memory. */void RAND_DRBG_free(RAND_DRBG *drbg){    if (drbg == NULL)        return;    if (drbg->meth != NULL)        drbg->meth->uninstantiate(drbg);    CRYPTO_THREAD_lock_free(drbg->lock);    CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DRBG, drbg, &drbg->ex_data);    if (drbg->secure)        OPENSSL_secure_clear_free(drbg, sizeof(*drbg));    else        OPENSSL_clear_free(drbg, sizeof(*drbg));}
开发者ID:cedral,项目名称:openssl,代码行数:18,



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


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