[java-xmltooling COMMIT] /branches/REL_1/src/test/java/org/opensaml/xml/security/x509/X509KeyInfoGeneratorTest.java

noreply at shibboleth.net noreply at shibboleth.net
Tue Jan 22 17:55:33 EST 2013


Author: scantor
Date: Tue Jan 22 17:55:33 2013
New Revision: 782

URL: http://svn.shibboleth.net/view/java-xmltooling?rev=782&view=rev
Log:
Add digest test.

Modified:
    branches/REL_1/src/test/java/org/opensaml/xml/security/x509/X509KeyInfoGeneratorTest.java

Modified: branches/REL_1/src/test/java/org/opensaml/xml/security/x509/X509KeyInfoGeneratorTest.java
URL: http://svn.shibboleth.net/view/java-xmltooling/branches/REL_1/src/test/java/org/opensaml/xml/security/x509/X509KeyInfoGeneratorTest.java?rev=782&r1=781&r2=782&view=diff
==============================================================================
--- branches/REL_1/src/test/java/org/opensaml/xml/security/x509/X509KeyInfoGeneratorTest.java (original)
+++ branches/REL_1/src/test/java/org/opensaml/xml/security/x509/X509KeyInfoGeneratorTest.java Tue Jan 22 17:55:33 2013
@@ -37,7 +37,9 @@
 import org.opensaml.xml.security.keyinfo.KeyInfoGenerator;
 import org.opensaml.xml.security.keyinfo.KeyInfoHelper;
 import org.opensaml.xml.signature.KeyInfo;
+import org.opensaml.xml.signature.SignatureConstants;
 import org.opensaml.xml.signature.X509Data;
+import org.opensaml.xml.signature.X509Digest;
 import org.opensaml.xml.signature.X509IssuerSerial;
 import org.opensaml.xml.signature.X509SKI;
 import org.opensaml.xml.util.Base64;
@@ -88,6 +90,7 @@
 
     
     private String entityCertSKIBase64 = "OBGBOSNoqgroOhl9RniD0sMlRa4=";
+    private String entityCertDigestBase64 = "w+E2z13/aCCFAQWscM4BaH8U4M4=";
 
 
     private X509Certificate caCert;
@@ -117,6 +120,7 @@
     private X500Principal issuerName;
     private BigInteger serialNumber;
     private byte[] subjectKeyIdentifier;
+    private byte[] x509Digest;
     
     private String altName1, altName2, altName3;
     private Integer altName1Type, altName2Type, altName3Type;
@@ -151,6 +155,7 @@
         issuerName = new X500Principal("cn=ca.example.org, O=Internet2");
         serialNumber = new BigInteger("49");
         subjectKeyIdentifier = Base64.decode(entityCertSKIBase64);
+        x509Digest = Base64.decode(entityCertDigestBase64);
         
         altName1 = "asimov.example.org";
         altName1Type = X509Util.DNS_ALT_NAME;
@@ -394,6 +399,29 @@
         X509SKI ski = x509Data.getX509SKIs().get(0);
         byte[] skiValue = Base64.decode(DatatypeHelper.safeTrimOrNullString(ski.getValue()));
         assertTrue("Unexpected SKI value found", Arrays.equals(subjectKeyIdentifier, skiValue));
+    }
+
+    /**
+     * Test emit X509Digest in X509Data.
+     * @throws SecurityException
+     */
+    public void testEmitX509Digest() throws SecurityException {
+        factory.setEmitX509Digest(true);
+        factory.setX509DigestAlgorithmURI(SignatureConstants.ALGO_ID_DIGEST_SHA1);
+        
+        generator = factory.newInstance();
+        KeyInfo keyInfo = generator.generate(credential);
+        
+        assertNotNull("Generated KeyInfo was null", keyInfo);
+        assertNotNull("Generated KeyInfo children list was null", keyInfo.getOrderedChildren());
+        
+        assertEquals("Unexpected number of X509Data elements", 1, keyInfo.getX509Datas().size());
+        X509Data x509Data = keyInfo.getX509Datas().get(0);
+        assertEquals("Unexpected number of X509Digest elements", 1,
+                x509Data.getXMLObjects(X509Digest.DEFAULT_ELEMENT_NAME).size());
+        X509Digest digest = (X509Digest) x509Data.getXMLObjects(X509Digest.DEFAULT_ELEMENT_NAME).get(0);
+        byte[] digestValue = Base64.decode(DatatypeHelper.safeTrimOrNullString(digest.getValue()));
+        assertTrue("Unexpected SHA-1 digest value found", Arrays.equals(x509Digest, digestValue));
     }
     
     /**



More information about the commits mailing list