package Crypt::Perl::PKCS8; #TODO: Rename this, and split up the public/private as appropriate. use strict; use warnings; use Crypt::Perl::ASN1 (); use constant ASN1 => <find('PrivateKeyInfo')->decode($pem_or_der); } sub parse_public { my ($pem_or_der) = @_; return _asn1()->find('SubjectPublicKeyInfo')->decode($pem_or_der); } sub _asn1 { return Crypt::Perl::ASN1->new()->prepare( Crypt::Perl::PKCS8::ASN1() ); } 1;