I don't understand your question. If you are signing an XML file, you
have to create the signature node first:
public static Element signAssertion(Element assertion, Map cred)
throws Exception {
Document doc = assertion.getOwnerDocument();
// somehow the ID attribute is not yet really in the doc
// so we regsiter the id of interest so the Resolver
called by sign can
// find it
String assertionId =
assertion.getAttributeNode("ID").toString()
.substring(4, 37);
IdResolver.registerElementById(assertion, assertionId);
XMLSignature sig = new XMLSignature(doc, "",
XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1,
Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);
assertion.insertBefore(sig.getElement(),
assertion.getFirstChild());
// create the transforms object for the Document/Reference
Transforms transforms = new Transforms(doc);
// First we have to strip away the signature element (it's
not part of
// the signature calculations). The enveloped transform
can be used.
transforms.addTransform(Transforms.TRANSFORM_ENVELOPED_SIGNATURE);
// Part of the signature element needs to be
canonicalized. It is a kind
// of normalizing algorithm for XML. For more information
please take a
// look at the W3C XML Digital Signature webpage.
InclusiveNamespaces incNS = new InclusiveNamespaces(doc,
"ds saml xenc xs");
transforms.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS,
incNS.getElement());
// Add the above Document/Reference
sig.addDocument("#" + assertionId, transforms,
Constants.ALGO_ID_DIGEST_SHA1);
Key privKey = (Key) cred.get("privateKey");
sig.sign(privKey);
return assertion;
}
Notice that sig.addDocument is called before the sign()
Not sure if this helps...
Ed
Anais <[EMAIL PROTECTED]>
08/11/2008 10:26 AM
Please respond to
[email protected]
To
[email protected]
cc
Subject
how sign an xml file ?
Hi,
I'm a newbie in xml signature. I have look at the example : templatesign
in
order to sign a xml file with a key in a PEM file but i have the error :
could not find <signature> node
I don't undestand why a <signature> node is requiered because my first
file
can't have this node.
In the future i would like to make multiple signature and sign pdf files.
Thanks
--
View this message in context:
http://www.nabble.com/how-sign-an-xml-file---tp18926885p18926885.html
Sent from the Apache XML - Security - Dev mailing list archive at
Nabble.com.