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 04:06:11 UTC
svn commit: r685021 - in /maven/sandbox/trunk/mercury:
mercury-crypto/mercury-crypto-basic/src/main/java/org/apache/maven/mercury/crypto/pgp/
mercury-crypto/mercury-crypto-basic/src/test/resources/
mercury-transport/mercury-transport-http/src/test/java...
Author: ogusakov
Date: Mon Aug 11 19:06:10 2008
New Revision: 685021
URL: http://svn.apache.org/viewvc?rev=685021&view=rev
Log:
added PGP signature tests to http transport
Added:
maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/
maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/file.gif.asc.external
maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/pubring.gpg (with props)
maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/secring.gpg (with props)
maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif (with props)
maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif.asc
Removed:
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/resources/pubkey.gpgkey
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/test/resources/pubkey.gpgkey.asc
Modified:
maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/main/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifier.java
maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java
maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyRetrieverTest.java
Modified: maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/main/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifier.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/main/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifier.java?rev=685021&r1=685020&r2=685021&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/main/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifier.java (original)
+++ maven/sandbox/trunk/mercury/mercury-crypto/mercury-crypto-basic/src/main/java/org/apache/maven/mercury/crypto/pgp/PgpStreamVerifier.java Mon Aug 11 19:06:10 2008
@@ -39,7 +39,6 @@
extends AbstractStreamVerifier
implements StreamVerifier
{
- public static final String TYPE = "pgp";
private static final Language lang = new DefaultLanguage( PgpStreamVerifier.class );
private PGPPublicKeyRingCollection trustedPublicKeyRing;
@@ -162,7 +161,8 @@
try
{
- return signature.verify();
+ boolean res = signature.verify();
+ return res;
}
catch( Exception e )
{
Modified: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java?rev=685021&r1=685020&r2=685021&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java (original)
+++ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java Mon Aug 11 19:06:10 2008
@@ -34,7 +34,9 @@
import junit.framework.TestCase;
+import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes;
import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
+import org.apache.maven.mercury.crypto.pgp.PgpStreamVerifierFactory;
import org.apache.maven.mercury.crypto.sha.SHA1VerifierFactory;
import org.apache.maven.mercury.spi.http.client.deploy.DefaultDeployer;
import org.apache.maven.mercury.spi.http.client.deploy.DeployRequest;
@@ -42,12 +44,27 @@
import org.apache.maven.mercury.spi.http.server.SimplePutServer;
import org.apache.maven.mercury.spi.http.validate.Validator;
import org.apache.maven.mercury.transport.api.Binding;
+import org.bouncycastle.openpgp.PGPPublicKey;
+import org.bouncycastle.openpgp.PGPSecretKey;
+import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.mortbay.util.IO;
public class JettyDeployerTest extends TestCase
{
public String _HOST_FRAGMENT = "http://localhost:";
public static final String __PATH_FRAGMENT = "/maven2/repo/";
+
+ private static final String keyId = "0EDB5D91141BC4F2";
+
+ private static final String secretKeyFile = "/pgp/secring.gpg";
+ private static final String secretKeyPass = "testKey82";
+
+ private static final String publicKeyFile = "/pgp/pubring.gpg";
+
+ private PGPSecretKeyRing secretKeyRing;
+ private PGPSecretKey secretKey;
+ private PGPPublicKey publicKey;
+
protected DefaultDeployer _deployer;
protected SimplePutServer _putServer;
protected String _port;
@@ -58,6 +75,7 @@
File _file3;
File _file4;
File _file5;
+ File _file6;
org.apache.maven.mercury.transport.api.Server remoteServerType;
HashSet<StreamVerifierFactory> factories;
@@ -165,7 +183,14 @@
{
HashSet<Binding> bindings = new HashSet<Binding>();
DeployRequestImpl request = new DeployRequestImpl();
- factories.add(new SHA1VerifierFactory(false, true)); //!lenient, sufficient
+ factories.add( new SHA1VerifierFactory(false, true) ); //!lenient, sufficient
+ factories.add(
+ new PgpStreamVerifierFactory(
+ new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, false, true )
+ , getClass().getResourceAsStream( secretKeyFile )
+ , keyId, secretKeyPass
+ )
+ );
remoteServerType.setStreamObserverFactories(factories);
System.err.println("Basedir = "+_baseDir.getAbsolutePath());
@@ -176,15 +201,18 @@
_file3 = new File(_baseDir, "file3.jar");
_file4 = new File(_baseDir, "file4.so");
_file5 = new File(_baseDir, "file5.jpg");
+ _file6 = new File(_baseDir, "file6.gif");
Binding binding0 = new Binding(new URL(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt"), _file0);
Binding binding3 = new Binding(new URL(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar"), _file3);
Binding binding4 = new Binding(new URL(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so"), _file4);
Binding binding5 = new Binding(new URL(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg"), _file5);
+ Binding binding6 = new Binding(new URL(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file6.gif"), _file6);
bindings.add(binding0);
bindings.add(binding3);
bindings.add(binding4);
bindings.add(binding5);
+ bindings.add(binding6);
request.setBindings(bindings);
@@ -213,6 +241,11 @@
File f5cs = new File (_putServer.getPutDir(), "file5.jpg.sha1");
assertTrue (f5.exists());
assertTrue (f5cs.exists());
+
+ File f6 = new File(_putServer.getPutDir(), "file6.gif");
+ File f6cs = new File (_putServer.getPutDir(), "file6.gif.asc");
+ assertTrue (f6.exists());
+ assertTrue (f6cs.exists());
}
/* This test duplicates the one above unless we allow for checksum files to
* be pre-existing
@@ -287,8 +320,6 @@
}
*/
-
-
public void testUploadFail () throws Exception
{
factories.add(new SHA1VerifierFactory(false, true)); //!lenient, sufficient
Modified: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyRetrieverTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyRetrieverTest.java?rev=685021&r1=685020&r2=685021&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyRetrieverTest.java (original)
+++ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/client/JettyRetrieverTest.java Mon Aug 11 19:06:10 2008
@@ -28,7 +28,9 @@
import junit.framework.TestCase;
+import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes;
import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
+import org.apache.maven.mercury.crypto.pgp.PgpStreamVerifierFactory;
import org.apache.maven.mercury.crypto.sha.SHA1VerifierFactory;
import org.apache.maven.mercury.spi.http.client.retrieve.DefaultRetrievalRequest;
import org.apache.maven.mercury.spi.http.client.retrieve.DefaultRetriever;
@@ -37,12 +39,29 @@
import org.apache.maven.mercury.spi.http.validate.Validator;
import org.apache.maven.mercury.transport.api.Binding;
import org.apache.maven.mercury.transport.api.Server;
+import org.bouncycastle.openpgp.PGPPublicKey;
+import org.bouncycastle.openpgp.PGPSecretKey;
+import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.mortbay.util.IO;
public class JettyRetrieverTest extends TestCase
{
public static final String __HOST_FRAGMENT = "http://localhost:";
public static final String __PATH_FRAGMENT = "/maven2/repo/";
+
+
+ private static final String keyId = "0EDB5D91141BC4F2";
+
+ private static final String secretKeyFile = "/pgp/secring.gpg";
+ private static final String secretKeyPass = "testKey82";
+
+ private static final String publicKeyFile = "/pgp/pubring.gpg";
+
+ private PGPSecretKeyRing secretKeyRing;
+ private PGPSecretKey secretKey;
+ private PGPPublicKey publicKey;
+
+
public String _port;
File file0;
File file1;
@@ -50,6 +69,8 @@
File file3;
File file4;
File file5;
+ File file6;
+
DefaultRetriever retriever;
SimpleTestServer server;
Server remoteServerType;
@@ -205,6 +226,38 @@
}
+
+ public void testSyncRetrievalPgpGood()
+ throws Exception
+ {
+ factories.add(
+ new PgpStreamVerifierFactory(
+ new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, false, true )
+ , getClass().getResourceAsStream( publicKeyFile )
+ )
+ );
+ remoteServerType.setStreamObserverFactories(factories);
+
+ //make local dir to put stuff in
+ dir = mkTempDir();
+ DefaultRetrievalRequest request = new DefaultRetrievalRequest();
+ HashSet<Binding> bindings = new HashSet<Binding>();
+
+ file6 = new File(dir, "file6.gif");
+ Binding binding0 = new Binding(new URL(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file6.gif"), file6);
+ bindings.add(binding0);
+
+ request.setBindings(bindings);
+
+ RetrievalResponse response = retriever.retrieve(request);
+
+ //for (MercuryException t:response.getExceptions())
+ // t.printStackTrace();
+
+ assertEquals( 0, response.getExceptions().size() );
+ assertTrue( file6.exists() );
+ }
+
public void testSyncRetrievalFailFast()
throws Exception
Added: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/file.gif.asc.external
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/file.gif.asc.external?rev=685021&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/file.gif.asc.external (added)
+++ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/file.gif.asc.external Mon Aug 11 19:06:10 2008
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.8 (Darwin)
+
+iEYEABECAAYFAkigvoMACgkQDttdkRQbxPLhFwCghZLUaMz+qy3cKtVZOYg5KBBY
+uCUAoIqb0ZdxJ/S43xueswROsaVFrwR5
+=KqLx
+-----END PGP SIGNATURE-----
Added: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/pubring.gpg
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/pubring.gpg?rev=685021&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/pubring.gpg
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/secring.gpg
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/secring.gpg?rev=685021&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/pgp/secring.gpg
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif?rev=685021&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif.asc
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif.asc?rev=685021&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif.asc (added)
+++ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-http/src/test/resources/testRepo/file6.gif.asc Mon Aug 11 19:06:10 2008
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: BCPG v1.40
+
+iEYEABECAAYFAkiguzcACgkQDttdkRQbxPI9tQCfTDlQcKNkF4U0m+2L0ZaZT8nA
+/E4Anjn8kCp39KK1b9O/2LxhzAPKuuzw
+=PeVJ
+-----END PGP SIGNATURE-----