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

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

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

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

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

示例1: ossl_pkcs7_get_recipient

static VALUEossl_pkcs7_get_recipient(VALUE self){    PKCS7 *pkcs7;    STACK_OF(PKCS7_RECIP_INFO) *sk;    PKCS7_RECIP_INFO *si;    int num, i;    VALUE ary;    GetPKCS7(self, pkcs7);    if (PKCS7_type_is_enveloped(pkcs7))	sk = pkcs7->d.enveloped->recipientinfo;    else if (PKCS7_type_is_signedAndEnveloped(pkcs7))	sk = pkcs7->d.signed_and_enveloped->recipientinfo;    else sk = NULL;    if (!sk) return rb_ary_new();    if ((num = sk_PKCS7_RECIP_INFO_num(sk)) < 0) {	ossl_raise(ePKCS7Error, "Negative number of recipient!");    }    ary = rb_ary_new2(num);    for (i=0; i<num; i++) {	si = sk_PKCS7_RECIP_INFO_value(sk, i);	rb_ary_push(ary, ossl_pkcs7ri_new(si));    }    return ary;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:27,


示例2: ossl_pkcs7_add_data

static VALUEossl_pkcs7_add_data(VALUE self, VALUE data){    PKCS7 *pkcs7;    BIO *out, *in;    char buf[4096];    int len;    in = ossl_obj2bio(data);    GetPKCS7(self, pkcs7);    if(PKCS7_type_is_signed(pkcs7)){	if(!PKCS7_content_new(pkcs7, NID_pkcs7_data))	    ossl_raise(ePKCS7Error, NULL);    }    if(!(out = PKCS7_dataInit(pkcs7, NULL))) goto err;    for(;;){	if((len = BIO_read(in, buf, sizeof(buf))) <= 0)	    break;	if(BIO_write(out, buf, len) != len)	    goto err;    }    if(!PKCS7_dataFinal(pkcs7, out)) goto err;    ossl_pkcs7_set_data(self, Qnil); err:    BIO_free(out);    BIO_free(in);    if(ERR_peek_error()){	ossl_raise(ePKCS7Error, NULL);    }    return data;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:33,


示例3: ossl_pkcs7_decrypt

static VALUEossl_pkcs7_decrypt(int argc, VALUE *argv, VALUE self){    VALUE pkey, cert, flags;    EVP_PKEY *key;    X509 *x509;    int flg;    PKCS7 *p7;    BIO *out;    VALUE str;    rb_scan_args(argc, argv, "21", &pkey, &cert, &flags);    key = GetPrivPKeyPtr(pkey); /* NO NEED TO DUP */    x509 = GetX509CertPtr(cert); /* NO NEED TO DUP */    flg = NIL_P(flags) ? 0 : NUM2INT(flags);    GetPKCS7(self, p7);    if(!(out = BIO_new(BIO_s_mem())))	ossl_raise(ePKCS7Error, NULL);    if(!PKCS7_decrypt(p7, key, x509, out, flg)){	BIO_free(out);	ossl_raise(ePKCS7Error, NULL);    }    str = ossl_membio2str(out); /* out will be free */    return str;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:26,


示例4: ossl_pkcs7_detached_p

static VALUEossl_pkcs7_detached_p(VALUE self){    PKCS7 *p7;    GetPKCS7(self, p7);    return PKCS7_is_detached(p7) ? Qtrue : Qfalse;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:7,


示例5: ossl_pkcs7_get_signer

static VALUEossl_pkcs7_get_signer(VALUE self){    PKCS7 *pkcs7;    STACK_OF(PKCS7_SIGNER_INFO) *sk;    PKCS7_SIGNER_INFO *si;    int num, i;    VALUE ary;    GetPKCS7(self, pkcs7);    if (!(sk = PKCS7_get_signer_info(pkcs7))) {	OSSL_Debug("OpenSSL::PKCS7#get_signer_info == NULL!");	return rb_ary_new();    }    if ((num = sk_PKCS7_SIGNER_INFO_num(sk)) < 0) {	ossl_raise(ePKCS7Error, "Negative number of signers!");    }    ary = rb_ary_new2(num);    for (i=0; i<num; i++) {	si = sk_PKCS7_SIGNER_INFO_value(sk, i);	rb_ary_push(ary, ossl_pkcs7si_new(si));    }    return ary;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:25,


示例6: ossl_pkcs7_set_type

/* * call-seq: *    pkcs7.type = type => type */static VALUEossl_pkcs7_set_type(VALUE self, VALUE type){    PKCS7 *p7;    GetPKCS7(self, p7);    if(!PKCS7_set_type(p7, ossl_pkcs7_sym2typeid(type)))	ossl_raise(ePKCS7Error, NULL);    return type;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:15,


示例7: ossl_pkcs7_set_cipher

static VALUEossl_pkcs7_set_cipher(VALUE self, VALUE cipher){    PKCS7 *pkcs7;    GetPKCS7(self, pkcs7);    if (!PKCS7_set_cipher(pkcs7, GetCipherPtr(cipher))) {	ossl_raise(ePKCS7Error, NULL);    }    return cipher;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:12,


示例8: ossl_pkcs7_set_detached

static VALUEossl_pkcs7_set_detached(VALUE self, VALUE flag){    PKCS7 *p7;    GetPKCS7(self, p7);    if(flag != Qtrue && flag != Qfalse)	ossl_raise(ePKCS7Error, "must specify a boolean");    if(!PKCS7_set_detached(p7, flag == Qtrue ? 1 : 0))	ossl_raise(ePKCS7Error, NULL);    return flag;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:13,


示例9: ossl_pkcs7_add_crl

static VALUEossl_pkcs7_add_crl(VALUE self, VALUE crl){    PKCS7 *pkcs7;    X509_CRL *x509crl;    GetPKCS7(self, pkcs7); /* NO DUP needed! */    x509crl = GetX509CRLPtr(crl);    if (!PKCS7_add_crl(pkcs7, x509crl)) {	ossl_raise(ePKCS7Error, NULL);    }    return self;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:14,


示例10: ossl_pkcs7_add_certificate

static VALUEossl_pkcs7_add_certificate(VALUE self, VALUE cert){    PKCS7 *pkcs7;    X509 *x509;    GetPKCS7(self, pkcs7);    x509 = GetX509CertPtr(cert);  /* NO NEED TO DUP */    if (!PKCS7_add_certificate(pkcs7, x509)){	ossl_raise(ePKCS7Error, NULL);    }    return self;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:14,


示例11: ossl_pkcs7_add_recipient

static VALUEossl_pkcs7_add_recipient(VALUE self, VALUE recip){    PKCS7 *pkcs7;    PKCS7_RECIP_INFO *ri;    ri = DupPKCS7RecipientPtr(recip); /* NEED TO DUP */    GetPKCS7(self, pkcs7);    if (!PKCS7_add_recipient_info(pkcs7, ri)) {	PKCS7_RECIP_INFO_free(ri);	ossl_raise(ePKCS7Error, "Could not add recipient.");    }    return self;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:15,


示例12: ossl_pkcs7_get_type

/* * call-seq: *    pkcs7.type => string or nil */static VALUEossl_pkcs7_get_type(VALUE self){    PKCS7 *p7;    GetPKCS7(self, p7);    if(PKCS7_type_is_signed(p7))	return ID2SYM(rb_intern("signed"));    if(PKCS7_type_is_encrypted(p7))	return ID2SYM(rb_intern("encrypted"));    if(PKCS7_type_is_enveloped(p7))	return ID2SYM(rb_intern("enveloped"));    if(PKCS7_type_is_signedAndEnveloped(p7))	return ID2SYM(rb_intern("signedAndEnveloped"));    if(PKCS7_type_is_data(p7))	return ID2SYM(rb_intern("data"));    return Qnil;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:22,


示例13: ossl_pkcs7_verify

static VALUEossl_pkcs7_verify(int argc, VALUE *argv, VALUE self){    VALUE certs, store, indata, flags;    STACK_OF(X509) *x509s;    X509_STORE *x509st;    int flg, ok, status = 0;    BIO *in, *out;    PKCS7 *p7;    VALUE data;    const char *msg;    rb_scan_args(argc, argv, "22", &certs, &store, &indata, &flags);    flg = NIL_P(flags) ? 0 : NUM2INT(flags);    if(NIL_P(indata)) indata = ossl_pkcs7_get_data(self);    in = NIL_P(indata) ? NULL : ossl_obj2bio(indata);    if(NIL_P(certs)) x509s = NULL;    else{	x509s = ossl_protect_x509_ary2sk(certs, &status);	if(status){	    BIO_free(in);	    /* rb_jump_tag(status); */	    rb_notimplement();	}    }    x509st = GetX509StorePtr(store);    GetPKCS7(self, p7);    if(!(out = BIO_new(BIO_s_mem()))){	BIO_free(in);	sk_X509_pop_free(x509s, X509_free);	ossl_raise(ePKCS7Error, NULL);    }    ok = PKCS7_verify(p7, x509s, x509st, in, out, flg);    BIO_free(in);    if (ok < 0) ossl_raise(ePKCS7Error, NULL);    msg = ERR_reason_error_string(ERR_get_error());    ossl_pkcs7_set_err_string(self, msg ? rb_str_new2(msg) : Qnil);    ERR_clear_error();    data = ossl_membio2str(out);    ossl_pkcs7_set_data(self, data);    sk_X509_pop_free(x509s, X509_free);    return (ok == 1) ? Qtrue : Qfalse;}
开发者ID:Ismaibz,项目名称:maglev,代码行数:44,


示例14: ossl_pkcs7_to_pem

static VALUEossl_pkcs7_to_pem(VALUE self){    PKCS7 *pkcs7;    BIO *out;    VALUE str;    GetPKCS7(self, pkcs7);    if (!(out = BIO_new(BIO_s_mem()))) {	ossl_raise(ePKCS7Error, NULL);    }    if (!PEM_write_bio_PKCS7(out, pkcs7)) {	BIO_free(out);	ossl_raise(ePKCS7Error, NULL);    }    str = ossl_membio2str(out);    return str;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:19,


示例15: ossl_pkcs7_to_der

static VALUEossl_pkcs7_to_der(VALUE self){    PKCS7 *pkcs7;    VALUE str;    long len;    unsigned char *p;    GetPKCS7(self, pkcs7);    if((len = i2d_PKCS7(pkcs7, NULL)) <= 0)	ossl_raise(ePKCS7Error, NULL);    str = rb_str_new(0, len);    p = (unsigned char *)RSTRING_PTR(str);    if(i2d_PKCS7(pkcs7, &p) <= 0)	ossl_raise(ePKCS7Error, NULL);    ossl_str_adjust(str, p);    return str;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:19,


示例16: ossl_pkcs7_add_signer

static VALUEossl_pkcs7_add_signer(VALUE self, VALUE signer){    PKCS7 *pkcs7;    PKCS7_SIGNER_INFO *p7si;    p7si = DupPKCS7SignerPtr(signer); /* NEED TO DUP */    GetPKCS7(self, pkcs7);    if (!PKCS7_add_signer(pkcs7, p7si)) {	PKCS7_SIGNER_INFO_free(p7si);	ossl_raise(ePKCS7Error, "Could not add signer.");    }    if (PKCS7_type_is_signed(pkcs7)){	PKCS7_add_signed_attribute(p7si, NID_pkcs9_contentType,				   V_ASN1_OBJECT, OBJ_nid2obj(NID_pkcs7_data));    }    return self;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:19,


示例17: ossl_pkcs7_to_der

static VALUEossl_pkcs7_to_der(VALUE self){    PKCS7 *pkcs7;    long len;    unsigned char *p, *data;    GetPKCS7(self, pkcs7);    if((len = i2d_PKCS7(pkcs7, NULL)) <= 0)	ossl_raise(ePKCS7Error, NULL);        data = p = (unsigned char *)xmalloc(sizeof(char) * len);    if(i2d_PKCS7(pkcs7, &p) <= 0)	ossl_raise(ePKCS7Error, NULL);    VALUE str = rb_str_new((char*)data, len);    xfree(data);    return str;}
开发者ID:Ismaibz,项目名称:maglev,代码行数:19,


示例18: ossl_pkcs7_copy

static VALUEossl_pkcs7_copy(VALUE self, VALUE other){    PKCS7 *a, *b, *pkcs7;    rb_check_frozen(self);    if (self == other) return self;    GetPKCS7(self, a);    SafeGetPKCS7(other, b);    pkcs7 = PKCS7_dup(b);    if (!pkcs7) {	ossl_raise(ePKCS7Error, NULL);    }    DATA_PTR(self) = pkcs7;    PKCS7_free(a);    return self;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:20,


示例19: STACK_OF

static STACK_OF(X509_CRL) *pkcs7_get_crls(VALUE self){    PKCS7 *pkcs7;    STACK_OF(X509_CRL) *crls;    int i;    GetPKCS7(self, pkcs7);    i = OBJ_obj2nid(pkcs7->type);    switch(i){    case NID_pkcs7_signed:        crls = pkcs7->d.sign->crl;        break;    case NID_pkcs7_signedAndEnveloped:        crls = pkcs7->d.signed_and_enveloped->crl;        break;    default:        crls = NULL;    }    return crls;}
开发者ID:AsherBond,项目名称:MondocosmOS-Dependencies,代码行数:22,



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


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