jruby-openssl 0.11.0-java → 0.13.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 +5 -5
- data/History.md +43 -0
- data/Mavenfile +21 -26
- data/README.md +3 -0
- data/Rakefile +21 -35
- data/lib/jopenssl/load.rb +49 -14
- data/lib/jopenssl/version.rb +2 -1
- data/lib/jopenssl.jar +0 -0
- data/lib/openssl/bn.rb +40 -9
- data/lib/openssl/buffering.rb +478 -9
- data/lib/openssl/cipher.rb +67 -9
- data/lib/openssl/config.rb +496 -12
- data/lib/openssl/digest.rb +73 -9
- data/lib/openssl/hmac.rb +13 -0
- data/lib/openssl/marshal.rb +30 -0
- data/lib/openssl/pkcs5.rb +3 -3
- data/lib/openssl/pkey.rb +42 -5
- data/lib/openssl/ssl.rb +543 -9
- data/lib/openssl/x509.rb +369 -9
- data/lib/openssl.rb +3 -1
- data/pom.xml +38 -129
- metadata +9 -44
- data/lib/jopenssl19/openssl/bn.rb +0 -29
- data/lib/jopenssl19/openssl/buffering.rb +0 -449
- data/lib/jopenssl19/openssl/cipher.rb +0 -28
- data/lib/jopenssl19/openssl/config.rb +0 -472
- data/lib/jopenssl19/openssl/digest.rb +0 -32
- data/lib/jopenssl19/openssl/ssl-internal.rb +0 -223
- data/lib/jopenssl19/openssl/ssl.rb +0 -2
- data/lib/jopenssl19/openssl/x509-internal.rb +0 -115
- data/lib/jopenssl19/openssl/x509.rb +0 -2
- data/lib/jopenssl19/openssl.rb +0 -22
- data/lib/jopenssl21/openssl/bn.rb +0 -28
- data/lib/jopenssl21/openssl/buffering.rb +0 -1
- data/lib/jopenssl21/openssl/cipher.rb +0 -1
- data/lib/jopenssl21/openssl/config.rb +0 -1
- data/lib/jopenssl21/openssl/digest.rb +0 -1
- data/lib/jopenssl21/openssl/ssl.rb +0 -1
- data/lib/jopenssl21/openssl/x509.rb +0 -119
- data/lib/jopenssl21/openssl.rb +0 -22
- data/lib/jopenssl22/openssl/bn.rb +0 -39
- data/lib/jopenssl22/openssl/buffering.rb +0 -456
- data/lib/jopenssl22/openssl/cipher.rb +0 -28
- data/lib/jopenssl22/openssl/config.rb +0 -313
- data/lib/jopenssl22/openssl/digest.rb +0 -54
- data/lib/jopenssl22/openssl/ssl.rb +0 -330
- data/lib/jopenssl22/openssl/x509.rb +0 -139
- data/lib/jopenssl22/openssl.rb +0 -22
- data/lib/jopenssl23/openssl/bn.rb +0 -38
- data/lib/jopenssl23/openssl/buffering.rb +0 -455
- data/lib/jopenssl23/openssl/cipher.rb +0 -25
- data/lib/jopenssl23/openssl/config.rb +0 -474
- data/lib/jopenssl23/openssl/digest.rb +0 -43
- data/lib/jopenssl23/openssl/pkey.rb +0 -25
- data/lib/jopenssl23/openssl/ssl.rb +0 -508
- data/lib/jopenssl23/openssl/x509.rb +0 -208
- data/lib/jopenssl23/openssl.rb +0 -19
- data/lib/openssl/ssl-internal.rb +0 -5
- data/lib/openssl/x509-internal.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 84f4d596b14dec42d317e4dbce655038025b0fd08901240b63400db474afd86c
|
4
|
+
data.tar.gz: b7413e3da9dd4afda4f79093bc5d9993d79286ba34297b2a5256e7ae05b779d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c78e50af357bf7adcdaac3ee38b437d17a7a83b98d664cc48dec957828b5e3aa15bb4378900a9796e7efe6f94fd1e3dbc54843e48fa1a4fe9a5b5f73806a4709
|
7
|
+
data.tar.gz: b0a8990ed96db10431e440f1f2551686efa4cc04d902a5ecdc89ec5b11c81fc5b9f814da50d0bd74ae8bcb9bcd0fa8726494f4f1912cc2d5455dad6197ac4303
|
data/History.md
CHANGED
@@ -1,3 +1,46 @@
|
|
1
|
+
## 0.13.0
|
2
|
+
|
3
|
+
* [fix] ASN1::EndOfContent ancestor hierarchy (#228)
|
4
|
+
* [fix] handle X509::Name type conversion (#206)
|
5
|
+
* [fix] handle invalid type when creating `X509::Name`
|
6
|
+
* [fix] `OpenSSL::X509::Name#inspect` compatibility
|
7
|
+
* [fix] escaping with `OpenSSL::X509::Name::RFC2253`
|
8
|
+
* [feat] implement `OpenSSL::X509::Name#to_utf8`
|
9
|
+
* [fix] compat missing `OpenSSL::SSL::OP_NO_TLSv1_3`
|
10
|
+
* [refactor] performance - do not encode/decode cert objects
|
11
|
+
* [fix] make sure `Context.ciphers` are not mutated (#219)
|
12
|
+
* [feat] support `to_java` conversion for CRL
|
13
|
+
* [feat] support `to_java` protocol for PKey (#250)
|
14
|
+
|
15
|
+
## 0.12.2
|
16
|
+
|
17
|
+
* [fix] work-around JRuby 9.2 autoload behavior (#248)
|
18
|
+
to be able to install jruby-openssl >= 0.12 on JRuby 9.2
|
19
|
+
while the default gem (shipped with JRuby) is < 0.12
|
20
|
+
* [feat] support alpn negotiation in ssl context (#247)
|
21
|
+
* [feat] support Java cipher names on `SSLContext#ciphers=`
|
22
|
+
* [fix] properly handle `require_jar` fallback
|
23
|
+
|
24
|
+
## 0.12.1
|
25
|
+
|
26
|
+
* improved compatibility with the openssl gem (version 2.2.1)
|
27
|
+
* JOSSL now ships with a single set of openssl .rb files
|
28
|
+
- providing compat with `required_ruby_version = '>= 2.3.0'`
|
29
|
+
- flat set of .rb files at *lib/openssl/* (based on openssl gem)
|
30
|
+
* revisited `OpenSSL::SSL::SSLContext::DEFAULT_PARAMS` defaults
|
31
|
+
- implicit `verify_hostname` default .rb callback still a noop
|
32
|
+
- TLS continues to rely on the Java SSL engine for hostname checks
|
33
|
+
* working TLS 1.3 support
|
34
|
+
* droped Java 1.7 support (at least Java 8 needed to use the gem)
|
35
|
+
* fixed `SSLContext#options` matches C OpenSSL (using `OP_ALL`)
|
36
|
+
* no longer filter out SSLv2 (for improved OpenSSL compatibility)
|
37
|
+
* implemented naive `SSLContext#ciphers` caching to speed-up TLS
|
38
|
+
* `StoreError` raised due a Java exception now retain native cause
|
39
|
+
|
40
|
+
## 0.12.0 (yanked)
|
41
|
+
|
42
|
+
There were Java 8 and JRuby 9.3 regressions in this release, use 0.12.1 instead.
|
43
|
+
|
1
44
|
## 0.11.0
|
2
45
|
|
3
46
|
NOTE: This release aims to adapt the certificate verification logic to be aligned
|
data/Mavenfile
CHANGED
@@ -7,7 +7,7 @@ distribution_management do
|
|
7
7
|
repository :id => :ossrh, :url => 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
|
8
8
|
end
|
9
9
|
|
10
|
-
java_target = '1.
|
10
|
+
java_target = '1.8'
|
11
11
|
gen_sources = '${basedir}/target/generated-sources' # hard-coded in AnnotationBinder
|
12
12
|
|
13
13
|
plugin( 'org.codehaus.mojo:exec-maven-plugin', '1.3.2' ) do
|
@@ -45,15 +45,18 @@ plugin( 'org.codehaus.mojo:build-helper-maven-plugin', '1.9' ) do
|
|
45
45
|
execute_goal 'add-source', :phase => 'process-classes', :sources => [ gen_sources ]
|
46
46
|
end
|
47
47
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
48
|
+
compiler_configuration = {
|
49
|
+
:source => '1.8', :target => java_target, :release => '8',
|
50
|
+
:encoding => 'UTF-8', :debug => true,
|
51
|
+
:showWarnings => true, :showDeprecation => true,
|
52
|
+
:excludes => [ 'module-info.java' ],
|
53
|
+
#:jdkToolchain => { :version => '[1.7,11)' },
|
54
|
+
:generatedSourcesDirectory => gen_sources,
|
55
|
+
:annotationProcessors => [ 'org.jruby.anno.AnnotationBinder' ]
|
56
|
+
}
|
57
|
+
compiler_configuration.delete(:release) if ENV_JAVA['java.specification.version'] == '1.8'
|
54
58
|
|
55
|
-
|
56
|
-
:annotationProcessors => [ 'org.jruby.anno.AnnotationBinder' ]) do
|
59
|
+
plugin( :compiler, '3.9.0', compiler_configuration) do
|
57
60
|
|
58
61
|
#execute_goal :compile, :id => 'annotation-binder', :phase => 'compile',
|
59
62
|
# :generatedSourcesDirectory => gen_sources, #:outputDirectory => gen_sources,
|
@@ -69,14 +72,6 @@ plugin( :compiler, '3.1',
|
|
69
72
|
:compilerArgs => [ '', '-XDignore.symbol.file=true' ]
|
70
73
|
end
|
71
74
|
|
72
|
-
profile 'module-info' do
|
73
|
-
activation { jdk '[9,)' }
|
74
|
-
plugin :compiler, '3.8.1',
|
75
|
-
:source => '9', :target => java_target,
|
76
|
-
:release => '9',
|
77
|
-
:includes => [ 'module-info.java' ]
|
78
|
-
end
|
79
|
-
|
80
75
|
plugin :clean do
|
81
76
|
execute_goals( 'clean', :id => 'default-clean', :phase => 'clean',
|
82
77
|
'filesets' => [
|
@@ -87,18 +82,18 @@ plugin :clean do
|
|
87
82
|
'failOnError' => 'false' )
|
88
83
|
end
|
89
84
|
|
90
|
-
jar 'org.jruby:jruby-core', '1.
|
85
|
+
jar 'org.jruby:jruby-core', '9.1.11.0', :scope => :provided
|
86
|
+
# for invoker generated classes we need to add javax.annotation when on Java > 8
|
87
|
+
jar 'javax.annotation:javax.annotation-api', '1.3.1', :scope => :compile
|
91
88
|
jar 'junit:junit', '[4.13.1,)', :scope => :test
|
92
89
|
|
93
|
-
# 9.1.17.0 is Java 7 compatible (till supporting JRuby 1.7)
|
94
90
|
# NOTE: to build on Java 11 - installing gems fails (due old jossl) with:
|
95
91
|
# load error: jopenssl/load -- java.lang.StringIndexOutOfBoundsException
|
96
|
-
MVN_JRUBY_VERSION = ENV_JAVA['java.version'].to_i >= 9 ? '9.2.
|
92
|
+
MVN_JRUBY_VERSION = ENV_JAVA['java.version'].to_i >= 9 ? '9.2.19.0' : '9.1.17.0'
|
97
93
|
|
98
94
|
jruby_plugin! :gem do
|
99
95
|
# when installing dependent gems we want to use the built in openssl not the one from this lib directory
|
100
|
-
|
101
|
-
execute_goal :id => 'default-initialize', :addProjectClasspath => false, :libDirectory => 'something-which-does-not-exists'
|
96
|
+
execute_goal :id => 'default-package', :addProjectClasspath => false, :libDirectory => 'something-which-does-not-exists'
|
102
97
|
execute_goals :id => 'default-push', :skip => true
|
103
98
|
end
|
104
99
|
|
@@ -107,12 +102,12 @@ plugin :deploy, '2.8.1' do
|
|
107
102
|
execute_goals( :deploy, :skip => false )
|
108
103
|
end
|
109
104
|
|
110
|
-
supported_bc_versions = %w{ 1.
|
105
|
+
supported_bc_versions = %w{ 1.60 1.61 1.62 1.63 1.64 1.65 1.66 1.67 1.68 }
|
111
106
|
|
112
107
|
default_bc_version = File.read File.expand_path('lib/jopenssl/version.rb', File.dirname(__FILE__))
|
113
108
|
default_bc_version = default_bc_version[/BOUNCY_CASTLE_VERSION\s?=\s?'(.*?)'/, 1]
|
114
109
|
|
115
|
-
properties( 'jruby.plugins.version' => '
|
110
|
+
properties( 'jruby.plugins.version' => '2.0.1', # 2.0.1
|
116
111
|
'jruby.switches' => '-W0', # https://github.com/torquebox/jruby-maven-plugins/issues/94
|
117
112
|
'bc.versions' => default_bc_version,
|
118
113
|
'invoker.test' => '${bc.versions}',
|
@@ -151,8 +146,8 @@ invoker_run_options = {
|
|
151
146
|
'runit.dir' => '${runit.dir}' }
|
152
147
|
}
|
153
148
|
|
154
|
-
jruby_9_K_versions = %w{ 9.
|
155
|
-
jruby_9_K_versions += %w{ 9.2.0.0 9.2.5.0 9.2.
|
149
|
+
jruby_9_K_versions = %w{ 9.1.2.0 9.1.8.0 9.1.12.0 9.1.16.0 9.1.17.0 }
|
150
|
+
jruby_9_K_versions += %w{ 9.2.0.0 9.2.5.0 9.2.10.0 9.2.17.0 9.2.19.0 }
|
156
151
|
|
157
152
|
jruby_9_K_versions.each { |version|
|
158
153
|
profile :id => "test-#{version}" do
|
data/README.md
CHANGED
@@ -24,6 +24,9 @@ the JRuby [mailing list][1] or the [bug tracker][2].
|
|
24
24
|
| ~>0.9.18 | 1.6.8-9.1.x | Java 6-8 | 1.50-1.55 |
|
25
25
|
| 0.10.0 | 1.7.20-9.2.x | Java 7-10 | 1.55-1.59 |
|
26
26
|
| 0.10.3 | 1.7.20-9.2.x | Java 7-11 | 1.56-1.62 |
|
27
|
+
| ~>0.10.5 | 1.7.20-9.3.x | Java 7-11 | 1.60-1.68 |
|
28
|
+
| ~>0.11.x | 9.0.x-9.3.x | Java 7-11 | 1.62-1.68 |
|
29
|
+
| ~>0.12.x | 9.1.x-9.3.x | Java 8-15 | 1.65-1.68 |
|
27
30
|
|
28
31
|
NOTE: backwards JRuby compatibility was not handled for versions <= **0.9.6**
|
29
32
|
|
data/Rakefile
CHANGED
@@ -1,40 +1,27 @@
|
|
1
1
|
#-*- mode: ruby -*-
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
namespace :jar do
|
13
|
-
desc "Package jopenssl.jar file (and dependendent jars)"
|
14
|
-
task :all do
|
15
|
-
sh "mvn package -Dmaven.test.skip=true"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
else
|
19
|
-
#Rake::Task[:jar].clear rescue nil
|
20
|
-
desc "Package jopenssl.jar with the compiled classes"
|
21
|
-
task :jar do
|
22
|
-
RubyMaven.exec( 'prepare-package -Dmaven.test.skip=true' )
|
23
|
-
end
|
24
|
-
namespace :jar do
|
25
|
-
desc "Package jopenssl.jar file (and dependendent jars)"
|
26
|
-
task :all do
|
27
|
-
RubyMaven.exec( 'package -Dmaven.test.skip=true' )
|
28
|
-
end
|
29
|
-
end
|
30
|
-
task :test_prepare do
|
31
|
-
RubyMaven.exec( 'prepare-package -Dmaven.test.skip=true' )
|
32
|
-
RubyMaven.exec( 'test-compile' ) # separate step due -Dmaven.test.skip=true
|
3
|
+
#Rake::Task[:jar].clear rescue nil
|
4
|
+
desc "Package jopenssl.jar with the compiled classes"
|
5
|
+
task :jar do
|
6
|
+
sh( './mvnw prepare-package -Dmaven.test.skip=true' )
|
7
|
+
end
|
8
|
+
namespace :jar do
|
9
|
+
desc "Package jopenssl.jar file (and dependendent jars)"
|
10
|
+
task :all do
|
11
|
+
sh( './mvnw package -Dmaven.test.skip=true' )
|
33
12
|
end
|
34
13
|
end
|
14
|
+
task :test_prepare do
|
15
|
+
sh( './mvnw prepare-package -Dmaven.test.skip=true' )
|
16
|
+
sh( './mvnw test-compile' ) # separate step due -Dmaven.test.skip=true
|
17
|
+
end
|
18
|
+
|
19
|
+
task :clean do
|
20
|
+
sh( './mvnw clean' )
|
21
|
+
end
|
35
22
|
|
36
23
|
task :build do
|
37
|
-
|
24
|
+
sh( './mvnw clean package -Dmaven.test.skip=true' )
|
38
25
|
end
|
39
26
|
|
40
27
|
task :default => :build
|
@@ -55,16 +42,15 @@ task :test => 'lib/jopenssl.jar'
|
|
55
42
|
namespace :integration do
|
56
43
|
it_path = File.expand_path('../src/test/integration', __FILE__)
|
57
44
|
task :install do
|
58
|
-
|
59
|
-
ruby "-S bundle install --gemfile '#{it_path}/Gemfile'"
|
60
|
-
end
|
45
|
+
ruby "-C #{it_path} -S bundle install"
|
61
46
|
end
|
62
47
|
# desc "Run IT tests"
|
63
48
|
task :test => 'lib/jopenssl.jar' do
|
64
49
|
unless File.exist?(File.join(it_path, 'Gemfile.lock'))
|
65
50
|
raise "bundle not installed, run `rake integration:install'"
|
66
51
|
end
|
67
|
-
loader = "ARGV.each { |f| require f }"
|
52
|
+
loader = "ARGV.each { |f| require f }"
|
53
|
+
lib = [ File.expand_path('../lib', __FILE__), it_path ]
|
68
54
|
test_files = FileList['src/test/integration/*_test.rb'].map { |path| path.sub('src/test/integration/', '') }
|
69
55
|
ruby "-I#{lib.join(':')} -C src/test/integration -e \"#{loader}\" #{test_files.map { |f| "\"#{f}\"" }.join(' ')}"
|
70
56
|
end
|
data/lib/jopenssl/load.rb
CHANGED
@@ -2,20 +2,22 @@ warn 'Loading jruby-openssl gem in a non-JRuby interpreter' unless defined? JRUB
|
|
2
2
|
|
3
3
|
require 'jopenssl/version'
|
4
4
|
|
5
|
-
warn "JRuby #{JRUBY_VERSION} is not supported by jruby-openssl #{JOpenSSL::VERSION}" if JRUBY_VERSION < '1.7.20'
|
6
|
-
|
7
5
|
# NOTE: assuming user does pull in BC .jars from somewhere else on the CP
|
8
6
|
unless ENV_JAVA['jruby.openssl.load.jars'].eql?('false')
|
9
7
|
version = JOpenSSL::BOUNCY_CASTLE_VERSION
|
10
|
-
bc_jars = nil
|
11
8
|
begin
|
12
9
|
require 'jar-dependencies'
|
13
10
|
# if we have jar-dependencies we let it track the jars
|
14
|
-
require_jar
|
15
|
-
require_jar
|
16
|
-
require_jar
|
11
|
+
require_jar 'org.bouncycastle', 'bcprov-jdk15on', version
|
12
|
+
require_jar 'org.bouncycastle', 'bcpkix-jdk15on', version
|
13
|
+
require_jar 'org.bouncycastle', 'bctls-jdk15on', version
|
14
|
+
begin # bcutil got extracted from bcprov in BC 1.69
|
15
|
+
require_jar 'org.bouncycastle', 'bcutil-jdk15to18', version
|
16
|
+
rescue LoadError, RuntimeError
|
17
|
+
# continue without loading the jar - assume we got BC < 1.69
|
18
|
+
end
|
17
19
|
bc_jars = true
|
18
|
-
rescue LoadError
|
20
|
+
rescue LoadError, RuntimeError
|
19
21
|
bc_jars = false
|
20
22
|
end
|
21
23
|
unless bc_jars
|
@@ -34,17 +36,50 @@ else; require 'jruby'
|
|
34
36
|
end
|
35
37
|
|
36
38
|
if RUBY_VERSION > '2.3'
|
37
|
-
load 'jopenssl23/openssl.rb'
|
38
39
|
load 'jopenssl/_compat23.rb'
|
39
|
-
elsif RUBY_VERSION > '2.2'
|
40
|
-
load 'jopenssl22/openssl.rb'
|
41
|
-
elsif RUBY_VERSION > '2.1'
|
42
|
-
load 'jopenssl21/openssl.rb'
|
43
|
-
else
|
44
|
-
load 'jopenssl19/openssl.rb'
|
45
40
|
end
|
46
41
|
|
42
|
+
# NOTE: content bellow should live in *lib/openssl.rb* but due RubyGems/Bundler
|
43
|
+
# `autoload :OpenSSL` this will cause issues if an older version (0.11) is the
|
44
|
+
# default gem under JRuby 9.2 (which on auto-load does not trigger a dynamic
|
45
|
+
# require - this is only fixed in JRuby 9.3)
|
46
|
+
|
47
47
|
module OpenSSL
|
48
48
|
autoload :Config, 'openssl/config' unless const_defined?(:Config, false)
|
49
49
|
autoload :PKCS12, 'openssl/pkcs12'
|
50
50
|
end
|
51
|
+
|
52
|
+
=begin
|
53
|
+
= Info
|
54
|
+
'OpenSSL for Ruby 2' project
|
55
|
+
Copyright (C) 2002 Michal Rokos <[email protected]>
|
56
|
+
All rights reserved.
|
57
|
+
|
58
|
+
= Licence
|
59
|
+
This program is licensed under the same licence as Ruby.
|
60
|
+
(See the file 'LICENCE'.)
|
61
|
+
=end
|
62
|
+
|
63
|
+
require 'openssl/bn'
|
64
|
+
require 'openssl/pkey'
|
65
|
+
require 'openssl/cipher'
|
66
|
+
#require 'openssl/config' if OpenSSL.const_defined?(:Config, false)
|
67
|
+
require 'openssl/digest'
|
68
|
+
require 'openssl/hmac'
|
69
|
+
require 'openssl/x509'
|
70
|
+
require 'openssl/ssl'
|
71
|
+
require 'openssl/pkcs5'
|
72
|
+
|
73
|
+
module OpenSSL
|
74
|
+
# call-seq:
|
75
|
+
# OpenSSL.secure_compare(string, string) -> boolean
|
76
|
+
#
|
77
|
+
# Constant time memory comparison. Inputs are hashed using SHA-256 to mask
|
78
|
+
# the length of the secret. Returns +true+ if the strings are identical,
|
79
|
+
# +false+ otherwise.
|
80
|
+
def self.secure_compare(a, b)
|
81
|
+
hashed_a = OpenSSL::Digest.digest('SHA256', a)
|
82
|
+
hashed_b = OpenSSL::Digest.digest('SHA256', b)
|
83
|
+
OpenSSL.fixed_length_secure_compare(hashed_a, hashed_b) && a == b
|
84
|
+
end
|
85
|
+
end
|
data/lib/jopenssl/version.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
module JOpenSSL
|
2
|
-
VERSION = '0.
|
2
|
+
VERSION = '0.13.0'
|
3
3
|
BOUNCY_CASTLE_VERSION = '1.68'
|
4
4
|
end
|
5
5
|
|
6
6
|
Object.class_eval do
|
7
7
|
Jopenssl = JOpenSSL
|
8
8
|
private_constant :Jopenssl if respond_to?(:private_constant)
|
9
|
+
deprecate_constant :Jopenssl if respond_to?(:deprecate_constant)
|
9
10
|
end
|
data/lib/jopenssl.jar
CHANGED
Binary file
|
data/lib/openssl/bn.rb
CHANGED
@@ -1,9 +1,40 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#--
|
3
|
+
#
|
4
|
+
# = Ruby-space definitions that completes C-space funcs for BN
|
5
|
+
#
|
6
|
+
# = Info
|
7
|
+
# 'OpenSSL for Ruby 2' project
|
8
|
+
# Copyright (C) 2002 Michal Rokos <m.[email protected]>
|
9
|
+
# All rights reserved.
|
10
|
+
#
|
11
|
+
# = Licence
|
12
|
+
# This program is licensed under the same licence as Ruby.
|
13
|
+
# (See the file 'LICENCE'.)
|
14
|
+
#++
|
15
|
+
|
16
|
+
module OpenSSL
|
17
|
+
class BN
|
18
|
+
include Comparable
|
19
|
+
|
20
|
+
def pretty_print(q)
|
21
|
+
q.object_group(self) {
|
22
|
+
q.text ' '
|
23
|
+
q.text to_i.to_s
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end # BN
|
27
|
+
end # OpenSSL
|
28
|
+
|
29
|
+
##
|
30
|
+
#--
|
31
|
+
# Add double dispatch to Integer
|
32
|
+
#++
|
33
|
+
class Integer
|
34
|
+
# Casts an Integer as an OpenSSL::BN
|
35
|
+
#
|
36
|
+
# See `man bn` for more info.
|
37
|
+
def to_bn
|
38
|
+
OpenSSL::BN::new(self)
|
39
|
+
end
|
40
|
+
end # Integer
|