Sha256: 62ab2db5f37bef3c8614a621165652ba6f2aedcc12f099d61e5c041ddc3647a2

Contents?: true

Size: 1.94 KB

Versions: 1

Compression:

Stored size: 1.94 KB

Contents

o:$YARD::CodeObjects::MethodObject:
@name:encrypt:@docstringIC:YARD::Docstring"
:@objectu:YARD::StubProxyOSSL::PKCS7.encrypt:
@summary0:
@tags[o:YARD::Tags::OverloadTag
;
u;OSSL::PKCS7.encrypt;;;IC;	"
;
u;OSSL::PKCS7.encrypt;0;
[:	@all":@ref_tags[:@tag_name"
overload:@parameters[[:
certs0[:	data0[:[, cipher [, flags]]0:@types0:@signature"/encrypt(certs, data, [, cipher [, flags]]):
@text0;":
@overload encrypt(certs, data, [, cipher [, flags]]);[:@docstring_extra0:@visibility:public:@files[["ext/openssl/ossl_pkcs7.c0;
[;[:
@path"OSSL::PKCS7.encrypt:@source_type:c:@source"/*
 * call-seq:
 *    PKCS7.encrypt(certs, data, [, cipher [, flags]]) => pkcs7
 */
static VALUE
ossl_pkcs7_s_encrypt(int argc, VALUE *argv, VALUE klass)
{
    VALUE certs, data, cipher, flags;
    STACK_OF(X509) *x509s;
    BIO *in;
    const EVP_CIPHER *ciph;
    int flg, status = 0;
    VALUE ret;
    PKCS7 *p7;

    rb_scan_args(argc, argv, "22", &certs, &data, &cipher, &flags);
    if(NIL_P(cipher)){
#if !defined(OPENSSL_NO_RC2)
    ciph = EVP_rc2_40_cbc();
#elif !defined(OPENSSL_NO_DES)
    ciph = EVP_des_ede3_cbc();
#elif !defined(OPENSSL_NO_RC2)
    ciph = EVP_rc2_40_cbc();
#elif !defined(OPENSSL_NO_AES)
    ciph = EVP_EVP_aes_128_cbc();
#else
    ossl_raise(ePKCS7Error, "Must specify cipher");
#endif

    }
    else ciph = GetCipherPtr(cipher); /* NO NEED TO DUP */
    flg = NIL_P(flags) ? 0 : NUM2INT(flags);
    in = ossl_obj2bio(data);
    x509s = ossl_protect_x509_ary2sk(certs, &status);
    if(status){
    BIO_free(in);
    rb_jump_tag(status);
    }
    if(!(p7 = PKCS7_encrypt(x509s, in, (EVP_CIPHER*)ciph, flg))){
    BIO_free(in);
    sk_X509_pop_free(x509s, X509_free);
    ossl_raise(ePKCS7Error, NULL);
    }
    BIO_free(in);
    WrapPKCS7(cPKCS7, ret, p7);
    ossl_pkcs7_set_data(ret, data);
    sk_X509_pop_free(x509s, X509_free);

    return ret;
}:@namespaceu;OSSL::PKCS7:@scope:
class:@current_file_has_commentsF

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pry-0.6.9pre1-i386-mingw32 lib/pry/stdlib_docs18/objects/OSSL/PKCS7/encrypt_c.dat