11use strict;
22use warnings;
33use Test::More tests => 70;
4+ use Test::Lib;
5+ use Test::XML::Enc;
46use XML::Enc;
57use MIME::Base64 qw/ decode_base64/ ;
6- use File::Which;
78use File::Slurper qw/ read_text/ ;
89
910my $plaintext = <<'UNENCRYPTED' ;
@@ -41,6 +42,9 @@ my %sesskey = (
4142 ' aes256-gcm' => ' aes-256-GCM' ,
4243 );
4344
45+ my $xmlsec = get_xmlsec_features();
46+ my $lax_key_search = $xmlsec -> {lax_key_search } ? ' --lax-key-search' : ' ' ;
47+
4448foreach my $km (@key_methods ) {
4549 foreach my $dm (@data_methods ) {
4650
@@ -103,13 +107,9 @@ XML Security Library example: Original XML
103107CONTENT
104108
105109SKIP: {
106- skip " xmlsec1 not installed" , 5 unless which( ' xmlsec1 ' ) ;
110+ skip " xmlsec1 not installed" , 5 unless $xmlsec -> { installed } ;
107111 skip " xmlsec1 no support for MGF element" , 5 if $km eq ' rsa-oaep' ;
108- my $version ;
109- if (` xmlsec1 version` =~ m / (\d +\.\d +\.\d +)/ ) {
110- $version = $1 ;
111- };
112- skip " xmlsec version 1.2.27 minimum for GCM" , 5 if $version lt ' 1.2.27' ;
112+ skip " xmlsec version 1.2.27 minimum for GCM" , 5 if ! $xmlsec -> {aes_gcm };
113113
114114 ok( open XML, ' >' , ' plaintext.xml' );
115115 print XML $plaintext ;
@@ -120,7 +120,7 @@ SKIP: {
120120 close ELEMENT;
121121
122122 # Encrypt using xmlsec
123- my $encrypt_response = ` xmlsec1 encrypt --pubkey-cert-pem t/sign-certonly.pem --session-key $sesskey {$dm } --xml-data plaintext.xml --output encrypted-element.xml element_tmpl.xml 2>&1` ;
123+ my $encrypt_response = ` xmlsec1 encrypt $lax_key_search --pubkey-cert-pem t/sign-certonly.pem --session-key $sesskey {$dm } --xml-data plaintext.xml --output encrypted-element.xml element_tmpl.xml 2>&1` ;
124124
125125 my $encrypted = read_text(' encrypted-element.xml' );
126126
@@ -143,7 +143,7 @@ SKIP: {
143143 print CONTENT $content_tmpl ;
144144 close CONTENT;
145145
146- $encrypt_response = ` xmlsec1 encrypt --pubkey-cert-pem t/sign-certonly.pem --session-key $sesskey {$dm } --xml-data plaintext.xml --output encrypted-content.xml --node-xpath '/PayInfo/CreditCard/Number' content-template.xml 2>&1` ;
146+ $encrypt_response = ` xmlsec1 encrypt $lax_key_search --pubkey-cert-pem t/sign-certonly.pem --session-key $sesskey {$dm } --xml-data plaintext.xml --output encrypted-content.xml --node-xpath '/PayInfo/CreditCard/Number' content-template.xml 2>&1` ;
147147
148148 $encrypted = read_text(' encrypted-content.xml' );
149149
0 commit comments