Mercury-IM/domain/src/main/java/org/jivesoftware/smackx/ikey/IkeySignatureCreator.java

28 lines
1.2 KiB
Java

package org.jivesoftware.smackx.ikey;
import org.apache.xml.security.c14n.CanonicalizationException;
import org.apache.xml.security.parser.XMLParserException;
import org.bouncycastle.util.encoders.Base64;
import org.jivesoftware.smackx.ikey.element.ProofElement;
import org.jivesoftware.smackx.ikey.element.SubordinateListElement;
import java.io.IOException;
public class IkeySignatureCreator {
private final IkeySignatureCreationMechanism signatureCreationMechanism;
private final XmlSecElementCanonicalizer elementCanonicalizer;
public IkeySignatureCreator(IkeySignatureCreationMechanism signingMechanism, XmlSecElementCanonicalizer elementCanonicalizer) {
this.signatureCreationMechanism = signingMechanism;
this.elementCanonicalizer = elementCanonicalizer;
}
public ProofElement createProofFor(SubordinateListElement subordinateListElement) throws XMLParserException, IOException, CanonicalizationException {
byte[] canonicalized = elementCanonicalizer.canonicalize(subordinateListElement);
byte[] signature = signatureCreationMechanism.createSignature(canonicalized);
return new ProofElement(Base64.toBase64String(signature));
}
}