Skip to content

Instantly share code, notes, and snippets.

@cprice404
Last active November 23, 2016 17:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cprice404/6957d9f34fa1cdcd764b9a34b3ecd98e to your computer and use it in GitHub Desktop.
Save cprice404/6957d9f34fa1cdcd764b9a34b3ecd98e to your computer and use it in GitHub Desktop.
def test_foo
now = Time.at(Time.now.to_i)
ca_exts = [
["basicConstraints","CA:TRUE",true],
["keyUsage","cRLSign,keyCertSign",true],
]
ee_exts = [
["keyUsage","keyEncipherment,digitalSignature",true],
]
ca1_cert = issue_cert(@ca1, @rsa2048, 1, now, now+3600, ca_exts,
nil, nil, OpenSSL::Digest::SHA1.new)
ca2_cert = issue_cert(@ca2, @rsa1024, 2, now, now+1800, ca_exts,
ca1_cert, @rsa2048, OpenSSL::Digest::SHA1.new)
ee1_cert = issue_cert(@ee1, @dsa256, 10, now, now+1800, ee_exts,
ca2_cert, @rsa1024, OpenSSL::Digest::SHA1.new)
puts "EE1CERT: #{ee1_cert.class}"
puts "CA2CERT: #{ca2_cert.class}"
puts "EE1CERT.to_java: #{ee1_cert.to_java.class}"
puts "CA2CERT.to_java: #{ca2_cert.to_java.class}"
puts "[EE1CERT].to_java: #{[ee1_cert].to_java(java.util.List)[0].to_java.class}"
puts "[CA2CERT].to_java: #{[ca2_cert].to_java(java.util.List)[0].to_java.class}"
store = OpenSSL::X509::Store.new
# store.verify(ee1_cert, [ca2_cert])
store.verify(ee1_cert, [ee1_cert])
end
@JRubyMethod(rest = true)
public IRubyObject verify(final ThreadContext context, final IRubyObject[] args, final Block block) {
final IRubyObject mycert = args[0];
final RubyArray mychain = (RubyArray) args[1];
final Object nestedCert = mychain.get(0);
System.out.println("CERT CLASS: " + mycert.getClass());
System.out.println("NESTED CERT CLASS: " + nestedCert.getClass());
...
}
EE1CERT: OpenSSL::X509::Certificate
CA2CERT: OpenSSL::X509::Certificate
EE1CERT.to_java: Java::OrgBouncycastleJceProvider::X509CertificateObject
CA2CERT.to_java: Java::OrgBouncycastleJceProvider::X509CertificateObject
[EE1CERT].to_java: Java::OrgBouncycastleJceProvider::X509CertificateObject
[CA2CERT].to_java: Java::OrgBouncycastleJceProvider::X509CertificateObject
CERT CLASS: class org.jruby.ext.openssl.X509Cert
NESTED CERT CLASS: class org.bouncycastle.jce.provider.X509CertificateObject
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment