XML-Enc

 view release on metacpan or  search on metacpan

t/04-decrypt.t  view on Meta::CPAN

QWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNyc2EtMV81Ii8+CiAg
IDxLZXlJbmZvIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4KICAg
IDxLZXlOYW1lLz4KICAgPC9LZXlJbmZvPgogICA8Q2lwaGVyRGF0YT4KICAgIDxDaXBoZXJWYWx1
ZT5sRDBpOFlwc2xNMDN2S1MwODNpMWRtc1BWZGlUeWJuVzRzR21GU2tXc1pvMS9xZmI4M2JpT05w
SU9LV2lheXZ2CjBobCt0QU5GZjU5NkRHV3B2ek96UGFCaVViWFh5MXRRWEJmem1ycTJBREkvaHUy
MWhuajl6eTJDSjREaTdhMlAKclNOazZZUEtKOUxHakQ5SU9mSk5lNHdsWFhldUh0VjU1Tk1CcGs0
Ui9iaWtWZnlNWkxVTm5lODJjN3lQeFgrawplcmJnTXZ5YnphR20zSWRVbXhlUmVJcm9wVVd4anhH
L2NEcU5LbmVodi9sZTRGb0plbjNlakR5QkNHVDRlc1JBClJvRExPbTVHSE5YVGRySlRnLzdzbVI1
b2QrNEQ2Z3BwN2FqN1phTy91SS84ZGcxSE1kbUprSUtrQU1aNmNwNlUKRHBPd1JBNGtRTUt1a3py
RVlnSVBuRlZxeHVLdC9kMFdCSkFabmFGSHNkMXZPN0tqTGxhUjd6aGhBT0xEeVFJVwpGZmJDRE0v
SHg0SmY5YmczbzhQcjdWQ25aMmhRdy9qaWxPTzZhT3p4aVBDYTJhVjVjenNKNTIzQW1iV2M0eDJo
Cml1VmUxMzJnMGVUdWdjM2Q3WmRYRTVmYmgzZWVVcVl6QmhWdUtqRVA1UkRrdExYbGJHN1Fhc05z
SmkyMEdFbDAKazlHR2RZUXpQUHVSc2lDVFVTUEV1UzkzRXVCVGVmNU44aWpZbzdMaHFwOUxiTXBs
M01NQVVTdW5zR3J4NEsrRgo3TFpLbFpiRlpQSG9hRW5zS2s1TFg5eXZWdldzR2hHb21VT05iQmcw
ZU43djBIVytUSXdvN2tEc0dJVkhXUDFoClRDWHphNVNTSDM3WnBtTFprWEp2ODlqSlA1TDVYWi83
N2svU0txbkE0ZFE9PC9DaXBoZXJWYWx1ZT4KICAgPC9DaXBoZXJEYXRhPgogIDwvRW5jcnlwdGVk
S2V5PgogPC9LZXlJbmZvPgogPENpcGhlckRhdGE+CiAgPENpcGhlclZhbHVlPkIrUzZJRzFtMUJw
d3pLRC9icE1qdDRJa203cDlBTUpLNWhUbUxwYXMyeDIxVG90RDUwb0hvcVg3UTBSd25wS0sKSHVy
bm9reGlacSsxZmx2K21OS2xpR0tKczZZZ3c4aXpLYUUrSW42NjJZRT08L0NpcGhlclZhbHVlPgog
PC9DaXBoZXJEYXRhPgo8L0VuY3J5cHRlZERhdGE+Cg==
BASE64

my $xml = decode_base64($base64);

ok($xml, "Got encrypted XML");

my $decrypter = XML::Enc->new(
    {
        key                 => 't/sign-private.pem',
        no_xml_declaration  => 1
    }
);

like($decrypter->decrypt($xml), qr/foo/, "Successfully Decrypted");

$base64 = <<'SAMLRESP';
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIERlc3RpbmF0aW9uPSJodHRwczovL25ldHNhbWwyLXRlc3RhcHAubG9jYWwvY29uc3VtZXItcG9zdCIgSUQ9ImlkMzE1NTg3NjM4ODI2NDg4ODc2Njg3NzA5MSIgSW5SZXNwb25zZVRvPSJORVRTQU1MMl83ZTE5NTIwMTc2YzJlZDc4NW...
SAMLRESP

$xml = decode_base64($base64);

ok($xml, "Got encrypted XML");

$decrypter = XML::Enc->new(
    {
        key                 => 't/sign-private.pem',
        no_xml_declaration  => 1
    }
);

like($decrypter->decrypt($xml), qr/id31558763884313921701017518/, "Successfully Decrypted");


$xml = <<'XMLCONTENT';
<?xml version="1.0" encoding="utf-8"?>
<PayInfo>
  <Name>John Smith</Name>
  <CreditCard Limit="2,000" Currency="USD">
    <Number><EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content">
 <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
 <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
  <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
   <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
   <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
    <KeyName/>
   </KeyInfo>
   <CipherData>
    <CipherValue>NKwRJ4AT2nNz9507cB15n8tROCpupxIS5HA2MPyQ9syPq8w//7mTkZ3XUN2IYvbz
mBx4jng7hIFUhXY54K+XTobVBugvPUOIcV6Odt/JUnkLHUS4+X+ef2vUDQaXjDw/
TacvHPeiWj9jkbQmWfnyZAyKsZUmRWGrEYUgdNTBDsVhpgMfW8hVkSe6sIWe+tr+
4HaygBwiJpWDb07ieQr5zFkvR7Yp80BCQ7Ewjjvilqn7jZt7V+Kk5API8nFP9AYC
2O5YDSW8qFJOXi64yejWO0lCAxZ+PHv4SNoZqsZJwpM8thuoxJ1X8Go5U/BsMsas
lBOPnjES+ZKBErB8KeOCJZcyepf4tU2xpNT62OdeW7oVV0U6BtpO6Cwb68Xw4oO5
wMz4BFH439q6hJaoMtZRjVGvpaIgb6eBI2wgU/x1uqYK6aRGXhgDOIpxgCCmXguG
F94RnhuGh9K4d5n9+lQ5rlFWQhzZy+5PrK6TMu+PS7eKtFrdhAu3jamJLGtbLhO5
tV3DbY7nTjXfd3STKZ1ndYcRZ/rFrtsEypUxjFuu8G6jdWnXKTI3AkV/Ol0m1Dj7
4jZ4Uzv1vTyt7R12Cq8pzvSusK7TwNjEiK4/HZpwop8gTNac8ZSYd/mjWi7WDqG0
73zwhyGQMiGBx6T7mXJB/te5XX+vXJq8cNW5ZHXC0+w=</CipherValue>
   </CipherData>
  </EncryptedKey>
 </KeyInfo>
 <CipherData>
  <CipherValue>efzvgtcIMNdK2s/PpipUP7slwyiu7NMLxLhSz9ACYJ4=</CipherValue>
 </CipherData>
</EncryptedData></Number>
    <Issuer>CitiBank</Issuer>
    <Expiration>06/10</Expiration>
  </CreditCard>
</PayInfo>
XMLCONTENT

$decrypter = XML::Enc->new(
    {
        key                 => 't/sign-private.pem',
        no_xml_declaration  => 1
    }
);

like($decrypter->decrypt($xml), qr/1076 2478 0678 5589/, "Successfully Decrypted");

done_testing;



( run in 0.874 second using v1.01-cache-2.11-cpan-71847e10f99 )