jruby-openssl 0.14.6-java → 0.15.0-java
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.
- 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
|