Title: [1056] trunk/jopenssl: Implement functionality for PKCS7_set_content

Diff

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Digest.java (1055 => 1056)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Digest.java	2008-07-21 18:41:10 UTC (rev 1055)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Digest.java	2008-07-21 18:41:13 UTC (rev 1056)
@@ -56,4 +56,22 @@
     public final void setVersion(final int newVersion) {
         this.version = newVersion;
     }
+
+    /**
+     * Get the <code>Contents</code> value.
+     *
+     * @return a <code>PKCS7</code> value
+     */
+    public final PKCS7 getContents() {
+        return contents;
+    }
+
+    /**
+     * Set the <code>Contents</code> value.
+     *
+     * @param newContents The new Contents value.
+     */
+    public final void setContents(final PKCS7 newContents) {
+        this.contents = newContents;
+    }
 }// Digest

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7.java (1055 => 1056)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7.java	2008-07-21 18:41:10 UTC (rev 1055)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7.java	2008-07-21 18:41:13 UTC (rev 1056)
@@ -156,6 +156,14 @@
         this.data.addRecipientInfo(ri);
     }
 
+    /** c: PKCS7_set_content
+     *
+     */
+    public void setContent(PKCS7 p7) {
+        this.data.setContent(p7);
+    }
+    
+
     /** c: PKCS7_dataInit
      *
      */

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7Data.java (1055 => 1056)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7Data.java	2008-07-21 18:41:10 UTC (rev 1055)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7Data.java	2008-07-21 18:41:13 UTC (rev 1056)
@@ -111,4 +111,8 @@
     public void addSigner(SignerInfo psi) {
         throw new PKCS7Exception(PKCS7.F_PKCS7_ADD_SIGNER,PKCS7.R_WRONG_CONTENT_TYPE);
     }
+
+    public void setContent(PKCS7 p7) {
+        throw new PKCS7Exception(PKCS7.F_PKCS7_SET_CONTENT,PKCS7.R_WRONG_CONTENT_TYPE);
+    }
 }// PKCS7Data

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataDigest.java (1055 => 1056)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataDigest.java	2008-07-21 18:41:10 UTC (rev 1055)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataDigest.java	2008-07-21 18:41:13 UTC (rev 1056)
@@ -51,4 +51,8 @@
     public boolean isDigest() {
         return true;
     }
+
+    public void setContent(PKCS7 p7) {
+        this.digest.setContents(p7);
+    }
 }// PKCS7DataDigest

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSigned.java (1055 => 1056)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSigned.java	2008-07-21 18:41:10 UTC (rev 1055)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSigned.java	2008-07-21 18:41:13 UTC (rev 1056)
@@ -85,4 +85,8 @@
         this.sign.getMdAlgs().add(psi.getDigestAlgorithm());
         this.sign.getSignerInfo().add(psi);
     }
+
+    public void setContent(PKCS7 p7) {
+        this.sign.setContents(p7);
+    }
 }// PKCS7DataSigned

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Signed.java (1055 => 1056)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Signed.java	2008-07-21 18:41:10 UTC (rev 1055)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Signed.java	2008-07-21 18:41:13 UTC (rev 1056)
@@ -54,10 +54,6 @@
 
     PKCS7 contents;
 
-    public void setContents(PKCS7 contents) {
-        this.contents = contents;
-    }
-
     /**
      * Get the <code>Version</code> value.
      *
@@ -111,4 +107,22 @@
     public final void setMdAlgs(final Set<String> newMdAlgs) {
         this.mdAlgs = newMdAlgs;
     }
+
+    /**
+     * Get the <code>Contents</code> value.
+     *
+     * @return a <code>PKCS7</code> value
+     */
+    public final PKCS7 getContents() {
+        return contents;
+    }
+
+    /**
+     * Set the <code>Contents</code> value.
+     *
+     * @param newContents The new Contents value.
+     */
+    public final void setContents(final PKCS7 newContents) {
+        this.contents = newContents;
+    }
 }// Signed

Modified: trunk/jopenssl/test/test_java_pkcs7.rb (1055 => 1056)


--- trunk/jopenssl/test/test_java_pkcs7.rb	2008-07-21 18:41:10 UTC (rev 1055)
+++ trunk/jopenssl/test/test_java_pkcs7.rb	2008-07-21 18:41:13 UTC (rev 1056)
@@ -479,5 +479,55 @@
       assert p7.get_signed_and_enveloped.md_algs.contains("MD4")
       assert p7.get_signed_and_enveloped.md_algs.contains("MD5")
     end
+    
+    def test_set_content_on_data_throws_exception
+      p7 = PKCS7.new
+      p7.type = PKCS7::NID_pkcs7_data
+      assert_raises NativeException do 
+        p7.setContent(PKCS7.new)
+      end
+    end
+
+    def test_set_content_on_enveloped_throws_exception
+      p7 = PKCS7.new
+      p7.type = PKCS7::NID_pkcs7_enveloped
+      assert_raises NativeException do 
+        p7.setContent(PKCS7.new)
+      end
+    end
+
+    def test_set_content_on_signedAndEnveloped_throws_exception
+      p7 = PKCS7.new
+      p7.type = PKCS7::NID_pkcs7_signedAndEnveloped
+      assert_raises NativeException do 
+        p7.setContent(PKCS7.new)
+      end
+    end
+
+    def test_set_content_on_encrypted_throws_exception
+      p7 = PKCS7.new
+      p7.type = PKCS7::NID_pkcs7_encrypted
+      assert_raises NativeException do 
+        p7.setContent(PKCS7.new)
+      end
+    end
+
+    def test_set_content_on_signed_sets_the_content
+      p7 = PKCS7.new
+      p7.type = PKCS7::NID_pkcs7_signed
+      p7new = PKCS7.new
+      p7.setContent(p7new)
+      
+      assert_equal p7new, p7.get_sign.contents
+    end
+
+    def test_set_content_on_digest_sets_the_content
+      p7 = PKCS7.new
+      p7.type = PKCS7::NID_pkcs7_digest
+      p7new = PKCS7.new
+      p7.setContent(p7new)
+      
+      assert_equal p7new, p7.get_digest.contents
+    end
   end
 end
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to