You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/08/12 02:09:05 UTC
svn commit: r684997 - in
/maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org:
./ apache/ apache/maven/ apache/maven/mercury/ apache/maven/mercury/crypto/
apache/maven/mercury/crypto/pgp/
Author: ogusakov
Date: Mon Aug 11 17:09:05 2008
New Revision: 684997
URL: http://svn.apache.org/viewvc?rev=684997&view=rev
Log:
implemented PGP signatures, changed StreamVerifier modus operandi to get initialized with signature upfront as crypto signature needs that. Changed http client to follow this new paradigm
Added:
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/mercury/
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/mercury/crypto/
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/mercury/crypto/pgp/
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java
Added: maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java?rev=684997&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java (added)
+++ maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifierTest.java Mon Aug 11 17:09:05 2008
@@ -0,0 +1,131 @@
+package org.apache.maven.mercury.crypto.pgp;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.maven.mercury.crypto.api.StreamObserverException;
+import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes;
+import org.apache.maven.mercury.crypto.api.StreamVerifierException;
+import org.bouncycastle.openpgp.PGPPublicKey;
+import org.bouncycastle.openpgp.PGPSecretKey;
+import org.bouncycastle.openpgp.PGPSecretKeyRing;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class PgpStreamVerifierTest
+ extends TestCase
+{
+ private static final String keyId = "0EDB5D91141BC4F2";
+
+ private static final String secretKeyFile = "/secring.gpg";
+ private static final String secretKeyPass = "testKey82";
+
+ private static final String publicKeyFile = "/pubring.gpg";
+
+ private PGPSecretKeyRing secretKeyRing;
+ private PGPSecretKey secretKey;
+ private PGPPublicKey publicKey;
+
+ PgpStreamVerifierFactory svf;
+
+ PgpStreamVerifier sv;
+
+
+ protected void setUp()
+ throws Exception
+ {
+ InputStream in = getClass().getResourceAsStream( secretKeyFile );
+ assertNotNull( in );
+
+ secretKeyRing = PgpHelper.readKeyRing( in, keyId );
+ assertNotNull( secretKeyRing );
+
+ secretKey = secretKeyRing.getSecretKey( Long.parseLong( keyId, 16 ) );
+ publicKey = secretKeyRing.getPublicKey();
+
+ StreamVerifierAttributes attributes = new StreamVerifierAttributes(PgpStreamVerifierFactory.DEFAULT_EXTENSION, true, true);
+
+ InputStream is = getClass().getResourceAsStream( publicKeyFile );
+ svf = new PgpStreamVerifierFactory( attributes, is );
+ is.close();
+
+ is = getClass().getResourceAsStream( secretKeyFile );
+ svf.init( is, keyId, secretKeyPass );
+ is.close();
+ }
+
+ protected void tearDown()
+ throws Exception
+ {
+ super.tearDown();
+ }
+ //-------------------------------------------------------------------------------------------------
+ public void testGenerateSignature()
+ throws IOException, StreamObserverException
+ {
+ PgpStreamVerifier sv = (PgpStreamVerifier)svf.newInstance();
+ InputStream in = getClass().getResourceAsStream( "/file.gif" );
+
+ int b;
+ while( (b = in.read()) != -1 )
+ sv.byteReady( b );
+
+ String sig = sv.getSignature();
+
+ assertNotNull( sig );
+
+ assertTrue( sig.length() > 10 );
+
+// System.out.println("Signature is \n"+sig+"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
+ }
+ //-------------------------------------------------------------------------------------------------
+ public void testVerifySignature()
+ throws IOException, StreamObserverException
+ {
+ PgpStreamVerifier sv = (PgpStreamVerifier)svf.newInstance();
+
+ InputStream in = getClass().getResourceAsStream( "/file.gif" );
+ String sig = PgpHelper.streamToString( getClass().getResourceAsStream( "/file.gif.asc" ) );
+
+ sv.initSignature( sig );
+
+ int b;
+ while( (b = in.read()) != -1 )
+ sv.byteReady( b );
+
+ boolean verified = sv.verifySignature();
+
+ assertTrue( verified );
+
+ System.out.println("BouncyCastle Signature is "+verified);
+ }
+ //-------------------------------------------------------------------------------------------------
+ public void testVerifyExternalSignature()
+ throws IOException, StreamObserverException
+ {
+ PgpStreamVerifier sv = (PgpStreamVerifier)svf.newInstance();
+
+ InputStream in = getClass().getResourceAsStream( "/file.gif" );
+ String sig = PgpHelper.streamToString( getClass().getResourceAsStream( "/file.gif.asc.external" ) );
+
+ sv.initSignature( sig );
+
+ int b;
+ while( (b = in.read()) != -1 )
+ sv.byteReady( b );
+
+ boolean verified = sv.verifySignature();
+
+ assertTrue( verified );
+
+ System.out.println("3rd Party Signature is "+verified);
+ }
+ //-------------------------------------------------------------------------------------------------
+}