Skip to content

Commit dd9776e

Browse files
authored
Merge pull request #50 from timlegge/issue-38
Fixes for Issue 38
2 parents 26c53c1 + 54cf599 commit dd9776e

30 files changed

+242
-13
lines changed

lib/Net/SAML2.pm

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package Net::SAML2;
21
use strict;
32
use warnings;
3+
package Net::SAML2;
44

55
require 5.008_001;
66

lib/Net/SAML2/Binding/POST.pm

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
package Net::SAML2::Binding::POST;
2-
31
use strict;
42
use warnings;
3+
package Net::SAML2::Binding::POST;
54

65
use Moose;
76

lib/Net/SAML2/Binding/Redirect.pm

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
package Net::SAML2::Binding::Redirect;
2-
31
use strict;
42
use warnings;
3+
package Net::SAML2::Binding::Redirect;
54

65
use Moose;
76
use MooseX::Types::URI qw/ Uri /;

lib/Net/SAML2/Binding/SOAP.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::Binding::SOAP;
24
use Moose;
35
use MooseX::Types::URI qw/ Uri /;

lib/Net/SAML2/IdP.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::IdP;
24
use Moose;
35
use MooseX::Types::URI qw/ Uri /;

lib/Net/SAML2/Protocol/ArtifactResolve.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::Protocol::ArtifactResolve;
24
use Moose;
35
use MooseX::Types::URI qw/ Uri /;

lib/Net/SAML2/Protocol/Assertion.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::Protocol::Assertion;
24
use Moose;
35
use MooseX::Types::DateTime qw/ DateTime /;

lib/Net/SAML2/Protocol/AuthnRequest.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::Protocol::AuthnRequest;
24

35
use Moose;

lib/Net/SAML2/Protocol/LogoutRequest.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::Protocol::LogoutRequest;
24
use Moose;
35
use MooseX::Types::Common::String qw/ NonEmptySimpleStr /;

lib/Net/SAML2/Protocol/LogoutResponse.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::Protocol::LogoutResponse;
24
use Moose;
35
use MooseX::Types::URI qw/ Uri /;

lib/Net/SAML2/Role/ProtocolMessage.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::Role::ProtocolMessage;
24

35
use Moose::Role;

lib/Net/SAML2/SP.pm

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
package Net::SAML2::SP;
24
use Moose;
35
use MooseX::Types::URI qw/ Uri /;

lib/Net/SAML2/Util.pm

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
package Net::SAML2::Util;
2-
31
use strict;
42
use warnings;
3+
package Net::SAML2::Util;
54

65
our $VERSION = '0.40';
76

lib/Net/SAML2/XML/Sig.pm

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
package Net::SAML2::XML::Sig;
2-
31
use strict;
42
use warnings;
3+
package Net::SAML2::XML::Sig;
54

65
# ABSTRACT: Net::SAML2::XML::Sig - A toolkit to help sign and verify XML Digital Signatures
76

@@ -78,6 +77,7 @@ use XML::LibXML;
7877
use Net::SAML2::XML::Util qw/ no_comments /;
7978
use MIME::Base64;
8079
use Carp;
80+
use Encode;
8181

8282
=head1 USAGE
8383
@@ -344,7 +344,7 @@ sub sign {
344344
}
345345

346346
# Calculate the digest of the XML being signed
347-
my $bin_digest = $self->{digest_method}->( $xml_canon );
347+
my $bin_digest = $self->{digest_method}->( Encode::encode_utf8( $xml_canon ) );
348348
my $digest = encode_base64( $bin_digest, '' );
349349
print (" Digest: $digest\n") if $DEBUG;
350350

