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


Reply via email to