jruby-openssl 0.14.6-java → 0.15.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +23 -0
- data/Mavenfile +3 -3
- data/README.md +15 -14
- data/lib/jopenssl/version.rb +2 -2
- data/lib/jopenssl.jar +0 -0
- data/lib/openssl/buffering.rb +29 -27
- data/lib/openssl/hmac.rb +65 -0
- data/lib/openssl/ssl.rb +20 -20
- data/lib/openssl/x509.rb +46 -24
- data/lib/org/bouncycastle/bcpkix-jdk18on/1.78/bcpkix-jdk18on-1.78.jar +0 -0
- data/lib/org/bouncycastle/bcprov-jdk18on/{1.74/bcprov-jdk18on-1.74.jar → 1.78/bcprov-jdk18on-1.78.jar} +0 -0
- data/lib/org/bouncycastle/bctls-jdk18on/1.78/bctls-jdk18on-1.78.jar +0 -0
- data/lib/org/bouncycastle/bcutil-jdk18on/{1.74/bcutil-jdk18on-1.74.jar → 1.78/bcutil-jdk18on-1.78.jar} +0 -0
- data/pom.xml +13 -13
- metadata +11 -11
- data/lib/org/bouncycastle/bcpkix-jdk18on/1.74/bcpkix-jdk18on-1.74.jar +0 -0
- data/lib/org/bouncycastle/bctls-jdk18on/1.74/bctls-jdk18on-1.74.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73eeedd4b229adfc00f06a3732179a5f720e5c03224dc8c4e68f42755286d78a
|
4
|
+
data.tar.gz: c293cce41dbef1214cdfc4d7971990ab936cd37d62ea33752e9073c00284d0f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28daa5aa8813cfb50db8ae65b4b03c9ea8d968f8e4f0c68e28446801513d2bff3bf9b6f991521f87042028e8710a6424a64947b1db197309fe1f00e6ff8e9750
|
7
|
+
data.tar.gz: 72c86427b868059f3d97875d33bdab8daf75d6a34902053dc7559d80d2b352a903b0d19612d0b96ad8963f6980ed1e0ab927d9920aa3720c1d0e89c963b5082b
|
data/History.md
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
## 0.15.0
|
2
|
+
|
3
|
+
This version upgraded to latest Bouncy-Castle (1.78) and the minimum supported
|
4
|
+
JRuby is now 9.2.
|
5
|
+
|
6
|
+
* [refactor] propagate IOError from selector exception
|
7
|
+
* [fix] convert IOException to Ruby exception correctly
|
8
|
+
follow up on the fix (#242) in 0.14.6
|
9
|
+
* [fix] implement `OpenSSL::PKey::EC::Point#mul` and `#add` (#307)
|
10
|
+
* [fix] ASN.1 BitString pad bits being out of range
|
11
|
+
* [compat] support base64digest on `OpenSSL::HMAC`
|
12
|
+
* [compat] add `Buffering#getbyte` for `SSLSocket`
|
13
|
+
* [refactor] drop (unused) Config native impl
|
14
|
+
* [refactor] less locking when there's a shared SSLContext
|
15
|
+
* [fix] encoding of ASN1::Null primitive to_der
|
16
|
+
* [fix] ASN.1 tagged object tag-class encoding/decoding
|
17
|
+
* [fix] ASN1 primitive tagging (encoding) part (#122)
|
18
|
+
* [fix] encoding/decoding of all ASN1 string types
|
19
|
+
* [fix] ASN1Data encoding with Array primitive value (#119)
|
20
|
+
* [refactor] drop security restriction JCE work-around
|
21
|
+
* [refactor] drop long deprecated OpenSSLReal Java class
|
22
|
+
* [deps] upgrade BC to version 1.78
|
23
|
+
|
1
24
|
## 0.14.6
|
2
25
|
|
3
26
|
* [compat] OpenSSL::ConfigError and DEFAULT_CONFIG_FILE (#304)
|
data/Mavenfile
CHANGED
@@ -107,15 +107,15 @@ supported_bc_versions = %w{ 1.60 1.61 1.62 1.63 1.64 1.65 1.66 1.67 1.68 }
|
|
107
107
|
default_bc_version = File.read File.expand_path('lib/jopenssl/version.rb', File.dirname(__FILE__))
|
108
108
|
default_bc_version = default_bc_version[/BOUNCY_CASTLE_VERSION\s?=\s?'(.*?)'/, 1]
|
109
109
|
|
110
|
-
properties( 'jruby.plugins.version' => '
|
110
|
+
properties( 'jruby.plugins.version' => '3.0.2',
|
111
111
|
'jruby.switches' => '-W0', # https://github.com/torquebox/jruby-maven-plugins/issues/94
|
112
112
|
'bc.versions' => default_bc_version,
|
113
113
|
'invoker.test' => '${bc.versions}',
|
114
114
|
# allow to skip all tests with -Dmaven.test.skip
|
115
115
|
'invoker.skip' => '${maven.test.skip}',
|
116
116
|
'runit.dir' => 'src/test/ruby/**/test_*.rb',
|
117
|
-
'mavengem.wagon.version' => '
|
118
|
-
'mavengem-wagon.version' => '
|
117
|
+
'mavengem.wagon.version' => '2.0.2', # for jruby plugin
|
118
|
+
'mavengem-wagon.version' => '2.0.2', # for polyglot-ruby
|
119
119
|
# use this version of jruby for the jruby-maven-plugins
|
120
120
|
'jruby.versions' => MVN_JRUBY_VERSION, 'jruby.version' => MVN_JRUBY_VERSION,
|
121
121
|
# dump pom.xml when running 'rmvn'
|
data/README.md
CHANGED
@@ -14,20 +14,21 @@ the JRuby [mailing list][1] or the [bug tracker][2].
|
|
14
14
|
## Compatibility
|
15
15
|
|
16
16
|
| JRuby-OpenSSL | JRuby compat | JVM compat | supported BC |
|
17
|
-
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
17
|
+
|---------------|:------------:|-----------:|-------------:|
|
18
|
+
| 0.9.6 | 1.6.8-9.0.2 | Java 6-8 | 1.47-1.50 |
|
19
|
+
| 0.9.12 | 1.6.8-9.0.5 | Java 6-8 | 1.47-1.52 |
|
20
|
+
| 0.9.13 | 1.6.8-9.1.2 | Java 6-8 | 1.49-1.52 |
|
21
|
+
| 0.9.14 | 1.6.8-9.1.5 | Java 6-8 | 1.49-1.54 |
|
22
|
+
| 0.9.17 | 1.6.8-9.1.5 | Java 6-8 | 1.50-1.54 |
|
23
|
+
| ~>0.9.18 | 1.6.8-9.1.x | Java 6-8 | 1.50-1.55 |
|
24
|
+
| 0.10.0 | 1.7.20-9.2.x | Java 7-10 | 1.55-1.59 |
|
25
|
+
| 0.10.3 | 1.7.20-9.2.x | Java 7-11 | 1.56-1.62 |
|
26
|
+
| ~>0.10.5 | 1.7.20-9.3.x | Java 7-11 | 1.60-1.68 |
|
27
|
+
| ~>0.11.x | 9.0.x-9.3.x | Java 7-11 | 1.62-1.68 |
|
28
|
+
| ~>0.12.x | 9.1.x-9.3.x | Java 8-15 | 1.65-1.68 |
|
29
|
+
| ~>0.13.x | 9.1.x-9.4.x | Java 8-17 | 1.68-1.69 |
|
30
|
+
| ~>0.14.x | 9.1.x-9.4.x | Java 8-21 | 1.71-1.74 |
|
31
|
+
| ~>0.15.x | 9.2.x-9.4.x | Java 8-21 | 1.76-1.78 |
|
31
32
|
|
32
33
|
NOTE: backwards JRuby compatibility was not handled for versions <= **0.9.6**
|
33
34
|
|
data/lib/jopenssl/version.rb
CHANGED
data/lib/jopenssl.jar
CHANGED
Binary file
|
data/lib/openssl/buffering.rb
CHANGED
@@ -31,7 +31,7 @@ module OpenSSL::Buffering
|
|
31
31
|
|
32
32
|
force_encoding(BINARY)
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def << string
|
36
36
|
if string.encoding == BINARY
|
37
37
|
super(string)
|
@@ -93,14 +93,20 @@ module OpenSSL::Buffering
|
|
93
93
|
nil
|
94
94
|
else
|
95
95
|
size = @rbuffer.size unless size
|
96
|
-
|
97
|
-
@rbuffer[0, size] = ""
|
98
|
-
ret
|
96
|
+
@rbuffer.slice!(0, size)
|
99
97
|
end
|
100
98
|
end
|
101
99
|
|
102
100
|
public
|
103
101
|
|
102
|
+
# call-seq:
|
103
|
+
# ssl.getbyte => 81
|
104
|
+
#
|
105
|
+
# Get the next 8bit byte from `ssl`. Returns `nil` on EOF
|
106
|
+
def getbyte
|
107
|
+
read(1)&.ord
|
108
|
+
end
|
109
|
+
|
104
110
|
##
|
105
111
|
# Reads _size_ bytes from the stream. If _buf_ is provided it must
|
106
112
|
# reference a string which will receive the data.
|
@@ -135,14 +141,7 @@ module OpenSSL::Buffering
|
|
135
141
|
# See IO#readpartial for full details.
|
136
142
|
|
137
143
|
def readpartial(maxlen, buf=nil)
|
138
|
-
|
139
|
-
if buf
|
140
|
-
buf.clear
|
141
|
-
return buf
|
142
|
-
else
|
143
|
-
return ""
|
144
|
-
end
|
145
|
-
end
|
144
|
+
# JRuby: sysread does `maxlen == 0` short-circuit check internally
|
146
145
|
if @rbuffer.empty?
|
147
146
|
begin
|
148
147
|
return sysread(maxlen, buf)
|
@@ -150,12 +149,7 @@ module OpenSSL::Buffering
|
|
150
149
|
retry
|
151
150
|
end
|
152
151
|
end
|
153
|
-
|
154
|
-
if buf
|
155
|
-
buf.replace(ret)
|
156
|
-
ret = buf
|
157
|
-
end
|
158
|
-
ret
|
152
|
+
do_consume_rbuff(maxlen, buf)
|
159
153
|
end
|
160
154
|
|
161
155
|
##
|
@@ -193,6 +187,15 @@ module OpenSSL::Buffering
|
|
193
187
|
# it will return +nil+ instead of raising EOFError.
|
194
188
|
|
195
189
|
def read_nonblock(maxlen, buf=nil, exception: true)
|
190
|
+
# JRuby: sysread does `maxlen == 0` short-circuit check internally
|
191
|
+
if @rbuffer.empty?
|
192
|
+
return sysread_nonblock(maxlen, buf, exception: exception)
|
193
|
+
end
|
194
|
+
do_consume_rbuff(maxlen, buf)
|
195
|
+
end
|
196
|
+
|
197
|
+
# @private
|
198
|
+
def do_consume_rbuff(maxlen, buf)
|
196
199
|
if maxlen == 0
|
197
200
|
if buf
|
198
201
|
buf.clear
|
@@ -201,9 +204,7 @@ module OpenSSL::Buffering
|
|
201
204
|
return ""
|
202
205
|
end
|
203
206
|
end
|
204
|
-
|
205
|
-
return sysread_nonblock(maxlen, buf, exception: exception)
|
206
|
-
end
|
207
|
+
|
207
208
|
ret = consume_rbuff(maxlen)
|
208
209
|
if buf
|
209
210
|
buf.replace(ret)
|
@@ -211,6 +212,7 @@ module OpenSSL::Buffering
|
|
211
212
|
end
|
212
213
|
ret
|
213
214
|
end
|
215
|
+
private :do_consume_rbuff
|
214
216
|
|
215
217
|
##
|
216
218
|
# Reads the next "line" from the stream. Lines are separated by _eol_. If
|
@@ -335,9 +337,8 @@ module OpenSSL::Buffering
|
|
335
337
|
# buffer is flushed to the underlying socket.
|
336
338
|
|
337
339
|
def do_write(s)
|
338
|
-
@wbuffer
|
340
|
+
@wbuffer ||= Buffer.new
|
339
341
|
@wbuffer << s
|
340
|
-
@wbuffer.force_encoding(Encoding::BINARY)
|
341
342
|
@sync ||= false
|
342
343
|
if @sync or @wbuffer.size > BLOCK_SIZE
|
343
344
|
until @wbuffer.empty?
|
@@ -424,11 +425,12 @@ module OpenSSL::Buffering
|
|
424
425
|
s = Buffer.new
|
425
426
|
if args.empty?
|
426
427
|
s << "\n"
|
428
|
+
else
|
429
|
+
args.each do |arg|
|
430
|
+
s << arg.to_s
|
431
|
+
s.sub!(/(?<!\n)\z/, "\n")
|
432
|
+
end
|
427
433
|
end
|
428
|
-
args.each{|arg|
|
429
|
-
s << arg.to_s
|
430
|
-
s.sub!(/(?<!\n)\z/, "\n")
|
431
|
-
}
|
432
434
|
do_write(s)
|
433
435
|
nil
|
434
436
|
end
|
data/lib/openssl/hmac.rb
CHANGED
@@ -9,5 +9,70 @@ module OpenSSL
|
|
9
9
|
|
10
10
|
OpenSSL.fixed_length_secure_compare(self.digest, other.digest)
|
11
11
|
end
|
12
|
+
|
13
|
+
# :call-seq:
|
14
|
+
# hmac.base64digest -> string
|
15
|
+
#
|
16
|
+
# Returns the authentication code an a Base64-encoded string.
|
17
|
+
def base64digest
|
18
|
+
[digest].pack("m0")
|
19
|
+
end
|
20
|
+
|
21
|
+
class << self
|
22
|
+
# :call-seq:
|
23
|
+
# HMAC.digest(digest, key, data) -> aString
|
24
|
+
#
|
25
|
+
# Returns the authentication code as a binary string. The _digest_ parameter
|
26
|
+
# specifies the digest algorithm to use. This may be a String representing
|
27
|
+
# the algorithm name or an instance of OpenSSL::Digest.
|
28
|
+
#
|
29
|
+
# === Example
|
30
|
+
# key = 'key'
|
31
|
+
# data = 'The quick brown fox jumps over the lazy dog'
|
32
|
+
#
|
33
|
+
# hmac = OpenSSL::HMAC.digest('SHA1', key, data)
|
34
|
+
# #=> "\xDE|\x9B\x85\xB8\xB7\x8A\xA6\xBC\x8Az6\xF7\n\x90p\x1C\x9D\xB4\xD9"
|
35
|
+
def digest(digest, key, data)
|
36
|
+
hmac = new(key, digest)
|
37
|
+
hmac << data
|
38
|
+
hmac.digest
|
39
|
+
end unless method_defined?(:digest) # JRuby
|
40
|
+
|
41
|
+
# :call-seq:
|
42
|
+
# HMAC.hexdigest(digest, key, data) -> aString
|
43
|
+
#
|
44
|
+
# Returns the authentication code as a hex-encoded string. The _digest_
|
45
|
+
# parameter specifies the digest algorithm to use. This may be a String
|
46
|
+
# representing the algorithm name or an instance of OpenSSL::Digest.
|
47
|
+
#
|
48
|
+
# === Example
|
49
|
+
# key = 'key'
|
50
|
+
# data = 'The quick brown fox jumps over the lazy dog'
|
51
|
+
#
|
52
|
+
# hmac = OpenSSL::HMAC.hexdigest('SHA1', key, data)
|
53
|
+
# #=> "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"
|
54
|
+
def hexdigest(digest, key, data)
|
55
|
+
hmac = new(key, digest)
|
56
|
+
hmac << data
|
57
|
+
hmac.hexdigest
|
58
|
+
end unless method_defined?(:hexdigest) # JRuby
|
59
|
+
|
60
|
+
# :call-seq:
|
61
|
+
# HMAC.base64digest(digest, key, data) -> aString
|
62
|
+
#
|
63
|
+
# Returns the authentication code as a Base64-encoded string. The _digest_
|
64
|
+
# parameter specifies the digest algorithm to use. This may be a String
|
65
|
+
# representing the algorithm name or an instance of OpenSSL::Digest.
|
66
|
+
#
|
67
|
+
# === Example
|
68
|
+
# key = 'key'
|
69
|
+
# data = 'The quick brown fox jumps over the lazy dog'
|
70
|
+
#
|
71
|
+
# hmac = OpenSSL::HMAC.base64digest('SHA1', key, data)
|
72
|
+
# #=> "3nybhbi3iqa8ino29wqQcBydtNk="
|
73
|
+
def base64digest(digest, key, data)
|
74
|
+
[digest(digest, key, data)].pack("m0")
|
75
|
+
end
|
76
|
+
end
|
12
77
|
end
|
13
78
|
end
|
data/lib/openssl/ssl.rb
CHANGED
@@ -86,15 +86,17 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
|
|
86
86
|
DEFAULT_CERT_STORE.set_default_paths
|
87
87
|
DEFAULT_CERT_STORE.flags = OpenSSL::X509::V_FLAG_CRL_CHECK_ALL
|
88
88
|
|
89
|
-
# A callback invoked when DH parameters are required
|
89
|
+
# A callback invoked when DH parameters are required for ephemeral DH key
|
90
|
+
# exchange.
|
90
91
|
#
|
91
|
-
# The callback is invoked with the
|
92
|
+
# The callback is invoked with the SSLSocket, a
|
92
93
|
# flag indicating the use of an export cipher and the keylength
|
93
94
|
# required.
|
94
95
|
#
|
95
96
|
# The callback must return an OpenSSL::PKey::DH instance of the correct
|
96
97
|
# key length.
|
97
|
-
|
98
|
+
#
|
99
|
+
# <b>Deprecated in version 3.0.</b> Use #tmp_dh= instead.
|
98
100
|
attr_accessor :tmp_dh_callback
|
99
101
|
|
100
102
|
# A callback invoked at connect time to distinguish between multiple
|
@@ -117,6 +119,8 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
|
|
117
119
|
# def initialize(version = nil)
|
118
120
|
# self.options |= OpenSSL::SSL::OP_ALL
|
119
121
|
# self.ssl_version = version if version
|
122
|
+
# self.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
123
|
+
# self.verify_hostname = false
|
120
124
|
# end
|
121
125
|
|
122
126
|
##
|
@@ -355,18 +359,18 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
|
|
355
359
|
include Buffering
|
356
360
|
include SocketForwarder
|
357
361
|
|
358
|
-
#
|
359
|
-
|
360
|
-
#
|
361
|
-
#
|
362
|
-
#
|
363
|
-
|
364
|
-
#
|
365
|
-
#
|
366
|
-
|
367
|
-
#
|
368
|
-
#
|
369
|
-
#
|
362
|
+
#attr_reader :hostname
|
363
|
+
|
364
|
+
# The underlying IO object.
|
365
|
+
#attr_reader :io
|
366
|
+
#alias :to_io :io
|
367
|
+
|
368
|
+
# The SSLContext object used in this connection.
|
369
|
+
#attr_reader :context
|
370
|
+
|
371
|
+
# Whether to close the underlying socket as well, when the SSL/TLS
|
372
|
+
# connection is shut down. This defaults to +false+.
|
373
|
+
#attr_accessor :sync_close
|
370
374
|
|
371
375
|
# call-seq:
|
372
376
|
# ssl.sysclose => nil
|
@@ -379,7 +383,7 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
|
|
379
383
|
return if closed?
|
380
384
|
stop
|
381
385
|
io.close if sync_close
|
382
|
-
end
|
386
|
+
end
|
383
387
|
|
384
388
|
# call-seq:
|
385
389
|
# ssl.post_connection_check(hostname) -> true
|
@@ -431,10 +435,6 @@ YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
|
|
431
435
|
@context.tmp_dh_callback || OpenSSL::SSL::SSLContext::DEFAULT_TMP_DH_CALLBACK
|
432
436
|
end
|
433
437
|
|
434
|
-
def tmp_ecdh_callback
|
435
|
-
@context.tmp_ecdh_callback
|
436
|
-
end
|
437
|
-
|
438
438
|
def session_new_cb
|
439
439
|
@context.session_new_cb
|
440
440
|
end
|
data/lib/openssl/x509.rb
CHANGED
@@ -50,20 +50,20 @@ module OpenSSL
|
|
50
50
|
to_der == other.to_der
|
51
51
|
end
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
53
|
+
def to_s # "oid = critical, value"
|
54
|
+
str = self.oid
|
55
|
+
str << " = "
|
56
|
+
str << "critical, " if self.critical?
|
57
|
+
str << self.value.gsub(/\n/, ", ")
|
58
|
+
end
|
59
|
+
|
60
|
+
def to_h # {"oid"=>sn|ln, "value"=>value, "critical"=>true|false}
|
61
|
+
{"oid"=>self.oid,"value"=>self.value,"critical"=>self.critical?}
|
62
|
+
end
|
63
|
+
|
64
|
+
def to_a
|
65
|
+
[ self.oid, self.value, self.critical? ]
|
66
|
+
end
|
67
67
|
|
68
68
|
module Helpers
|
69
69
|
def find_extension(oid)
|
@@ -187,17 +187,17 @@ module OpenSSL
|
|
187
187
|
|
188
188
|
private
|
189
189
|
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
aia_asn1 = ASN1.decode(ext.value_der)
|
195
|
-
if ext.critical? || aia_asn1.tag_class != :UNIVERSAL || aia_asn1.tag != ASN1::SEQUENCE
|
196
|
-
raise ASN1::ASN1Error, "invalid extension"
|
197
|
-
end
|
190
|
+
def parse_aia_asn1
|
191
|
+
ext = find_extension("authorityInfoAccess")
|
192
|
+
return nil if ext.nil?
|
198
193
|
|
199
|
-
|
194
|
+
aia_asn1 = ASN1.decode(ext.value_der)
|
195
|
+
if ext.critical? || aia_asn1.tag_class != :UNIVERSAL || aia_asn1.tag != ASN1::SEQUENCE
|
196
|
+
raise ASN1::ASN1Error, "invalid extension"
|
200
197
|
end
|
198
|
+
|
199
|
+
aia_asn1
|
200
|
+
end
|
201
201
|
end
|
202
202
|
end
|
203
203
|
|
@@ -265,7 +265,7 @@ module OpenSSL
|
|
265
265
|
next
|
266
266
|
elsif remain.length > 2 && remain[0] == ?+
|
267
267
|
raise OpenSSL::X509::NameError,
|
268
|
-
|
268
|
+
"multi-valued RDN is not supported: #{dn}"
|
269
269
|
elsif remain.empty?
|
270
270
|
break
|
271
271
|
end
|
@@ -279,11 +279,29 @@ module OpenSSL
|
|
279
279
|
end
|
280
280
|
|
281
281
|
class << self
|
282
|
+
# Parses the UTF-8 string representation of a distinguished name,
|
283
|
+
# according to RFC 2253.
|
284
|
+
#
|
285
|
+
# See also #to_utf8 for the opposite operation.
|
282
286
|
def parse_rfc2253(str, template=OBJECT_TYPE_TEMPLATE)
|
283
287
|
ary = OpenSSL::X509::Name::RFC2253DN.scan(str)
|
284
288
|
self.new(ary, template)
|
285
289
|
end
|
286
290
|
|
291
|
+
# Parses the string representation of a distinguished name. Two
|
292
|
+
# different forms are supported:
|
293
|
+
#
|
294
|
+
# - \OpenSSL format (<tt>X509_NAME_oneline()</tt>) used by
|
295
|
+
# <tt>#to_s</tt>. For example: <tt>/DC=com/DC=example/CN=nobody</tt>
|
296
|
+
# - \OpenSSL format (<tt>X509_NAME_print()</tt>)
|
297
|
+
# used by <tt>#to_s(OpenSSL::X509::Name::COMPAT)</tt>. For example:
|
298
|
+
# <tt>DC=com, DC=example, CN=nobody</tt>
|
299
|
+
#
|
300
|
+
# Neither of them is standardized and has quirks and inconsistencies
|
301
|
+
# in handling of escaped characters or multi-valued RDNs.
|
302
|
+
#
|
303
|
+
# Use of this method is discouraged in new applications. See
|
304
|
+
# Name.parse_rfc2253 and #to_utf8 for the alternative.
|
287
305
|
def parse_openssl(str, template=OBJECT_TYPE_TEMPLATE)
|
288
306
|
if str.start_with?("/")
|
289
307
|
# /A=B/C=D format
|
@@ -338,6 +356,10 @@ module OpenSSL
|
|
338
356
|
q.text 'not_after='; q.pp self.not_after
|
339
357
|
}
|
340
358
|
end
|
359
|
+
|
360
|
+
def self.load_file(path)
|
361
|
+
load(File.binread(path))
|
362
|
+
end
|
341
363
|
end
|
342
364
|
|
343
365
|
class CRL
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/pom.xml
CHANGED
@@ -11,7 +11,7 @@ DO NOT MODIFY - GENERATED CODE
|
|
11
11
|
<modelVersion>4.0.0</modelVersion>
|
12
12
|
<groupId>rubygems</groupId>
|
13
13
|
<artifactId>jruby-openssl</artifactId>
|
14
|
-
<version>0.
|
14
|
+
<version>0.15.0</version>
|
15
15
|
<packaging>gem</packaging>
|
16
16
|
<name>JRuby OpenSSL</name>
|
17
17
|
<description>JRuby-OpenSSL is an add-on gem for JRuby that emulates the Ruby OpenSSL native library.</description>
|
@@ -60,15 +60,15 @@ DO NOT MODIFY - GENERATED CODE
|
|
60
60
|
</snapshotRepository>
|
61
61
|
</distributionManagement>
|
62
62
|
<properties>
|
63
|
-
<bc.versions>1.
|
63
|
+
<bc.versions>1.78</bc.versions>
|
64
64
|
<invoker.skip>${maven.test.skip}</invoker.skip>
|
65
65
|
<invoker.test>${bc.versions}</invoker.test>
|
66
|
-
<jruby.plugins.version>
|
66
|
+
<jruby.plugins.version>3.0.2</jruby.plugins.version>
|
67
67
|
<jruby.switches>-W0</jruby.switches>
|
68
68
|
<jruby.version>9.2.19.0</jruby.version>
|
69
69
|
<jruby.versions>9.2.19.0</jruby.versions>
|
70
|
-
<mavengem-wagon.version>
|
71
|
-
<mavengem.wagon.version>
|
70
|
+
<mavengem-wagon.version>2.0.2</mavengem-wagon.version>
|
71
|
+
<mavengem.wagon.version>2.0.2</mavengem.wagon.version>
|
72
72
|
<polyglot.dump.pom>pom.xml</polyglot.dump.pom>
|
73
73
|
<polyglot.dump.readonly>false</polyglot.dump.readonly>
|
74
74
|
<runit.dir>src/test/ruby/**/test_*.rb</runit.dir>
|
@@ -77,22 +77,22 @@ DO NOT MODIFY - GENERATED CODE
|
|
77
77
|
<dependency>
|
78
78
|
<groupId>org.bouncycastle</groupId>
|
79
79
|
<artifactId>bcprov-jdk18on</artifactId>
|
80
|
-
<version>1.
|
80
|
+
<version>1.78</version>
|
81
81
|
</dependency>
|
82
82
|
<dependency>
|
83
83
|
<groupId>org.bouncycastle</groupId>
|
84
84
|
<artifactId>bcpkix-jdk18on</artifactId>
|
85
|
-
<version>1.
|
85
|
+
<version>1.78</version>
|
86
86
|
</dependency>
|
87
87
|
<dependency>
|
88
88
|
<groupId>org.bouncycastle</groupId>
|
89
89
|
<artifactId>bctls-jdk18on</artifactId>
|
90
|
-
<version>1.
|
90
|
+
<version>1.78</version>
|
91
91
|
</dependency>
|
92
92
|
<dependency>
|
93
93
|
<groupId>org.bouncycastle</groupId>
|
94
94
|
<artifactId>bcutil-jdk18on</artifactId>
|
95
|
-
<version>1.
|
95
|
+
<version>1.78</version>
|
96
96
|
</dependency>
|
97
97
|
<dependency>
|
98
98
|
<groupId>org.jruby</groupId>
|
@@ -122,12 +122,12 @@ DO NOT MODIFY - GENERATED CODE
|
|
122
122
|
<build>
|
123
123
|
<extensions>
|
124
124
|
<extension>
|
125
|
-
<groupId>org.
|
125
|
+
<groupId>org.jruby.maven</groupId>
|
126
126
|
<artifactId>mavengem-wagon</artifactId>
|
127
127
|
<version>${mavengem.wagon.version}</version>
|
128
128
|
</extension>
|
129
129
|
<extension>
|
130
|
-
<groupId>
|
130
|
+
<groupId>org.jruby.maven</groupId>
|
131
131
|
<artifactId>gem-with-jar-extension</artifactId>
|
132
132
|
<version>${jruby.plugins.version}</version>
|
133
133
|
</extension>
|
@@ -181,7 +181,7 @@ DO NOT MODIFY - GENERATED CODE
|
|
181
181
|
</executions>
|
182
182
|
</plugin>
|
183
183
|
<plugin>
|
184
|
-
<groupId>
|
184
|
+
<groupId>org.jruby.maven</groupId>
|
185
185
|
<artifactId>gem-maven-plugin</artifactId>
|
186
186
|
<version>${jruby.plugins.version}</version>
|
187
187
|
<executions>
|
@@ -351,7 +351,7 @@ DO NOT MODIFY - GENERATED CODE
|
|
351
351
|
</executions>
|
352
352
|
</plugin>
|
353
353
|
<plugin>
|
354
|
-
<groupId>
|
354
|
+
<groupId>org.jruby.maven</groupId>
|
355
355
|
<artifactId>runit-maven-plugin</artifactId>
|
356
356
|
<version>${jruby.plugins.version}</version>
|
357
357
|
<executions>
|
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.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Karol Bucek
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-
|
13
|
+
date: 2024-06-21 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: JRuby-OpenSSL is an add-on gem for JRuby that emulates the Ruby OpenSSL
|
16
16
|
native library.
|
@@ -42,10 +42,10 @@ files:
|
|
42
42
|
- lib/openssl/pkey.rb
|
43
43
|
- lib/openssl/ssl.rb
|
44
44
|
- lib/openssl/x509.rb
|
45
|
-
- lib/org/bouncycastle/bcpkix-jdk18on/1.
|
46
|
-
- lib/org/bouncycastle/bcprov-jdk18on/1.
|
47
|
-
- lib/org/bouncycastle/bctls-jdk18on/1.
|
48
|
-
- lib/org/bouncycastle/bcutil-jdk18on/1.
|
45
|
+
- lib/org/bouncycastle/bcpkix-jdk18on/1.78/bcpkix-jdk18on-1.78.jar
|
46
|
+
- lib/org/bouncycastle/bcprov-jdk18on/1.78/bcprov-jdk18on-1.78.jar
|
47
|
+
- lib/org/bouncycastle/bctls-jdk18on/1.78/bctls-jdk18on-1.78.jar
|
48
|
+
- lib/org/bouncycastle/bcutil-jdk18on/1.78/bcutil-jdk18on-1.78.jar
|
49
49
|
- pom.xml
|
50
50
|
homepage: https://github.com/jruby/jruby-openssl
|
51
51
|
licenses:
|
@@ -61,17 +61,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
61
|
requirements:
|
62
62
|
- - ">="
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: 2.
|
64
|
+
version: 2.5.0
|
65
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
requirements:
|
71
|
-
- jar org.bouncycastle:bcprov-jdk18on, 1.
|
72
|
-
- jar org.bouncycastle:bcpkix-jdk18on, 1.
|
73
|
-
- jar org.bouncycastle:bctls-jdk18on, 1.
|
74
|
-
- jar org.bouncycastle:bcutil-jdk18on, 1.
|
71
|
+
- jar org.bouncycastle:bcprov-jdk18on, 1.78
|
72
|
+
- jar org.bouncycastle:bcpkix-jdk18on, 1.78
|
73
|
+
- jar org.bouncycastle:bctls-jdk18on, 1.78
|
74
|
+
- jar org.bouncycastle:bcutil-jdk18on, 1.78
|
75
75
|
rubygems_version: 3.1.6
|
76
76
|
signing_key:
|
77
77
|
specification_version: 4
|
Binary file
|
Binary file
|