jruby-openssl 0.9.21-java → 0.10.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.
@@ -1,32 +0,0 @@
1
- =begin
2
- = $RCSfile$ -- Ruby-space predefined Digest subclasses
3
-
4
- = Info
5
- 'OpenSSL for Ruby 2' project
6
- Copyright (C) 2002 Michal Rokos <m.rokos@sh.cvut.cz>
7
- All rights reserved.
8
-
9
- = Licence
10
- This program is licenced under the same licence as Ruby.
11
- (See the file 'LICENCE'.)
12
-
13
- = Version
14
- $Id$
15
- =end
16
-
17
- ##
18
- # Should we care what if somebody require this file directly?
19
- #require 'openssl'
20
-
21
- module OpenSSL
22
- class Digest
23
- # This class is only provided for backwards compatibility. Use OpenSSL::Digest in the future.
24
- class Digest < Digest
25
- def initialize(*args)
26
- # add warning
27
- super(*args)
28
- end
29
- end
30
- end # Digest
31
- end # OpenSSL
32
-
@@ -1,25 +0,0 @@
1
- =begin
2
- = $RCSfile$ -- PKCS7
3
-
4
- = Licence
5
- This program is licenced under the same licence as Ruby.
6
- (See the file 'LICENCE'.)
7
-
8
- = Version
9
- $Id: digest.rb 12148 2007-04-05 05:59:22Z technorama $
10
- =end
11
-
12
- module OpenSSL
13
- class PKCS7
14
- # This class is only provided for backwards compatibility. Use OpenSSL::PKCS7 in the future.
15
- class PKCS7 < PKCS7
16
- def initialize(*args)
17
- super(*args)
18
-
19
- warn("Warning: OpenSSL::PKCS7::PKCS7 is deprecated after Ruby 1.9; use OpenSSL::PKCS7 instead")
20
- end
21
- end
22
-
23
- end # PKCS7
24
- end # OpenSSL
25
-
@@ -1,112 +0,0 @@
1
- =begin
2
- = $RCSfile$ -- Ruby-space definitions that completes C-space funcs for SSL
3
-
4
- = Info
5
- 'OpenSSL for Ruby 2' project
6
- Copyright (C) 2001 GOTOU YUUZOU <gotoyuzo@notwork.org>
7
- All rights reserved.
8
-
9
- = Licence
10
- This program is licenced under the same licence as Ruby.
11
- (See the file 'LICENCE'.)
12
-
13
- = Version
14
- $Id$
15
- =end
16
-
17
- require "openssl/buffering"
18
- require 'fcntl' # used by OpenSSL::SSL::Nonblock (if loaded)
19
-
20
- module OpenSSL
21
- module SSL
22
-
23
- def verify_certificate_identity(cert, hostname)
24
- should_verify_common_name = true
25
- cert.extensions.each{|ext|
26
- next if ext.oid != "subjectAltName"
27
- ext.value.split(/,\s+/).each{|general_name|
28
- if /\ADNS:(.*)/ =~ general_name
29
- should_verify_common_name = false
30
- reg = Regexp.escape($1).gsub(/\\\*/, "[^.]+")
31
- return true if /\A#{reg}\z/i =~ hostname
32
- # NOTE: somehow we need the IP: canonical form
33
- # seems there were failures elsewhere when not
34
- # not sure how that's possible possible to-do!
35
- elsif /\AIP(?: Address)?:(.*)/ =~ general_name
36
- #elsif /\AIP Address:(.*)/ =~ general_name
37
- should_verify_common_name = false
38
- return true if $1 == hostname
39
- end
40
- }
41
- }
42
- if should_verify_common_name
43
- cert.subject.to_a.each{|oid, value|
44
- if oid == "CN"
45
- reg = Regexp.escape(value).gsub(/\\\*/, "[^.]+")
46
- return true if /\A#{reg}\z/i =~ hostname
47
- end
48
- }
49
- end
50
- return false
51
- end
52
- module_function :verify_certificate_identity
53
-
54
- class SSLSocket
55
- include Buffering
56
- include SocketForwarder
57
- include Nonblock
58
-
59
- def post_connection_check(hostname)
60
- unless OpenSSL::SSL.verify_certificate_identity(peer_cert, hostname)
61
- raise SSLError, "hostname was not match with the server certificate"
62
- end
63
- return true
64
- end
65
-
66
- end
67
-
68
- class SSLServer
69
- include SocketForwarder
70
- attr_accessor :start_immediately
71
-
72
- def initialize(svr, ctx)
73
- @svr = svr
74
- @ctx = ctx
75
- unless ctx.session_id_context
76
- session_id = OpenSSL::Digest::MD5.hexdigest($0)
77
- @ctx.session_id_context = session_id
78
- end
79
- @start_immediately = true
80
- end
81
-
82
- def to_io
83
- @svr
84
- end
85
-
86
- def listen(backlog=5)
87
- @svr.listen(backlog)
88
- end
89
-
90
- def shutdown(how=Socket::SHUT_RDWR)
91
- @svr.shutdown(how)
92
- end
93
-
94
- def accept
95
- sock = @svr.accept
96
- begin
97
- ssl = OpenSSL::SSL::SSLSocket.new(sock, @ctx)
98
- ssl.sync_close = true
99
- ssl.accept if @start_immediately
100
- ssl
101
- rescue SSLError => ex
102
- sock.close
103
- raise ex
104
- end
105
- end
106
-
107
- def close
108
- @svr.close
109
- end
110
- end
111
- end
112
- end
@@ -1 +0,0 @@
1
- require 'openssl'
@@ -1,110 +0,0 @@
1
- =begin
2
- = $RCSfile$ -- Ruby-space definitions that completes C-space funcs for X509 and subclasses
3
-
4
- = Info
5
- 'OpenSSL for Ruby 2' project
6
- Copyright (C) 2002 Michal Rokos <m.rokos@sh.cvut.cz>
7
- All rights reserved.
8
-
9
- = Licence
10
- This program is licenced under the same licence as Ruby.
11
- (See the file 'LICENCE'.)
12
-
13
- = Version
14
- $Id$
15
- =end
16
-
17
- module OpenSSL
18
- module X509
19
- class Name
20
- module RFC2253DN
21
- Special = ',=+<>#;'
22
- HexChar = /[0-9a-fA-F]/
23
- HexPair = /#{HexChar}#{HexChar}/
24
- HexString = /#{HexPair}+/
25
- Pair = /\\(?:[#{Special}]|\\|"|#{HexPair})/
26
- StringChar = /[^#{Special}\\"]/
27
- QuoteChar = /[^\\"]/
28
- AttributeType = /[a-zA-Z][0-9a-zA-Z]*|[0-9]+(?:\.[0-9]+)*/
29
- AttributeValue = /
30
- (?!["#])((?:#{StringChar}|#{Pair})*)|
31
- \#(#{HexString})|
32
- "((?:#{QuoteChar}|#{Pair})*)"
33
- /x
34
- TypeAndValue = /\A(#{AttributeType})=#{AttributeValue}/
35
-
36
- module_function
37
-
38
- def expand_pair(str)
39
- return nil unless str
40
- return str.gsub(Pair){
41
- pair = $&
42
- case pair.size
43
- when 2 then pair[1,1]
44
- when 3 then Integer("0x#{pair[1,2]}").chr
45
- else raise OpenSSL::X509::NameError, "invalid pair: #{str}"
46
- end
47
- }
48
- end
49
-
50
- def expand_hexstring(str)
51
- return nil unless str
52
- der = str.gsub(HexPair){$&.to_i(16).chr }
53
- a1 = OpenSSL::ASN1.decode(der)
54
- return a1.value, a1.tag
55
- end
56
-
57
- def expand_value(str1, str2, str3)
58
- value = expand_pair(str1)
59
- value, tag = expand_hexstring(str2) unless value
60
- value = expand_pair(str3) unless value
61
- return value, tag
62
- end
63
-
64
- def scan(dn)
65
- str = dn
66
- ary = []
67
- while true
68
- if md = TypeAndValue.match(str)
69
- matched = md.to_s
70
- remain = md.post_match
71
- type = md[1]
72
- value, tag = expand_value(md[2], md[3], md[4]) rescue nil
73
- if value
74
- type_and_value = [type, value]
75
- type_and_value.push(tag) if tag
76
- ary.unshift(type_and_value)
77
- if remain.length > 2 && remain[0] == ?,
78
- str = remain[1..-1]
79
- next
80
- elsif remain.length > 2 && remain[0] == ?+
81
- raise OpenSSL::X509::NameError,
82
- "multi-valued RDN is not supported: #{dn}"
83
- elsif remain.empty?
84
- break
85
- end
86
- end
87
- end
88
- msg_dn = dn[0, dn.length - str.length] + " =>" + str
89
- raise OpenSSL::X509::NameError, "malformed RDN: #{msg_dn}"
90
- end
91
- return ary
92
- end
93
- end
94
-
95
- class <<self
96
- def parse_rfc2253(str, template=OBJECT_TYPE_TEMPLATE)
97
- ary = OpenSSL::X509::Name::RFC2253DN.scan(str)
98
- self.new(ary, template)
99
- end
100
-
101
- def parse_openssl(str, template=OBJECT_TYPE_TEMPLATE)
102
- ary = str.scan(/\s*([^\/,]+)\s*/).collect{|i| i[0].split("=", 2) }
103
- self.new(ary, template)
104
- end
105
-
106
- alias parse parse_openssl
107
- end
108
- end
109
- end
110
- end
@@ -1 +0,0 @@
1
- require 'openssl'