instance method
OpenSSL::PKCS12#set_mac
pkcs12.set_mac(pass, salt = nil, iter = nil, md_type = nil)
ext/openssl/ossl_pkcs12.c
View on GitHub ↗
static VALUE
pkcs12_set_mac(int argc, VALUE *argv, VALUE self)
{
PKCS12 *p12;
VALUE pass, salt, iter, md_name, md_holder = Qnil;
int iter_i = 0;
const EVP_MD *md_type = NULL;
rb_scan_args(argc, argv, "13", &pass, &salt, &iter, &md_name);
rb_check_frozen(self);
GetPKCS12(self, p12);
StringValue(pass);
if (!NIL_P(salt))
StringValue(salt);
if (!NIL_P(iter))
iter_i = NUM2INT(iter);
if (!NIL_P(md_name))
md_type = ossl_evp_md_fetch(md_name, &md_holder);
if (!PKCS12_set_mac(p12, RSTRING_PTR(pass), RSTRING_LENINT(pass),
!NIL_P(salt) ? (unsigned char *)RSTRING_PTR(salt) : NULL,
!NIL_P(salt) ? RSTRING_LENINT(salt) : 0,
iter_i, md_type))
ossl_raise(ePKCS12Error, "PKCS12_set_mac");
return Qnil;
}