jruby-openssl 0.8.0.pre2 → 0.8.0.pre3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Manifest.txt CHANGED
@@ -35,8 +35,10 @@ lib/1.9/openssl/x509.rb
35
35
  lib/shared/jopenssl
36
36
  lib/shared/jopenssl.jar
37
37
  lib/shared/jruby-openssl.rb
38
+ lib/shared/openssl
38
39
  lib/shared/openssl.rb
39
40
  lib/shared/jopenssl/version.rb
41
+ lib/shared/openssl/pkcs12.rb
40
42
  test/1.8
41
43
  test/1.9
42
44
  test/cert_with_ec_pk.cer
Binary file
@@ -1,5 +1,5 @@
1
1
  module Jopenssl
2
2
  module Version
3
- VERSION = "0.8.0.pre2"
3
+ VERSION = "0.8.0.pre3"
4
4
  end
5
5
  end
@@ -0,0 +1,50 @@
1
+ require 'java'
2
+
3
+ module OpenSSL
4
+ class PKCS12
5
+ java_import java.io.StringReader
6
+ java_import java.io.StringBufferInputStream
7
+ java_import java.security.cert.CertificateFactory
8
+ java_import java.security.KeyStore
9
+ java_import java.io.ByteArrayOutputStream
10
+ java_import org.bouncycastle.openssl.PEMReader
11
+
12
+ java.security.Security.add_provider(org.bouncycastle.jce.provider.BouncyCastleProvider.new)
13
+
14
+ def self.create(pass, name, key, cert)
15
+ pkcs12 = self.new(pass, name, key, cert)
16
+ pkcs12.generate
17
+ pkcs12
18
+ end
19
+
20
+ attr_reader :key, :certificate
21
+
22
+ def initialize(pass, name, key, cert)
23
+ @pass = pass
24
+ @name = name
25
+ @key = key
26
+ @certificate = cert
27
+ end
28
+
29
+ def generate
30
+ key_reader = StringReader.new(key.to_pem)
31
+ key_pair = PEMReader.new(key_reader).read_object
32
+
33
+ cert_input_stream = StringBufferInputStream.new(certificate.to_pem)
34
+ certs = CertificateFactory.get_instance("X.509").generate_certificates(cert_input_stream)
35
+
36
+ store = KeyStore.get_instance("PKCS12", "BC")
37
+ store.load(nil, nil)
38
+ store.set_key_entry(@name, key_pair.get_private, nil, certs.to_array(Java::java.security.cert.Certificate[certs.size].new))
39
+
40
+ pkcs12_output_stream = ByteArrayOutputStream.new
41
+ store.store(pkcs12_output_stream, @pass.to_java.to_char_array)
42
+
43
+ @der = String.from_java_bytes(pkcs12_output_stream.to_byte_array)
44
+ end
45
+
46
+ def to_der
47
+ @der
48
+ end
49
+ end
50
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jruby-openssl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.pre2
4
+ version: 0.8.0.pre3
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -85,6 +85,7 @@ files:
85
85
  - lib/shared/jruby-openssl.rb
86
86
  - lib/shared/openssl.rb
87
87
  - lib/shared/jopenssl/version.rb
88
+ - lib/shared/openssl/pkcs12.rb
88
89
  - test/cert_with_ec_pk.cer
89
90
  - test/test_all.rb
90
91
  - test/test_certificate.rb