[xmlsectool] branch master updated: Refactor for testability.
Ian Young
ian at iay.org.uk
Tue May 24 15:11:06 EDT 2016
This is an automated email from the git hooks/post-receive script.
iay pushed a commit to branch master
in repository xmlsectool.
The following commit(s) were added to refs/heads/master by this push:
new f88d614 Refactor for testability.
f88d614 is described below
commit f88d614cca0f52b3ef77dcf699169ad2431554f9
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Tue May 24 20:11:00 2016 +0100
Refactor for testability.
---
.../java/net/shibboleth/tool/xmlsectool/XmlSecTool.java | 14 +++++++++-----
.../java/net/shibboleth/tool/xmlsectool/XSTJ51Test.java | 12 +++++++-----
2 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/src/main/java/net/shibboleth/tool/xmlsectool/XmlSecTool.java b/src/main/java/net/shibboleth/tool/xmlsectool/XmlSecTool.java
index 6f3f3c6..af3f9da 100644
--- a/src/main/java/net/shibboleth/tool/xmlsectool/XmlSecTool.java
+++ b/src/main/java/net/shibboleth/tool/xmlsectool/XmlSecTool.java
@@ -42,6 +42,7 @@ import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.InflaterInputStream;
+import javax.annotation.Nonnull;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
@@ -74,6 +75,7 @@ import org.opensaml.core.config.InitializationException;
import org.opensaml.core.config.InitializationService;
import org.opensaml.security.credential.CredentialSupport;
import org.opensaml.security.x509.BasicX509Credential;
+import org.opensaml.security.x509.X509Credential;
import org.opensaml.security.x509.X509Support;
import org.opensaml.xmlsec.SecurityConfigurationSupport;
import org.opensaml.xmlsec.SignatureSigningConfiguration;
@@ -144,7 +146,8 @@ public final class XmlSecTool {
}
if (cli.doSign()) {
- sign(cli, xml);
+ final X509Credential cred = getCredential(cli);
+ sign(cli, cred, xml);
}
if (cli.doSignatureVerify()) {
@@ -351,9 +354,11 @@ public final class XmlSecTool {
* Signs a document.
*
* @param cli command line arguments
+ * @param signingCredential credential to use for signing
* @param xml document to be signed
*/
- protected static void sign(final CommandLineArguments cli, final Document xml) {
+ protected static void sign(@Nonnull final CommandLineArguments cli,
+ @Nonnull final X509Credential signingCredential, @Nonnull final Document xml) {
log.debug("Preparing to sign document");
final Element documentRoot = xml.getDocumentElement();
Element signatureElement = getSignatureElement(xml);
@@ -369,7 +374,6 @@ public final class XmlSecTool {
* * for RSA credentials, use an algorithm dependent on the digest algorithm chosen
* * fall back to a signature algorithm based on the signing credential type.
*/
- final BasicX509Credential signingCredential = getCredential(cli);
final SignatureSigningConfiguration securityConfig =
SecurityConfigurationSupport.getGlobalSignatureSigningConfiguration();
String signatureAlgorithm = cli.getSignatureAlgorithm();
@@ -447,7 +451,7 @@ public final class XmlSecTool {
* @param credential the credential
*/
protected static void populateKeyInfo(final Document doc, final KeyInfo keyInfo,
- final BasicX509Credential credential) {
+ final X509Credential credential) {
if (credential.getKeyNames() != null) {
for (final String name : credential.getKeyNames()) {
final KeyName keyName = new KeyName(doc, name);
@@ -863,7 +867,7 @@ public final class XmlSecTool {
*
* @return the credentials
*/
- protected static BasicX509Credential getCredential(final CommandLineArguments cli) {
+ protected static X509Credential getCredential(final CommandLineArguments cli) {
final BasicX509Credential credential;
if (cli.getCertificate() != null) {
try {
diff --git a/src/test/java/net/shibboleth/tool/xmlsectool/XSTJ51Test.java b/src/test/java/net/shibboleth/tool/xmlsectool/XSTJ51Test.java
index 0b810d6..623cb40 100644
--- a/src/test/java/net/shibboleth/tool/xmlsectool/XSTJ51Test.java
+++ b/src/test/java/net/shibboleth/tool/xmlsectool/XSTJ51Test.java
@@ -8,6 +8,7 @@ import javax.xml.transform.dom.DOMSource;
import org.opensaml.core.config.InitializationService;
import org.opensaml.security.x509.BasicX509Credential;
+import org.opensaml.security.x509.X509Credential;
import org.opensaml.xmlsec.signature.KeyInfo;
import org.opensaml.xmlsec.signature.KeyValue;
import org.testng.Assert;
@@ -29,6 +30,11 @@ public class XSTJ51Test extends BaseTest {
// acquire an Elliptic Curve credential to sign with
final File certFile = classRelativeFile("cert.crt");
final File keyFile = classRelativeFile("key.key");
+ final X509Credential cred =
+ CredentialHelper.getFileBasedCredentials(keyFile.toString(), null, certFile.toString());
+ final PublicKey pk = cred.getPublicKey();
+ Assert.assertEquals(pk.getAlgorithm(), "EC");
+ Assert.assertTrue(pk instanceof java.security.interfaces.ECPublicKey);
// build command-line arguments
final String[] args = {
@@ -44,16 +50,12 @@ public class XSTJ51Test extends BaseTest {
InitializationService.initialize();
// check that the credential is of the right kind
- final BasicX509Credential cred = XmlSecTool.getCredential(cli);
- final PublicKey pk = cred.getPublicKey();
- Assert.assertEquals(pk.getAlgorithm(), "EC");
- Assert.assertTrue(pk instanceof java.security.interfaces.ECPublicKey);
// acquire a document to sign
final Document xml = readXMLDocument("in.xml");
// perform signature operation
- XmlSecTool.sign(cli, xml);
+ XmlSecTool.sign(cli, cred, xml);
// verify the signature using our own code for consistency
XmlSecTool.verifySignature(cli, xml);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list