Crypt::OpenSSL::PKCS12 - Perl extension to OpenSSL's PKCS12 API.
use Crypt::OpenSSL::PKCS12;
my $pass = "your password";
my $pkcs12 = Crypt::OpenSSL::PKCS12->new_from_file('cert.p12');
print $pkcs12->certificate($pass);
print $pkcs12->private_key($pass);
if ($pkcs12->mac_ok($pass)) {
...
# Creating a file
$pkcs12->create('test-cert.pem', 'test-key.pem', $pass, 'out.p12', 'friendly name');
# Creating a string
my $pksc12_data = $pkcs12->create_as_string('test-cert.pem', 'test-key.pem', $pass, 'friendly name');
This documentation describes version 1.9
PKCS12 is a file format for storing cryptography objects as a single file or string. PKCS12 is commonly used to bundle a private key with its X.509 certificate or to bundle all the members of a chain of trust.
This distribution implements a subset of OpenSSL's PKCS12 API.
-
new( )
-
new_from_string(
$string) -
new_from_file(
$filename)Create a new Crypt::OpenSSL::PKCS12 instance.
-
certificate( [
$pass] )Get the Base64 representation of the certificate.
-
private_key( [
$pass] )Get the Base64 representation of the private key.
-
as_string( [
$pass] )Get the binary represenation as a string.
-
mac_ok( [
$pass] )Verifiy the certificates Message Authentication Code
-
changepass(
$old,$new)Change a certificate's password.
-
create(
$cert,$key,$pass,$output_file,$friendly_name)Create a new PKCS12 certificate. $cert & $key may either be strings or filenames.
$friendly_nameis optional. -
create_as_string(
$cert,$key,$pass,$friendly_name)Create a new PKCS12 certificate string. $cert & $key may either be strings or filenames.
$friendly_nameis optional.Returns a string holding the PKCS12 certicate.
None by default.
On request:
NOKEYSNOCERTSINFOCLCERTSCACERTS
No diagnostics are documented at this time
No special environment or configuration is required.
This distribution has the following dependencies
- An installation of OpenSSL, either version 1.X.X or version 3.X.X
- Perl 5.8
- OpenSSL(1) (HTTP version with OpenSSL.org)
- Crypt::OpenSSL::X509
- Crypt::OpenSSL::RSA
- Crypt::OpenSSL::Bignum
- OpenSSL.org
- Wikipedia: PKCS12
- RFC:7292: "PKCS #12: Personal Information Exchange Syntax v1.1"
Currently the library has been updated to support both OpenSSL 1.X.X and OpenSSL 3.X.X
Please see the GitHub repository for known issues.
- Dan Sully, daniel@cpan.org
Current maintainer
- jonasbn
In alphabetical order, contributors, bug reporters and all
- @mmuehlenhoff
- @sectokia
- @SmartCodeMaker
- Alexandr Ciornii, @chorny
- Christopher Hoskin, @mans0954
- Daisuke Murase, @typester
- Darko Prelec, @dprelec
- David Steinbrunner, @dsteinbrunner
- Giuseppe Di Terlizzi, @giterlizzi
- H.Merijn Brand, @tux
- Hakim, @osfameron
- J. Nick Koston, @bdraco
- James Rouzier, @jrouzierinverse
- jonasbn. @jonasbn
- Kelson, @kelson42
- Lance Wicks, @lancew
- Leonid Antonenkov
- Masayuki Matsuki, @songmu
- Mikołaj Zalewski
- Shoichi Kaji
- Slaven Rezić
- Timothy Legge, @timlegge
- Todd Rinaldo, @toddr
Copyright 2004-2024 by Dan Sully
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.