1use strict; 2use warnings; 3 4use Test::More; 5 6plan tests => 8; 7 8TODO: { 9 todo_skip 'See Issue #188', 8; 10 11use English; 12 13use OpenXPKI::Crypto::TokenManager; 14 15our $cache; 16our $cacert; 17eval `cat t/25_crypto/common.pl`; 18 19is($EVAL_ERROR, '', 'common.pl evaluated correctly'); 20 21SKIP: { 22 skip 'crypt init failed', 7 if $EVAL_ERROR; 23 24 25my $mgmt = OpenXPKI::Crypto::TokenManager->new; 26ok ($mgmt, 'Create OpenXPKI::Crypto::TokenManager instance'); 27 28my $token = $mgmt->get_token ({ 29 TYPE => 'certsign', 30 NAME => 'test-ca', 31 CERTIFICATE => { 32 DATA => $cacert, 33 IDENTIFIER => 'ignored', 34 } 35}); 36 37ok (defined $token, 'Parameter checks for get_token'); 38 39open my $CACERT1, '<', 't/25_crypto/test-ca/cacert.pem'; 40my $cacert1 = do { 41 local $INPUT_RECORD_SEPARATOR; 42 <$CACERT1>; 43}; 44close($CACERT1); 45ok($cacert1, 'Read in CA certificate 1'); 46 47open my $CERT, '<', 't/25_crypto/test-ca/cert.pem'; 48my $cert = do { 49 local $INPUT_RECORD_SEPARATOR; 50 <$CERT>; 51}; 52ok($cert, 'Read in end-entity certificate'); 53 54my $result = $token->command({ 55 COMMAND => 'is_issuer', 56 CERT => $cert, 57 'POTENTIAL_ISSUER' => $cacert1, 58}); 59 60ok($result, 'end-entity certificate is issued by CA 1'); 61 62$result = $token->command({ 63 COMMAND => 'is_issuer', 64 CERT => $cacert1, 65 'POTENTIAL_ISSUER' => $cert, 66}); 67 68ok(! $result, 'CA 1 is not issued by end-entity cert'); 69 70$result = $token->command({ 71 COMMAND => 'is_issuer', 72 CERT => $cacert1, 73 'POTENTIAL_ISSUER' => $cacert1, 74}); 75 76ok($result, 'CA 1 is self-signed'); 77 78} 79} 801; 81