Postini-SAML
view release on metacpan or search on metacpan
lib/Postini/SAML.pm view on Meta::CPAN
}
# generate a signature XML fragment, including the signature metadata fragment
# and the raw signature
sub _signature_xml {
my ($self, $signed_info_xml, $signature) = @_;
my $signature_xml =
x('ds:Signature',
{
'xmlns:ds' => 'http://www.w3.org/2000/09/xmldsig#',
},
$signed_info_xml,
x('ds:SignatureValue', $signature),
$self->{'key_info_xml'},
),
;
return $signature_xml;
}
# generate a signature metadata XML fragement, including the message digest
sub _signed_info_xml {
my ($self, $digest) = @_;
my $signed_info_xml =
x('ds:SignedInfo',
{
# we must include all the namespaces in use anywhere in the
# document so they can be included in the signature
'xmlns:ds' => 'http://www.w3.org/2000/09/xmldsig#',
'xmlns:saml' => 'urn:oasis:names:tc:SAML:1.0:assertion',
'xmlns:samlp' => 'urn:oasis:names:tc:SAML:1.0:protocol',
},
x('ds:CanonicalizationMethod',
{
'Algorithm' => 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315',
},
),
x('ds:SignatureMethod',
{
'Algorithm' => 'http://www.w3.org/2000/09/xmldsig#rsa-sha1',
},
),
x('ds:Reference',
{
'URI' => "",
},
x('ds:Transforms',
x('ds:Transform',
{
'Algorithm' => 'http://www.w3.org/2000/09/xmldsig#enveloped-signature',
},
),
),
x('ds:DigestMethod',
{
'Algorithm' => 'http://www.w3.org/2000/09/xmldsig#sha1',
}
),
x('ds:DigestValue', $digest),
),
),
;
return $signed_info_xml;
}
( run in 0.831 second using v1.01-cache-2.11-cpan-71847e10f99 )