XML::Compile::WSS::SignedInfo - administrating a SignedInfo block


  # Not for end-users
  my $sig = XML::Compile::WSS::Signature->new(signedinfo => HASH);
  my $si  = $sig->signedinfo;


The administration and reading/writing for the SignedInfo structure.




All OPTIONS for new()

XML::Compile::WSS::SignedInfo->new($wss, %options)
 -Option       --Default
  c14n           <created internally>
  canon_method   C14N_EXC_NO_COMM
  digest_method  DSIG_SHA1
  prefix_list    [ds wsu xenc SOAP-ENV]
  wss            <required>
c14n => XML::Compile::C14N object
canon_method => CANON

The algorithm to be used for canonicalization of some component. These constants are pre-defined with nice C14N_* names in XML::Compile::C14N::Util.

digest_method => DIGEST

The algorithm used to sign the body digest, when sending.

The digest name is an ugly constant which has a nice DSIG_* alias defined in XML::Compile::WSS::Util. The digest is implemented via the Digest module, and its plugins.

prefix_list => ARRAY

Used for canonicalization.

wss => XML::Compile::WSS object

Optional when a c14n is provided.




$obj->builder($wss, %options)

Not for end-users. Returns a CODE which will be called to produce the data for a ds_SignedInfo block. The %options can overrule the defaults set by new()



With "canonicalization" you apply a set of rules to translate an XML structure into a standardized ("canonical") format.

XML offers freedom on where to put namespace declarations, blanks between elements, order of attributes, and so on. However, when you want to sign an element, meaningless changes do change the result. Canonical format enforces a set of rules, and produces bytes.

The "Digital Signature v1" supports c14n. DSIG version 2 uses c14n2... which is not yet supported.


This module is part of XML-Compile-WSS-Signature distribution version 2.02, built on July 16, 2016. Website:

Please post questions or ideas to the mailinglist at . For live contact with other developers, visit the #xml-compile channel on


Copyrights 2012-2016 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See