jruby-openssl 0.9.21-java → 0.10.0-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -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'