@@ -614,8 +614,10 @@ sub verify {
614614
# signatures to be validated if they exist
615615
$signed_xml->addChild( $signature_node );
616616

617+
print ( " Canonical XML: " . $canonical ."\n") if $DEBUG;
618+
617619
# Obtain the DigestValue of the Canonical XML
618-
my $digest = $self->{digest_method}->($canonical);
620+
my $digest = $self->{digest_method}->( Encode::encode_utf8( $canonical ) );
619621

620622
print ( " Reference Digest: " . _trim($refdigest) ."\n") if $DEBUG;
621623

lib/Net/SAML2/XML/Util.pm

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
package Net::SAML2::XML::Util;
2-
31
use strict;
42
use warnings;
3+
package Net::SAML2::XML::Util;
54

65
use XML::LibXML;
76

t/00-basic.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::More;
24

35
use_ok('Net::SAML2');

t/01-create-idp.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35
use Net::SAML2::IdP;

t/02-create-sp.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/03-assertions.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/04-response.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/05-soap-binding.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/06-redirect-binding.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/07-logout-request.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/08-logout-response.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/09-authn-request.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/10-artifact-resolve.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35

t/11-more-metadata.t

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use strict;
2+
use warnings;
13
use Test::Lib;
24
use Test::Net::SAML2;
35
use Net::SAML2::IdP;

t/13-verify-issues.t

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# -*- perl -*-
2+
3+
use strict;
4+
use warnings;
5+
6+
use Test::More;
7+
use Test::Exception;
8+
use MIME::Base64;
9+
10+
BEGIN {
11+
use_ok( 'Net::SAML2::XML::Sig' );
12+
}
13+
14+
my %issues = (
15+
"Issue 49 - Wide Characters" => "49",
16+
);
17+
18+
for my $issue (keys %issues) {
19+
my $filename = "t/issues/issue-$issues{$issue}.xml";
20+
open my $file, $filename or die "$filename not found!";
21+
my $xml;
22+
{
23+
local undef $/;
24+
$xml = <$file>;
25+
}
26+
my $sig = Net::SAML2::XML::Sig->new({ x509 => 1 });
27+
my $ret = $sig->verify($xml);
28+
ok($ret, "Successfully Verified " . $issue);
29+
ok($sig->signer_cert);
30+
}
31+
32+
done_testing;

t/issues/issue-49.xml

+156
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" ID="_dc503975-dcc8-4b3a-ae2e-0c6642f9e1e8" Version="2.0" IssueInstant="2021-11-25T14:17:26.184Z" Destination="http://localhost:3000/consumer-post" InResponseTo="NETSAML2_6c11b211b1857bd1f3833ad50392fe1c">
3+
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://sts.windows.net/someguid</Issuer>
4+
<samlp:Status>
5+
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
6+
</samlp:Status>
7+
<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" ID="_some_guid" IssueInstant="2021-11-25T14:17:26.168Z" Version="2.0">
8+
<Issuer>https://sts.windows.net/some_guid/</Issuer>
9+
<Subject>
10+
<NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">myuser@netsaml2</NameID>
11+
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
12+
<SubjectConfirmationData InResponseTo="NETSAML2_6c11b211b1857bd1f3833ad50392fe1c" NotOnOrAfter="2021-11-25T15:17:26.059Z" Recipient="http://localhost:3000/consumer-post"/>
13+
</SubjectConfirmation>
14+
</Subject>
15+
<Conditions NotBefore="2021-11-25T14:12:26.059Z" NotOnOrAfter="2021-11-25T15:17:26.059Z">
16+
<AudienceRestriction>
17+
<Audience>http://localhost:3000</Audience>
18+
</AudienceRestriction>
19+
</Conditions>
20+
<AttributeStatement>
21+
<Attribute Name="http://schemas.microsoft.com/identity/claims/tenantid">
22+
<AttributeValue>some_guid</AttributeValue>
23+
</Attribute>
24+
<Attribute Name="http://schemas.microsoft.com/identity/claims/objectidentifier">
25+
<AttributeValue>some_guid</AttributeValue>
26+
</Attribute>
27+
<Attribute Name="http://schemas.microsoft.com/identity/claims/displayname">
28+
<AttributeValue>パスワードをお忘れの方</AttributeValue>
29+
</Attribute>
30+
<Attribute Name="http://schemas.microsoft.com/identity/claims/identityprovider">
31+
<AttributeValue>https://sts.windows.net/some_guid/</AttributeValue>
32+
</Attribute>
33+
<Attribute Name="http://schemas.microsoft.com/claims/authnmethodsreferences">
34+
<AttributeValue>http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password</AttributeValue>
35+
</Attribute>
36+
<Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname">
37+
<AttributeValue>Net</AttributeValue>
38+
</Attribute>
39+
<Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname">
40+
<AttributeValue>SAML2</AttributeValue>
41+
</Attribute>
42+
<Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
43+
<AttributeValue>myuser@netsaml2</AttributeValue>
44+
</Attribute>
45+
</AttributeStatement>
46+
<AuthnStatement AuthnInstant="2021-11-25T08:29:25.523Z" SessionIndex="_someguid">
47+
<AuthnContext>
48+
<AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef>
49+
</AuthnContext>
50+
</AuthnStatement>
51+
<dsig:Signature>
52+
<dsig:SignedInfo xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
53+
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
54+
<dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
55+
<dsig:Reference URI="#_some_guid">
56+
<dsig:Transforms>
57+
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
58+
<dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
59+
</dsig:Transforms>
60+
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
61+
<dsig:DigestValue>E400yOK9ce0mM6X862B0BCImA6E=</dsig:DigestValue>
62+
</dsig:Reference>
63+
</dsig:SignedInfo>
64+
<dsig:SignatureValue>K/NGRTKfRn8aOUKlRcJL5mzsL2kqRLsuOihCQuqZiS/6OxU2pVFllP31y9AF+DO7NpNC/kutCsFD
65+
GjdrT7LQqNK4lcrJYA3gYdxjmhU8BqEztb+KVQ5PAQY/LvC5v8WQBYBJXo5gpHwnRBgW2C/KCYcg
66+
0dT27e4fkuxfLzrsLjNYAl7zvPUwb59iOa/B1TnHk54HbfBmIlfZLdRqdBkkopKD97zhhBswkFwQ
67+
8AjmNvHneUpSMLAE70SMcBT3P9ryI3aIIGCVqmU+72Jp8Tdx7Aa65ZaPgGWtlR69PEL0HqKfkZfk
68+
/4toAb6fx0TjxfdzWqmQJgm9hZsph7rh5SR0uw==
69+
</dsig:SignatureValue>
70+
<dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>
71+
MIIFuDCCA6CgAwIBAgICEAMwDQYJKoZIhvcNAQELBQAwezELMAkGA1UEBhMCQ0Ex
72+
FjAUBgNVBAgMDU5ldyBCcnVuc3dpY2sxHTAbBgNVBAoMFENyeXB0LU9wZW5TU0wt
73+
VmVyaWZ5MTUwMwYDVQQDDCxDcnlwdC1PcGVuU1NMLVZlcmlmeSBTSEEtMjU2IElu
74+
dGVybWVkaWF0ZSBDQTAeFw0yMTA3MDMyMTAyMjRaFw0zMTA3MDEyMTAyMjRaMGcx
75+
CzAJBgNVBAYTAkNBMRYwFAYDVQQIDA1OZXcgQnJ1bnN3aWNrMRAwDgYDVQQHDAdN
76+
b25jdG9uMRAwDgYDVQQKDAdYTUwtU2lnMRwwGgYDVQQDDBN4bWwtc2lnLmV4YW1w
77+
bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArkqxhCTOB2Xx
78+
FxCNWJt0bLWRQva6qOAPKiqlLfgJjG+YY2JaPtpO7WNV5oVqv9F21V/wgOkcQTZZ
79+
QQQl/L/eXlnFpJeSpF31dupLnzrBU29qWjedNCkj+y01sprJG+c++2d2jV8Qccp5
80+
5SklALtXYZ3K5OfILy4dFEqUyW0/Bk7Y/PdrAacAazumdNW2nw/ajbiXbUfm55Qe
81+
bQd/61emGettQBT9EUPOxMQrrtxHHxwyvrtsa9KyRPCamYEamOA0Al2Eya5dPWzE
82+
bndbVpRx1jz8Ec6ANk8wJHTkggJOUXWem7HL4x8v9hEQeaHEy5CwxKzodDpV2bA/
83+
Adr+NCYhsQIDAQABo4IBWDCCAVQwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMC
84+
BkAwMwYJYIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIFNlcnZlciBDZXJ0
85+
aWZpY2F0ZTAdBgNVHQ4EFgQUDYY0sUvDD+ttN7MKzQzVgg25D94wgboGA1UdIwSB
86+
sjCBr4AUzVMiKnV2P0l/W5nowtx2oIRM0S2hgZKkgY8wgYwxCzAJBgNVBAYTAkNB
87+
MRYwFAYDVQQIDA1OZXcgQnJ1bnN3aWNrMRAwDgYDVQQHDAdNb25jdG9uMR0wGwYD
88+
VQQKDBRDcnlwdC1PcGVuU1NMLVZlcmlmeTE0MDIGA1UEAwwrQ3J5cHQtT3BlblNT
89+
TC1WZXJpZnkgU0hBLTI1NiBSb290IEF1dGhvcml0eYICEAAwDgYDVR0PAQH/BAQD
90+
AgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4ICAQAlDY7m
91+
1wwRB/X8NSeQ/Hvxg9dG4OofLFaC4e7dlC5kOT/ZIHQ6NIdzkQ2yOY1piKKYEYuO
92+
G/adtWAt8zRoejFob8W5aCA36uNoQLvdaMwXYNsJkzDNEmCB6vf3A28bVI+mlnt1
93+
+h3f0bkwxwHP2qYL8RneCL65GG+SWXHIipS/ZA5225mmT1oLo9xKeGK6vBgsOUum
94+
vxDgzmYyeGZYKpACWbOI7lR3C6PMR0oLKManLdb+ymngIk0bKB+Y2gr5cq/zURv8
95+
casiikjZT3MycPRV1AfQ3MYuXg6z4izkcG1U98E9Hr5p1gFsITmaY0aeK01a6xhx
96+
XkWKFTbraDn5ouTVMutW8xaVPU60zpYOcynxtRdgnYdmRR+c9dcD2xQmjtohuLxq
97+
RASCBC9iO7qTYkQvNW+yb63xbPDG05nokAfXpbp5hYVU8FYZHi8qOPtiaWiN9wbt
98+
ijsxDKZEcfiSGH5AEnkoaRCEqvbSNdtlbfYeDEnonsOZi9c+Kdl6A4PvOzTexwmi
99+
KPVgT8evWpQbubENw66vUOTqgkI+Bhbn87e1VELNUy+Uwz2OOcLEVvNkx0owswrH
100+
ujwb1+y1SYnlalLUt7PzEW85RNqVewGsHE8SD/1s70eYNYp7YJwLGPKJfyr3LvSl
101+
0qRfrYNhlewPc1MSVx7IFCZ4Qg+GFhg8TnEELQ==
102+
</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo>
103+
</dsig:Signature></Assertion>
104+
<dsig:Signature>
105+
<dsig:SignedInfo xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
106+
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
107+
<dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
108+
<dsig:Reference URI="#_dc503975-dcc8-4b3a-ae2e-0c6642f9e1e8">
109+
<dsig:Transforms>
110+
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
111+
<dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
112+
</dsig:Transforms>
113+
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
114+
<dsig:DigestValue>hkVXxlRVP4FeVnxBFgE0EX9pnsE=</dsig:DigestValue>
115+
</dsig:Reference>
116+
</dsig:SignedInfo>
117+
<dsig:SignatureValue>f1Q6uq4fvvcgLVt0rIdrqpAsRYEFcksLY0Mbo/fVlZVgB9ucXTviceXhkhQgMWmg188Zy4NHbClc
118+
Qryr/Dj0U4fzR/VYDvDy1jsczCMm1uPa2D2BeikmLEGugBE/qiG9ftH/K3gnYgznVBt26gEqUeYr
119+
m4+c8dlpxsaXnSw3EUY8aZTU+tl1JvjhAnI53rHII1WoUSBZwt7RpY9uXQed0aGA0OJreLzoQa2k
120+
Rs6z74ois2MKMicKCqW5/eokwfEyccqXW8uFYQ+EkuqZVNxOL0tmu4MrpSQVZ2NC/osBtCWMK7oc
121+
nlqaMqytPkTO4rcweMGGmybtqiwiL3y3GLYbWg==
122+
</dsig:SignatureValue>
123+
<dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>
124+
MIIFuDCCA6CgAwIBAgICEAMwDQYJKoZIhvcNAQELBQAwezELMAkGA1UEBhMCQ0Ex
125+
FjAUBgNVBAgMDU5ldyBCcnVuc3dpY2sxHTAbBgNVBAoMFENyeXB0LU9wZW5TU0wt
126+
VmVyaWZ5MTUwMwYDVQQDDCxDcnlwdC1PcGVuU1NMLVZlcmlmeSBTSEEtMjU2IElu
127+
dGVybWVkaWF0ZSBDQTAeFw0yMTA3MDMyMTAyMjRaFw0zMTA3MDEyMTAyMjRaMGcx
128+
CzAJBgNVBAYTAkNBMRYwFAYDVQQIDA1OZXcgQnJ1bnN3aWNrMRAwDgYDVQQHDAdN
129+
b25jdG9uMRAwDgYDVQQKDAdYTUwtU2lnMRwwGgYDVQQDDBN4bWwtc2lnLmV4YW1w
130+
bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArkqxhCTOB2Xx
131+
FxCNWJt0bLWRQva6qOAPKiqlLfgJjG+YY2JaPtpO7WNV5oVqv9F21V/wgOkcQTZZ
132+
QQQl/L/eXlnFpJeSpF31dupLnzrBU29qWjedNCkj+y01sprJG+c++2d2jV8Qccp5
133+
5SklALtXYZ3K5OfILy4dFEqUyW0/Bk7Y/PdrAacAazumdNW2nw/ajbiXbUfm55Qe
134+
bQd/61emGettQBT9EUPOxMQrrtxHHxwyvrtsa9KyRPCamYEamOA0Al2Eya5dPWzE
135+
bndbVpRx1jz8Ec6ANk8wJHTkggJOUXWem7HL4x8v9hEQeaHEy5CwxKzodDpV2bA/
136+
Adr+NCYhsQIDAQABo4IBWDCCAVQwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMC
137+
BkAwMwYJYIZIAYb4QgENBCYWJE9wZW5TU0wgR2VuZXJhdGVkIFNlcnZlciBDZXJ0
138+
aWZpY2F0ZTAdBgNVHQ4EFgQUDYY0sUvDD+ttN7MKzQzVgg25D94wgboGA1UdIwSB
139+
sjCBr4AUzVMiKnV2P0l/W5nowtx2oIRM0S2hgZKkgY8wgYwxCzAJBgNVBAYTAkNB
140+
MRYwFAYDVQQIDA1OZXcgQnJ1bnN3aWNrMRAwDgYDVQQHDAdNb25jdG9uMR0wGwYD
141+
VQQKDBRDcnlwdC1PcGVuU1NMLVZlcmlmeTE0MDIGA1UEAwwrQ3J5cHQtT3BlblNT
142+
TC1WZXJpZnkgU0hBLTI1NiBSb290IEF1dGhvcml0eYICEAAwDgYDVR0PAQH/BAQD
143+
AgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4ICAQAlDY7m
144+
1wwRB/X8NSeQ/Hvxg9dG4OofLFaC4e7dlC5kOT/ZIHQ6NIdzkQ2yOY1piKKYEYuO
145+
G/adtWAt8zRoejFob8W5aCA36uNoQLvdaMwXYNsJkzDNEmCB6vf3A28bVI+mlnt1
146+
+h3f0bkwxwHP2qYL8RneCL65GG+SWXHIipS/ZA5225mmT1oLo9xKeGK6vBgsOUum
147+
vxDgzmYyeGZYKpACWbOI7lR3C6PMR0oLKManLdb+ymngIk0bKB+Y2gr5cq/zURv8
148+
casiikjZT3MycPRV1AfQ3MYuXg6z4izkcG1U98E9Hr5p1gFsITmaY0aeK01a6xhx
149+
XkWKFTbraDn5ouTVMutW8xaVPU60zpYOcynxtRdgnYdmRR+c9dcD2xQmjtohuLxq
150+
RASCBC9iO7qTYkQvNW+yb63xbPDG05nokAfXpbp5hYVU8FYZHi8qOPtiaWiN9wbt
151+
ijsxDKZEcfiSGH5AEnkoaRCEqvbSNdtlbfYeDEnonsOZi9c+Kdl6A4PvOzTexwmi
152+
KPVgT8evWpQbubENw66vUOTqgkI+Bhbn87e1VELNUy+Uwz2OOcLEVvNkx0owswrH
153+
ujwb1+y1SYnlalLUt7PzEW85RNqVewGsHE8SD/1s70eYNYp7YJwLGPKJfyr3LvSl
154+
0qRfrYNhlewPc1MSVx7IFCZ4Qg+GFhg8TnEELQ==
155+
</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo>
156+
</dsig:Signature></samlp:Response>

0 commit comments

Comments
 (0)