Diff
Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7.java (1061 => 1062)
--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7.java 2008-07-21 18:41:25 UTC (rev 1061)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7.java 2008-07-21 18:41:27 UTC (rev 1062)
@@ -158,6 +158,13 @@
this.data.addSigner(psi);
}
+ /** c: PKCS7_add_certificate
+ *
+ */
+ public void addCertificate(X509Certificate cert) {
+ this.data.addCertificate(cert);
+ }
+
/** c: PKCS7_add_recipient_info
*
*/
Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7Data.java (1061 => 1062)
--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7Data.java 2008-07-21 18:41:25 UTC (rev 1061)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7Data.java 2008-07-21 18:41:27 UTC (rev 1062)
@@ -31,6 +31,7 @@
import org.bouncycastle.asn1.ASN1Encodable;
import javax.crypto.Cipher;
import java.util.List;
+import java.security.cert.X509Certificate;
/**
* @author <a href="" PROTECTED]">Ola Bini</a>
@@ -120,4 +121,8 @@
public List<SignerInfo> getSignerInfo() {
return null;
}
+
+ public void addCertificate(X509Certificate cert) {
+ throw new PKCS7Exception(PKCS7.F_PKCS7_ADD_CERTIFICATE,PKCS7.R_WRONG_CONTENT_TYPE);
+ }
}// PKCS7Data
Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSigned.java (1061 => 1062)
--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSigned.java 2008-07-21 18:41:25 UTC (rev 1061)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSigned.java 2008-07-21 18:41:27 UTC (rev 1062)
@@ -28,6 +28,7 @@
package org.jruby.ext.openssl.impl;
import java.util.List;
+import java.security.cert.X509Certificate;
/**
*
@@ -95,4 +96,8 @@
public List<SignerInfo> getSignerInfo() {
return this.sign.getSignerInfo();
}
+
+ public void addCertificate(X509Certificate cert) {
+ this.sign.getCert().add(cert);
+ }
}// PKCS7DataSigned
Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSignedAndEnveloped.java (1061 => 1062)
--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSignedAndEnveloped.java 2008-07-21 18:41:25 UTC (rev 1061)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSignedAndEnveloped.java 2008-07-21 18:41:27 UTC (rev 1062)
@@ -29,6 +29,7 @@
import javax.crypto.Cipher;
import java.util.List;
+import java.security.cert.X509Certificate;
/**
*
@@ -72,4 +73,8 @@
public List<SignerInfo> getSignerInfo() {
return this.signedAndEnveloped.getSignerInfo();
}
+
+ public void addCertificate(X509Certificate cert) {
+ this.signedAndEnveloped.getCert().add(cert);
+ }
}// PKCS7DataSignedAndEnveloped
Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SignEnvelope.java (1061 => 1062)
--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SignEnvelope.java 2008-07-21 18:41:25 UTC (rev 1061)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SignEnvelope.java 2008-07-21 18:41:27 UTC (rev 1062)
@@ -31,6 +31,7 @@
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
+import java.security.cert.X509Certificate;
/** PKCS7_SIGN_ENVELOPE
*
@@ -45,6 +46,11 @@
private EncContent encData = new EncContent();
/**
+ * Describe cert here.
+ */
+ private List<X509Certificate> cert = new ArrayList<X509Certificate>();
+
+ /**
* Describe mdAlgs here.
*/
private Set<String> mdAlgs = new HashSet<String>();
@@ -148,4 +154,22 @@
public final void setMdAlgs(final Set<String> newMdAlgs) {
this.mdAlgs = newMdAlgs;
}
+
+ /**
+ * Get the <code>Cert</code> value.
+ *
+ * @return a <code>List<X509Certificate></code> value
+ */
+ public final List<X509Certificate> getCert() {
+ return cert;
+ }
+
+ /**
+ * Set the <code>Cert</code> value.
+ *
+ * @param newCert The new Cert value.
+ */
+ public final void setCert(final List<X509Certificate> newCert) {
+ this.cert = newCert;
+ }
}// SignEnvelope
Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Signed.java (1061 => 1062)
--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Signed.java 2008-07-21 18:41:25 UTC (rev 1061)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/Signed.java 2008-07-21 18:41:27 UTC (rev 1062)
@@ -31,6 +31,7 @@
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
+import java.security.cert.X509Certificate;
/** PKCS7_SIGNED
*
@@ -43,6 +44,11 @@
private int version;
/**
+ * Describe cert here.
+ */
+ private List<X509Certificate> cert = new ArrayList<X509Certificate>();
+
+ /**
* Describe mdAlgs here.
*/
private Set<String> mdAlgs = new HashSet<String>();
@@ -125,4 +131,22 @@
public final void setContents(final PKCS7 newContents) {
this.contents = newContents;
}
+
+ /**
+ * Get the <code>Cert</code> value.
+ *
+ * @return a <code>List<X509Certificate></code> value
+ */
+ public final List<X509Certificate> getCert() {
+ return cert;
+ }
+
+ /**
+ * Set the <code>Cert</code> value.
+ *
+ * @param newCert The new Cert value.
+ */
+ public final void setCert(final List<X509Certificate> newCert) {
+ this.cert = newCert;
+ }
}// Signed
Modified: trunk/jopenssl/test/test_java_pkcs7.rb (1061 => 1062)
--- trunk/jopenssl/test/test_java_pkcs7.rb 2008-07-21 18:41:25 UTC (rev 1061)
+++ trunk/jopenssl/test/test_java_pkcs7.rb 2008-07-21 18:41:27 UTC (rev 1062)
@@ -734,6 +734,55 @@
p7.content_new(PKCS7::NID_pkcs7_encrypted)
assert p7.get_sign.contents.encrypted?
end
+
+
+ def test_add_certificate_on_data_throws_exception
+ p7 = PKCS7.new
+ p7.type = PKCS7::NID_pkcs7_data
+ assert_raises NativeException do
+ p7.add_certificate(X509Cert)
+ end
+ end
+
+ def test_add_certificate_on_enveloped_throws_exception
+ p7 = PKCS7.new
+ p7.type = PKCS7::NID_pkcs7_enveloped
+ assert_raises NativeException do
+ p7.add_certificate(X509Cert)
+ end
+ end
+
+ def test_add_certificate_on_encrypted_throws_exception
+ p7 = PKCS7.new
+ p7.type = PKCS7::NID_pkcs7_encrypted
+ assert_raises NativeException do
+ p7.add_certificate(X509Cert)
+ end
+ end
+
+ def test_add_certificate_on_digest_throws_exception
+ p7 = PKCS7.new
+ p7.type = PKCS7::NID_pkcs7_digest
+ assert_raises NativeException do
+ p7.add_certificate(X509Cert)
+ end
+ end
+
+ def test_add_certificate_on_signed_adds_the_certificate
+ p7 = PKCS7.new
+ p7.type = PKCS7::NID_pkcs7_signed
+ p7.add_certificate(X509Cert)
+ assert_equal 1, p7.get_sign.cert.size
+ assert_equal X509Cert, p7.get_sign.cert.get(0)
+ end
+
+ def test_add_certificate_on_signedAndEnveloped_adds_the_certificate
+ p7 = PKCS7.new
+ p7.type = PKCS7::NID_pkcs7_signedAndEnveloped
+ p7.add_certificate(X509Cert)
+ assert_equal 1, p7.get_signed_and_enveloped.cert.size
+ assert_equal X509Cert, p7.get_signed_and_enveloped.cert.get(0)
+ end
end
end
end