Crypt-LibSCEP
view release on metacpan or search on metacpan
t/Crypt-LibSCEP.t view on Meta::CPAN
A1UEAwwCY2EwHhcNMTUwMzE1MTMwMjIyWhcNMTYwMzE0MTMwMjIyWjBJMQswCQYD
VQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEYMBYGA1UECgwPZW5jcnlwdGlv
biBjZXJ0MQswCQYDVQQDDAJjYTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCWdhTh
BrT7C1f6EtOKPl5nqBd/9YkTUwDt9qAUBNM6AH6tDFIy85Gk1k60ZwYBYyIZT7kN
2EqnK4zEBRyo2k4jAgMBAAGjGjAYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMA0G
CSqGSIb3DQEBBQUAA0EAbce5uBBXc7BPVIcQCqIqbkSEBQ735gmV9FB1XJ4tNl+/
qjhv1MBVgGB5CAoETs8mJGHwo2c+5JgDkfMJ6gsIEA==
-----END CERTIFICATE-----";
my $sig_cacert = "-----BEGIN CERTIFICATE-----
MIIB1zCCAYGgAwIBAgIJAIxnK+AvQtveMA0GCSqGSIb3DQEBBQUAMEcxCzAJBgNV
BAYTAkRFMQ0wCwYDVQQIDARhc2RmMQ0wCwYDVQQHDARhc2RmMQ0wCwYDVQQKDARh
c2RmMQswCQYDVQQDDAJjYTAeFw0xNTAzMTUxMjIxNThaFw0xODAxMDIxMjIxNTha
MEcxCzAJBgNVBAYTAkRFMQ0wCwYDVQQIDARhc2RmMQ0wCwYDVQQHDARhc2RmMQ0w
CwYDVQQKDARhc2RmMQswCQYDVQQDDAJjYTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
QQC2ZbZXN6Q+k4yECXUBrv3x/zF0F16G9Yx+b9qxdhkP/+BkA5gyRFNEWL+EovU2
00F/mSpYsFW+VlIGW0x0rBvJAgMBAAGjUDBOMB0GA1UdDgQWBBTGyK1AVoV5v/Ou
4FmWrxNg3Aqv5zAfBgNVHSMEGDAWgBTGyK1AVoV5v/Ou4FmWrxNg3Aqv5zAMBgNV
HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA0EAFZJdlgEgGTOzRdtPsRY0ezWVow26
1OUUf1Z6x0e9z/Nzkoo2kfI4iDafebvQ1yMqSWKbUjLGAi/YCq2m3p5tHA==
-----END CERTIFICATE-----
";
my $sig_cakey = "-----BEGIN RSA PRIVATE KEY-----
MIIBOwIBAAJBALZltlc3pD6TjIQJdQGu/fH/MXQXXob1jH5v2rF2GQ//4GQDmDJE
U0RYv4Si9TbTQX+ZKliwVb5WUgZbTHSsG8kCAwEAAQJAJ/wuN/qDsBAqiruEAgV5
uDZogfmpiE6GKSWePK8WGXJw4HKay/WcFRVhOmBKskPz0TWon+fykgCXUBS0f9jg
vQIhANocMJCuZm0k51AGUHzHH0+e3KNqdkYtfzFgMUzJexz7AiEA1hVMzCIo/F2s
33O/F2dw+yQC0w83d/dG06kjssoVBwsCIQCy/FEqWcP6Kz+bXyMr0mgyeaaMgDBB
FNL9HPg4EFt0gwIgH31ylnRP4w9EZnn4GdE1ZTuezrzmQ9czq96tSZdAEJECIQCQ
luNLdgk6/rH8iHtN54nKJhTNr4qZWI6b2xSpBAkerw==
-----END RSA PRIVATE KEY-----
";
my $enc_cert = "-----BEGIN CERTIFICATE-----
MIIBmjCCAUSgAwIBAgIBAzANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJERTEN
MAsGA1UECAwEYXNkZjENMAsGA1UEBwwEYXNkZjENMAsGA1UECgwEYXNkZjELMAkG
A1UEAwwCY2EwHhcNMTUwMzE1MTMwMzI4WhcNMTYwMzE0MTMwMzI4WjBIMQswCQYD
VQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTETMBEGA1UECgwKRW5jcnlwdGlv
bjEPMA0GA1UEAwwGY2xpZW50MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALhqBpcv
JC/0cdUGgFXzGIwwUxHUpK17LDtigQerl69FBGJJns8NZ0oKVT51/3fgLYlXDEZ9
kIbw7jcH2NLq30MCAwEAAaMaMBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJ
KoZIhvcNAQEFBQADQQAdBpZ1QuDcnbbJj3yPH85y5cOYL/9d5c1utDeQEIqOFah3
n+Hm9q37a9O3404+jkNZjOwQtANC72KR5QtRtkhq
-----END CERTIFICATE-----
";
my $enc_key = "-----BEGIN PRIVATE KEY-----
MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAuGoGly8kL/Rx1QaA
VfMYjDBTEdSkrXssO2KBB6uXr0UEYkmezw1nSgpVPnX/d+AtiVcMRn2QhvDuNwfY
0urfQwIDAQABAkAo1/q7s0otgNNRXg5AewXdzronQdRzQ8uJH4j6XOvMenl571Sp
Wp3y0owl+exEo+Q66QTn6orqbfOk7KYES1mRAiEA3UaGkQB5mkL9CVSK07G46+iu
1hDeOFPtzJwanbYcDpsCIQDVWqQXMgJqE55KTK8l8aSoPiH/e7QkNMK4TBoitDto
eQIger87uMY9rsBIY9udI2/sOBmcmy1CSJbuTFmwPhqel88CIQCXFishqe5/xAjS
QN+/lRGveuCElcuJ4DsMXAgeD1gKsQIhAJwkG1Q5CFsYbAsFsU0Dd7ZI6aiMDi8w
iX5k7rlRcZzQ
-----END PRIVATE KEY-----";
my $enc_cakey = "-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,DD73214CD86AA97E
JoHENnOl+cfDp24t9iJz0UsJMYdMG0nEhI9FNXlOJLKNMnEv3EP7RzvC/MvKSRmD
6HNQGCuzmgRqAzCTUn+8lx0b8W1gVEnb1/OKqhv6qVBYJEKELfSaG+U6+05GYYuP
wtMAES9ijdY1IvvYwm9liJn/DqZdcBKr+41f74jzRO2Q7RA6JR5PpSpw1xvHCQ3M
7hEkXPbhRFFcKH4PiCGr4o8XUcF7gKkeSD7D5OtsqntgT5h2CgPKu7EyckWa1wdG
oiwk8/ocL0I9vewPhOH0tssUZn1GP2bnXTxmpvt25lXLdZHF7zDqLJHd7cZQT9SN
bD6UzOs3aXgkcQeT2Qk8Fi7nFFYUitSg5ihieA777Rrd4IrLBCgU/BiUrh9/afm6
LK4Lg/GAWeK5Tch/2LEg+YMaXQs0+JTKu/NPmgZ7x+E=
-----END RSA PRIVATE KEY-----
";
my $issuedCert = "-----BEGIN CERTIFICATE-----
MIIB7TCCAZegAwIBAgIBBDANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJERTEN
MAsGA1UECAwEYXNkZjENMAsGA1UEBwwEYXNkZjENMAsGA1UECgwEYXNkZjELMAkG
A1UEAwwCY2EwHhcNMTUwMzE1MTQyMzI1WhcNMTYwMzE0MTQyMzI1WjBXMQswCQYD
VQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQg
V2lkZ2l0cyBQdHkgTHRkMRAwDgYDVQQDEwdmb28uYmFyMIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQCnCz5qi3kW8avPCPhmKOUwSRpCcqOi0RH3tGburtCoHl56
nhL3X1Xuv+3e6HWS74IOWbwuZXADdSWswFMefJuh6D4tRACzvgbOuXaxxopj9PYn
ieNunATNl1O1fy1QG3uJiy+QuQe3/xfIIwIVtvsx5ckMfRHk4g4lsOJwLofIvwID
AQABoxowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQUFAANB
AGZRYophSHisfLzjA0EV766X+e7hAK1J+G3IZHHn4WvxRGEGRZmEYMwbV3/gIRW8
bIEcl2LeuPgUGWhLIowjKF0=
-----END CERTIFICATE-----
";
my $sig_cakey_enc = "-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-CBC,4F58E19A09903724
UsnO5Kn0ZlvwdZRvZcQoP3cRLb0I3x28sxOSBlJZrR4y5x4uYmW5huvCUf2Bd6L6
u3ylfXoKVaCdKJ2tCzas0huQeG9mSA6m2D5Wm2y37iyjqtUbI52cMFQOM5qdOrEJ
2cLVHVjNvDxFuRSbIpTeLuABIEtEOkxkJAfe5Uns6iNcg65p95OokwCq3v4+NKGS
6AmkcznuL2l75ITHntYBCiDtoHWRXDm4QioM8hV/T+CxtdWttHz3G6TeQ/XdDicq
X08qHUZg7s7USpfnKfkLOdshlykSD5uldVDM8DEu+quiapbyfJDev7mpzItD0/Ru
+YUiFAfxW1V304+Ifwer4p++TDL+7Ka929j6r4TAEp7OY10tyjPCvUhaiiNH+RYt
4Afd1Z5gdUberBpJCmg6z020fwq1gn3AlXUOxlf+Z2k=
-----END RSA PRIVATE KEY-----
";
my $crl = "-----BEGIN X509 CRL-----
MIHeMIGJAgEBMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAkRFMQ0wCwYDVQQI
DARhc2RmMQ0wCwYDVQQHDARhc2RmMQ0wCwYDVQQKDARhc2RmMQswCQYDVQQDDAJj
YRcNMTUxMTEyMTcwMDA5WhcNMTUxMjEyMTcwMDA5WqAOMAwwCgYDVR0UBAMCAQEw
DQYJKoZIhvcNAQELBQADQQCZr+Bma6Al8otR2bMTtOXndEVSInsfiSaigzh+TEZq
5fgZ7fdUlkoXpCUJbvudyGSzUtEas9dFQB7M8RGDGiBP
-----END X509 CRL-----
";
my $serial = "1";
my $issuer = "/C=DE/ST=asdf/L=asdf/O=asdf/CN=ca";
my $failinfo = "badAlg";
use Test::More tests => 75;
BEGIN { use_ok('Crypt::LibSCEP') };
my $handle = Crypt::LibSCEP::create_handle({sigalg=>"sha256", encalg=>"aes256"});
my $conf = {handle => $handle};
ok($handle ne "", "handle creation");
my $ca_conf = {passin=>"pass", passwd=>"asdf", sigalg=>"sha256", encalg=>"aes256"};
my $ca_conf2 = {passin=>"pass", passwd=>"foobar", sigalg=>"sha256", encalg=>"aes256"};
#Testing PKCSReq
my $pkcsreq = Crypt::LibSCEP::pkcsreq($conf, $sig_key, $sig_cert, $enc_cacert, $req);
ok($pkcsreq ne "", "pkcsreq creation");
my $pkcsreq_parsed = Crypt::LibSCEP::parse($conf, $pkcsreq);
ok($pkcsreq_parsed ne "", "pkcsreq parsed");
ok(Crypt::LibSCEP::get_transaction_id($pkcsreq_parsed) eq "2F3C88114C283E9A6CD57BB8266CE313DB0BEE0DAF769D770C4E5FFB9C4C1016", "pkcsreq trans id");
ok(Crypt::LibSCEP::get_message_type($pkcsreq_parsed) eq "PKCSReq", "pkcsreq message type");
ok(Crypt::LibSCEP::get_signer_cert($pkcsreq_parsed) eq $sig_cert, "pkcsreq signerCert");
ok(Crypt::LibSCEP::get_senderNonce($pkcsreq_parsed) ne "", "pkcsreq senderNonce");
my $pkcsreq_unwrapped = Crypt::LibSCEP::unwrap($ca_conf, $pkcsreq, $sig_cacert, $enc_cacert, $enc_cakey);
ok($pkcsreq_unwrapped ne "", "pkcsreq unwrap");
ok(Crypt::LibSCEP::get_pkcs10($pkcsreq_unwrapped) eq $req, "pkcsreq get PKCS10");
#Testing GetCert
my $getcert = Crypt::LibSCEP::getcert($conf, $sig_key, $sig_cert, $enc_cacert, $sig_cacert, $serial);
ok($getcert ne "", "getcert creation");
my $getcert_parsed = Crypt::LibSCEP::parse($conf, $getcert);
ok($getcert_parsed ne "", "getcert parsed");
ok(Crypt::LibSCEP::get_transaction_id($getcert_parsed) eq "2BF79F781878B57DC31E8BE733A3425DC09D996BA2F75A3D3F23DBEAEAA6C328", "getcert trans id");
ok(Crypt::LibSCEP::get_message_type($getcert_parsed) eq "GetCert", "getcert message type");
ok(Crypt::LibSCEP::get_signer_cert($getcert_parsed) eq $sig_cert, "getcert signerCert");
ok(Crypt::LibSCEP::get_senderNonce($getcert_parsed) ne "", "getcert senderNonce");
my $getcert_unwrapped = Crypt::LibSCEP::unwrap($ca_conf, $getcert, $sig_cacert, $enc_cacert, $enc_cakey);
ok($getcert_unwrapped ne "", "getcert unwrap");
ok(Crypt::LibSCEP::get_getcert_serial($getcert_unwrapped) eq $serial, "getcert serial");
ok(Crypt::LibSCEP::get_issuer($getcert_unwrapped) eq $issuer, "getcert issuer");
( run in 2.196 seconds using v1.01-cache-2.11-cpan-e1769b4cff6 )