Alt-Crypt-OpenSSL-PKCS12-Broadbean
view release on metacpan or search on metacpan
Crypt::OpenSSL::PKCS12
new(class)
SV *class
CODE:
if ((RETVAL = PKCS12_new()) == NULL) {
croak("Couldn't create PKCS12_new() for class %" SVf "\n", SVfARG(class));
}
OUTPUT:
RETVAL
IV legacy_support(class)
SV *class;
CODE:
RETVAL = 1;
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
if (legacy)
RETVAL = 1;
else
RETVAL = 0;
#endif
OUTPUT:
RETVAL
Crypt::OpenSSL::PKCS12
new_from_string(class, string)
SV *class
SV *string
ALIAS:
new_from_file = 1
if (!bio) croak("Failed to create BIO");
/* this can come in any number of ways */
if ((RETVAL = d2i_PKCS12_bio(bio, 0)) == NULL) {
BIO_free_all(bio);
croak("%" SVf ": Couldn't create PKCS12 from d2i_PKCS12_BIO(): %s", SVfARG(class), ssl_error(aTHX));
}
BIO_free_all(bio);
OUTPUT:
RETVAL
# This is called at per-object destruction time.
void
DESTROY(pkcs12)
Crypt::OpenSSL::PKCS12 pkcs12;
CODE:
if (pkcs12) {
PKCS12_free(pkcs12);
CHECK_OPEN_SSL(bio = BIO_new(BIO_s_mem()));
if (!(i2d_PKCS12_bio(bio, pkcs12))) {
sv_bio_error(aTHX_ bio);
croak("i2d_PKCS12_bio: %s", ssl_error(aTHX));
}
RETVAL = extractBioString(aTHX_ bio);
OUTPUT:
RETVAL
SV*
mac_ok(pkcs12, pwd = "")
Crypt::OpenSSL::PKCS12 pkcs12
char *pwd
CODE:
if (!(PKCS12_verify_mac(pkcs12, pwd, strlen(pwd)))) {
croak("PKCS12_verify_mac: \n%s", ssl_error(aTHX));
}
RETVAL = (PKCS12_verify_mac(pkcs12, pwd, strlen(pwd))) ? &PL_sv_yes : &PL_sv_no;
OUTPUT:
RETVAL
SV*
changepass(pkcs12, oldpwd = "", newpwd = "")
Crypt::OpenSSL::PKCS12 pkcs12
char *oldpwd
char *newpwd
CODE:
if (!(PKCS12_newpass(pkcs12, oldpwd, newpwd))) {
warn("PKCS12_newpass: %s %s\n%s", oldpwd, newpwd, ssl_error(aTHX));
RETVAL = &PL_sv_no;
} else {
RETVAL = &PL_sv_yes;
}
OUTPUT:
RETVAL
SV*
create(pkcs12, cert_chain_pem = "", pk = "", pass = 0, file = 0, name = "PKCS12 Certificate")
char *cert_chain_pem
char *pk
char *pass
char *file
char *name
ERR_print_errors_fp(stderr);
croak("Error opening file %s\n", file);
}
i2d_PKCS12_fp(fp, p12);
PKCS12_free(p12);
fclose(fp);
RETVAL = &PL_sv_yes;
OUTPUT:
RETVAL
SV*
create_as_string(pkcs12, cert_chain_pem = "", pk = "", pass = 0, name = "PKCS12 Certificate")
char *cert_chain_pem
char *pk
char *pass
char *name
ERR_print_errors_fp(stderr);
croak("Error creating PKCS#12 structure\n");
}
CHECK_OPEN_SSL(bio = BIO_new(BIO_s_mem()));
i2d_PKCS12_bio(bio, p12);
RETVAL = extractBioString(aTHX_ bio);
PKCS12_free(p12);
OUTPUT:
RETVAL
SV*
certificate(pkcs12, pwd = "")
Crypt::OpenSSL::PKCS12 pkcs12
char *pwd
PREINIT:
BIO *bio;
STACK_OF(PKCS7) *asafes = NULL;
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, strlen(pwd), CLCERTS|NOKEYS, NULL, NULL);
RETVAL = extractBioString(aTHX_ bio);
OUTPUT:
RETVAL
SV*
ca_certificate(pkcs12, pwd = "")
Crypt::OpenSSL::PKCS12 pkcs12
char *pwd
PREINIT:
BIO *bio;
CODE:
CHECK_OPEN_SSL(bio = BIO_new(BIO_s_mem()));
PKCS12_unpack_authsafes(pkcs12);
dump_certs_keys_p12(aTHX_ bio, pkcs12, pwd, strlen(pwd), CACERTS|NOKEYS, NULL, NULL);
RETVAL = extractBioString(aTHX_ bio);
OUTPUT:
RETVAL
SV*
private_key(pkcs12, pwd = "")
Crypt::OpenSSL::PKCS12 pkcs12
char *pwd
PREINIT:
BIO *bio;
CODE:
CHECK_OPEN_SSL(bio = BIO_new(BIO_s_mem()));
PKCS12_unpack_authsafes(pkcs12);
dump_certs_keys_p12(aTHX_ bio, pkcs12, pwd, strlen(pwd), NOCERTS, NULL, NULL);
RETVAL = extractBioString(aTHX_ bio);
OUTPUT:
RETVAL
HV* info_as_hash(pkcs12, pwd = "")
Crypt::OpenSSL::PKCS12 pkcs12
char *pwd
PREINIT:
BIO *bio;
STACK_OF(PKCS7) *asafes = NULL;
SV * end = extractBioString(aTHX_ bio);
if (SvPOK(end)) {
if (SvCUR(end) != 0)
printf("BIO %s\n", SvPVbyte_nolen(end));
warn("bio from info_as_hash should be zero length - report issue");
}
sv_2mortal((SV*)RETVAL);
OUTPUT:
RETVAL
SV*
info(pkcs12, pwd = "")
Crypt::OpenSSL::PKCS12 pkcs12
char *pwd
PREINIT:
BIO *bio;
STACK_OF(PKCS7) *asafes = NULL;
ERR_print_errors(bio);
goto end;
}
BIO_printf(bio, "MAC verified OK\n");
end:
#endif
dump_certs_keys_p12(aTHX_ bio, pkcs12, pwd, strlen(pwd), INFO, NULL, NULL);
RETVAL = extractBioString(aTHX_ bio);
OUTPUT:
RETVAL
PUSH_MULTICALL_FLAGS|5.018000||Viu
PUSHn|5.006000|5.003007|
PUSHp|5.003007|5.003007|
PUSHs|5.003007|5.003007|
push_scope|5.003007|5.003007|u
PUSHSTACK|5.005000||Viu
PUSHSTACKi|5.005000||Viu
PUSHSTACK_INIT_HWM|5.027002||Viu
PUSHTARG|5.003007||Viu
PUSHu|5.004000|5.003007|p
PUTBACK|5.003007|5.003007|
putc|5.003007||Viu
put_charclass_bitmap_innards|5.021004||Viu
put_charclass_bitmap_innards_common|5.023008||Viu
put_charclass_bitmap_innards_invlist|5.023008||Viu
put_code_point|5.021004||Viu
putc_unlocked|5.003007||Viu
putenv|5.005000||Viu
put_range|5.019009||Viu
putw|5.003007||Viu
pv_display|5.006000|5.003007|p
{
dSP;
SV* sv = newSVpv(p, 0);
PUSHMARK(sp);
eval_sv(sv, G_SCALAR);
SvREFCNT_dec(sv);
SPAGAIN;
sv = POPs;
PUTBACK;
D_PPP_CROAK_IF_ERROR(croak_on_error);
return sv;
}
#endif
#endif
#if ! defined(vload_module) && defined(start_subparse)
t/pkcs12-info-openssl-81-test_cmp_cli.t view on Meta::CPAN
VQQDEwRsZWFmMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv0Qo9WC/
BKA70LtQJdwVGSXqr9dut3cQmiFzTb/SaWldjOT1sRNDFxSzdTJjU/8cIDEZvaTI
wRxP/dtVQLjc+4jzrUwz93NuZYlsEWUEUg4Lrnfs0Nz50yHk4rJhVxWjb8Ii/wRB
ViWHFExP7CwTkXiTclC1bCqTuWkjxF3thTfTsttRyY7qNkz2JpNx0guD8v4otQoY
jA5AEZvK4IXLwOwxol5xBTMvIrvvff2kkh+c7OC2QVbUTow/oppjqIKCx2maNHCt
LFTJELf3fwtRJLJsy4fKGP0/6kpZc8Sp88WK4B4FauF9IV1CmoAJUC1vJxhagHIK
fVtFjUWs8GPobQIDAQABo00wSzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQcHcT+8SVG
IRlN9YTuM9rlz7UZfzAfBgNVHSMEGDAWgBTpZ30QdMGarrhMPwk+HHAV3R8aTzAN
BgkqhkiG9w0BAQsFAAOCAQEAGjmSkF8is+v0/RLcnSRiCXENz+yNi4pFCAt6dOtT
6Gtpqa1tY5It9lVppfWb26JrygMIzOr/fB0r1Q7FtZ/7Ft3P6IXVdk3GDO0QsORD
2dRAejhYpc5c7joHxAw9oRfKrEqE+ihVPUTcfcIuBaalvuhkpQRmKP71ws5DVzOw
QhnMd0TtIrbKHaNQ4kNsmSY5fQolwB0LtNfTus7OEFdcZWhOXrWImKXN9jewPKdV
mSG34NfXOnA6qx0eQg06z+TkdrptH6j1Va2vS1/bL+h1GxjpTHlvTGaZYxaloIjw
y/EzY5jygRoABnR3eBm15CYZwwKL9izIq1H3OhymEi/Ycg==
-----END CERTIFICATE-----
Certificate bag
Bag Attributes: <No Attributes>
subject=C = AU, ST = Some-State, O = Internet Widgits Pty Ltd, CN = subinterCA
issuer=C = AU, ST = Some-State, O = Internet Widgits Pty Ltd, CN = interCA
-----BEGIN CERTIFICATE-----
MIIDhDCCAmygAwIBAgIJAJkv2OGshkmUMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNV
( run in 0.576 second using v1.01-cache-2.11-cpan-501359838a1 )