You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2006/09/06 18:41:50 UTC
svn commit: r440782 - in
/incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security:
DSigThirdPartyVerifyTest.java TestSuite.java
Author: jmsnell
Date: Wed Sep 6 09:41:50 2006
New Revision: 440782
URL: http://svn.apache.org/viewvc?view=rev&rev=440782
Log:
Adding digital signature third party verification test using Verisign's test endpoint
(http://signedping.com/wiki/index.php/Signed_Ping_interop)
Added:
incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/DSigThirdPartyVerifyTest.java
Modified:
incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/TestSuite.java
Added: incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/DSigThirdPartyVerifyTest.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/DSigThirdPartyVerifyTest.java?view=auto&rev=440782
==============================================================================
--- incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/DSigThirdPartyVerifyTest.java (added)
+++ incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/DSigThirdPartyVerifyTest.java Wed Sep 6 09:41:50 2006
@@ -0,0 +1,119 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.abdera.test.security;
+
+import java.io.InputStream;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.cert.X509Certificate;
+
+import javax.xml.namespace.QName;
+
+import org.apache.abdera.Abdera;
+import org.apache.abdera.factory.Factory;
+import org.apache.abdera.model.Document;
+import org.apache.abdera.model.Element;
+import org.apache.abdera.model.Entry;
+import org.apache.abdera.protocol.client.Client;
+import org.apache.abdera.protocol.client.ClientResponse;
+import org.apache.abdera.protocol.client.CommonsClient;
+import org.apache.abdera.protocol.client.RequestOptions;
+import org.apache.abdera.protocol.client.util.BaseRequestEntity;
+import org.apache.abdera.security.AbderaSecurity;
+import org.apache.abdera.security.Signature;
+import org.apache.abdera.security.SignatureOptions;
+import org.apache.abdera.xpath.XPath;
+
+import junit.framework.TestCase;
+
+public class DSigThirdPartyVerifyTest extends TestCase {
+
+ private static final String keystoreFile = "/key.jks";
+ private static final String keystoreType = "JKS";
+ private static final String keystorePass = "testing";
+ private static final String privateKeyAlias = "James";
+ private static final String privateKeyPass = "testing";
+ private static final String certificateAlias = "James";
+
+ public static void testThirdPartyVerification() throws Exception {
+
+ // Initialize the keystore
+ KeyStore ks = KeyStore.getInstance(keystoreType);
+ assertNotNull(ks);
+
+ InputStream in = DigitalSignatureTest.class.getResourceAsStream(keystoreFile);
+ assertNotNull(in);
+
+ ks.load(in, keystorePass.toCharArray());
+ PrivateKey signingKey =
+ (PrivateKey) ks.getKey(
+ privateKeyAlias,
+ privateKeyPass.toCharArray());
+ X509Certificate cert =
+ (X509Certificate) ks.getCertificate(
+ certificateAlias);
+ assertNotNull(signingKey);
+ assertNotNull(cert);
+
+ // Create the entry to sign
+ Abdera abdera = new Abdera();
+ AbderaSecurity absec = new AbderaSecurity(abdera);
+ Factory factory = abdera.getFactory();
+
+ Entry entry = factory.newEntry();
+ entry.setId("http://example.org/foo/entry");
+ entry.setUpdated(new java.util.Date());
+ entry.setTitle("This is an entry");
+ entry.setContentAsXhtml("This <b>is</b> <i>markup</i>");
+ entry.addAuthor("James");
+ entry.addLink("http://www.example.org");
+
+ // Prepare the digital signature options
+ Signature sig = absec.getSignature();
+ SignatureOptions options = sig.getDefaultSignatureOptions();
+ options.setCertificate(cert);
+ options.setSigningKey(signingKey);
+
+ // Sign the entry
+ entry = sig.sign(entry, options);
+ assertNotNull(
+ entry.getFirstChild(
+ new QName(
+ "http://www.w3.org/2000/09/xmldsig#",
+ "Signature")));
+
+ // Verify the signature with Verisign's "Signed Ping" interop endpoint
+ Client client = new CommonsClient();
+ RequestOptions reqoptions = client.getDefaultRequestOptions();
+ reqoptions.setContentType("application/xml");
+ BaseRequestEntity bre = new BaseRequestEntity(entry,false);
+ ClientResponse response = client.post(
+ "http://verisignlabs.com/tg/verify",
+ bre, reqoptions);
+ assertEquals(response.getStatus(),200);
+ Document<Element> result = response.getDocument();
+
+ XPath xpath = abdera.getXPath();
+ assertTrue(
+ xpath.isTrue(
+ "/Result/SignatureVerifies[text()='true']",
+ result));
+
+ }
+
+}
Modified: incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/TestSuite.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/TestSuite.java?view=diff&rev=440782&r1=440781&r2=440782
==============================================================================
--- incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/TestSuite.java (original)
+++ incubator/abdera/java/trunk/security/src/test/java/org/apache/abdera/test/security/TestSuite.java Wed Sep 6 09:41:50 2006
@@ -26,6 +26,7 @@
public TestSuite() {
addTestSuite(DigitalSignatureTest.class);
addTestSuite(EncryptionTest.class);
+ addTestSuite(DSigThirdPartyVerifyTest.class);
}
}