Crypt-OpenSSL-PKCS12
view release on metacpan or search on metacpan
SV *pwd
PREINIT:
BIO *bio;
STACK_OF(PKCS7) *asafes = NULL;
STRLEN pwd_len = 0;
const char *pwd_str = "";
CODE:
if (SvOK(pwd)) {
pwd_str = SvPV(pwd, pwd_len);
if (pwd_len > (STRLEN)INT_MAX)
croak("password length exceeds INT_MAX");
}
CHECK_OPEN_SSL(bio = BIO_new(BIO_s_mem()));
if ((asafes = PKCS12_unpack_authsafes(pkcs12)) == NULL)
RETVAL = newSVpvn("",0);
dump_certs_keys_p12(aTHX_ bio, pkcs12, pwd_str, (int)pwd_len, CLCERTS|NOKEYS, NULL, NULL);
RETVAL = extractBioString(aTHX_ bio);
OUTPUT:
RETVAL
SV*
ca_certificate(pkcs12, pwd = &PL_sv_undef)
Crypt::OpenSSL::PKCS12 pkcs12
SV *pwd
PREINIT:
BIO *bio;
STACK_OF(PKCS7) *asafes = NULL;
STRLEN pwd_len = 0;
const char *pwd_str = "";
CODE:
if (SvOK(pwd)) {
pwd_str = SvPV(pwd, pwd_len);
if (pwd_len > (STRLEN)INT_MAX)
croak("password length exceeds INT_MAX");
}
CHECK_OPEN_SSL(bio = BIO_new(BIO_s_mem()));
if ((asafes = PKCS12_unpack_authsafes(pkcs12)) == NULL)
RETVAL = newSVpvn("",0);
dump_certs_keys_p12(aTHX_ bio, pkcs12, pwd_str, (int)pwd_len, CACERTS|NOKEYS, NULL, NULL);
RETVAL = extractBioString(aTHX_ bio);
OUTPUT:
RETVAL
SV*
private_key(pkcs12, pwd = &PL_sv_undef)
Crypt::OpenSSL::PKCS12 pkcs12
SV *pwd
PREINIT:
BIO *bio;
STRLEN pwd_len = 0;
const char *pwd_str = "";
CODE:
if (SvOK(pwd)) {
pwd_str = SvPV(pwd, pwd_len);
if (pwd_len > (STRLEN)INT_MAX)
croak("password length exceeds INT_MAX");
}
CHECK_OPEN_SSL(bio = BIO_new(BIO_s_mem()));
PKCS12_unpack_authsafes(pkcs12);
dump_certs_keys_p12(aTHX_ bio, pkcs12, pwd_str, (int)pwd_len, NOCERTS, NULL, NULL);
RETVAL = extractBioString(aTHX_ bio);
OUTPUT:
RETVAL
HV* info_as_hash(pkcs12, pwd = &PL_sv_undef)
Crypt::OpenSSL::PKCS12 pkcs12
SV *pwd
PREINIT:
BIO *bio;
STACK_OF(PKCS7) *asafes = NULL;
STRLEN pwd_len = 0;
const char *pwd_str = "";
CONST_ASN1_INTEGER *tmaciter;
#if OPENSSL_VERSION_NUMBER > 0x10100000L
SV *value;
CONST_X509_ALGOR *macalgid;
CONST_ASN1_OBJECT *macobj;
CONST_ASN1_OCTET_STRING *tmac;
CONST_ASN1_OCTET_STRING *tsalt;
#endif
CODE:
if (SvOK(pwd)) {
pwd_str = SvPV(pwd, pwd_len);
if (pwd_len > (STRLEN)INT_MAX)
croak("password length exceeds INT_MAX");
}
RETVAL = newHV();
CHECK_OPEN_SSL(bio = BIO_new(BIO_s_mem()));
if ((asafes = PKCS12_unpack_authsafes(pkcs12)) == NULL)
RETVAL = newHV();
HV * mac = newHV();
#if OPENSSL_VERSION_NUMBER > 0x10100000L
( run in 1.042 second using v1.01-cache-2.11-cpan-6aa56a78535 )