Crypt-OpenSSL-CA
view release on metacpan or search on metacpan
lib/Crypt/OpenSSL/CA.pm view on Meta::CPAN
=head1 SYNOPSIS
=for My::Tests::Below "synopsis" begin
use Crypt::OpenSSL::CA;
my $dn = Crypt::OpenSSL::CA::X509_NAME->new
(C => "fr", CN => "test");
my $privkey = Crypt::OpenSSL::CA::PrivateKey
->parse($pem_private_key, -password => "secret");
my $pubkey = $privkey->get_public_key;
my $x509 = Crypt::OpenSSL::CA::X509->new($pubkey);
$x509->set_serial("0xdeadbeef");
$x509->set_subject_DN($dn);
$x509->set_issuer_DN($dn);
$x509->set_extension("basicConstraints", "CA:TRUE",
-critical => 1);
$x509->set_extension("subjectKeyIdentifier",
$pubkey->get_openssl_keyid);
lib/Crypt/OpenSSL/CA.pm view on Meta::CPAN
int pwlength;
const char *password = (const char *) cb_data;
if (!password) { return -1; }
pwlength = strlen(password);
if (pwlength > bufsiz) { pwlength = bufsiz; }
memcpy(buf, password, pwlength);
return pwlength;
}
/* Ditto, but using the ui_method API. Callback invoked by
ENGINE_load_private_key when parsing an engine-based
private key */
/* UNIMPLEMENTED */
static
SV* _parse(char *class, const char* pemkey, SV* svpass,
SV* engine, SV* parse_using_engine_p) {
/* UNIMPLEMENTED: engine and parse_using_engine don't work */
BIO* keybio = NULL;
EVP_PKEY* pkey = NULL;
ENGINE* e;
lib/Crypt/OpenSSL/CA.pm view on Meta::CPAN
if (! (engine &&
(e = perl_unwrap("Crypt::OpenSSL::CA::ENGINE",
ENGINE*, engine)))) {
croak("no engine specified");
}
/* UNIMPLEMENTED: must parse from memory not file; must coerce
that wonky ui_method stuff into * passing C<pass> to the
engine */
/* pkey = (EVP_PKEY *)ENGINE_load_private_key
(e, file, ui_method, (void *) pass); */
} else {
keybio = BIO_new_mem_buf((void *) pemkey, -1);
if (keybio == NULL) {
croak("BIO_new failed");
}
pkey=PEM_read_bio_PrivateKey(keybio, NULL,
gimme_password, (void *) pass);
}
if (keybio != NULL) BIO_free(keybio);
lib/Crypt/OpenSSL/CA.pm view on Meta::CPAN
=head2 Synopsis test
We only check that it runs. Thorough black-box testing of
I<Crypt::OpenSSL::CA> happens in C<t/> instead.
=cut
subtest "synopsis" => sub {
my $synopsis = My::Tests::Below->pod_code_snippet("synopsis");
$synopsis = <<'PREAMBLE' . $synopsis;
my $pem_private_key = $test_keys_plaintext{rsa1024};
PREAMBLE
eval $synopsis; die $@ if $@;
pass;
};
=head2 Obsolete stuff
Yet still under test.
=cut
( run in 0.553 second using v1.01-cache-2.11-cpan-a5abf4f5562 )