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-----