javax.xml.crypto.dsig


1. Generating an XML Signature

import javax.xml.crypto.dsig.*;

// Create XML document
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.newDocument();

// Create XML Signature
XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
Reference ref = factory.newReference("", DigestMethod.SHA256);
SignedInfo si = factory.newSignedInfo(factory.newCanonicalizationMethod(CanonicalizationMethod.EXCLUSIVE, (C14NMethodParameterSpec) null), factory.newSignatureMethod(SignatureMethod.RSA_SHA256, null), Collections.singletonList(ref));
KeyInfo ki = factory.newKeyInfo(Collections.singletonList(factory.newKeyName("John Doe")));
XMLSignature signature = factory.newXMLSignature(si, ki);

// Sign XML document
Key privateKey = ...; // Obtain private key
XMLSignatureSigner signer = factory.newXMLSignatureSigner(privateKey, null);
signer.sign(signature, document);

2. Verifying an XML Signature

3. Creating a Signed XML Detached Signature

4. Verifying a Signed XML Detached Signature

5. Creating a Signed XML Enveloped Signature

6. Verifying a Signed XML Enveloped Signature

7. Creating a Signed XML Canonical XML Signature