rubysl-openssl 0.0.1 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +0 -1
- data/.travis.yml +7 -0
- data/README.md +2 -2
- data/Rakefile +0 -1
- data/ext/rubysl/openssl/extconf.h +50 -0
- data/ext/rubysl/openssl/extconf.rb +144 -0
- data/ext/rubysl/openssl/openssl_missing.c +343 -0
- data/ext/rubysl/openssl/openssl_missing.h +191 -0
- data/ext/rubysl/openssl/ossl.c +552 -0
- data/ext/rubysl/openssl/ossl.h +233 -0
- data/ext/rubysl/openssl/ossl_asn1.c +1160 -0
- data/ext/rubysl/openssl/ossl_asn1.h +59 -0
- data/ext/rubysl/openssl/ossl_bio.c +86 -0
- data/ext/rubysl/openssl/ossl_bio.h +21 -0
- data/ext/rubysl/openssl/ossl_bn.c +852 -0
- data/ext/rubysl/openssl/ossl_bn.h +25 -0
- data/ext/rubysl/openssl/ossl_cipher.c +569 -0
- data/ext/rubysl/openssl/ossl_cipher.h +22 -0
- data/ext/rubysl/openssl/ossl_config.c +75 -0
- data/ext/rubysl/openssl/ossl_config.h +22 -0
- data/ext/rubysl/openssl/ossl_digest.c +259 -0
- data/ext/rubysl/openssl/ossl_digest.h +22 -0
- data/ext/rubysl/openssl/ossl_engine.c +411 -0
- data/ext/rubysl/openssl/ossl_engine.h +20 -0
- data/ext/rubysl/openssl/ossl_hmac.c +268 -0
- data/ext/rubysl/openssl/ossl_hmac.h +19 -0
- data/ext/rubysl/openssl/ossl_ns_spki.c +257 -0
- data/ext/rubysl/openssl/ossl_ns_spki.h +21 -0
- data/ext/rubysl/openssl/ossl_ocsp.c +769 -0
- data/ext/rubysl/openssl/ossl_ocsp.h +24 -0
- data/ext/rubysl/openssl/ossl_pkcs12.c +210 -0
- data/ext/rubysl/openssl/ossl_pkcs12.h +15 -0
- data/ext/rubysl/openssl/ossl_pkcs5.c +99 -0
- data/ext/rubysl/openssl/ossl_pkcs5.h +6 -0
- data/ext/rubysl/openssl/ossl_pkcs7.c +1039 -0
- data/ext/rubysl/openssl/ossl_pkcs7.h +22 -0
- data/ext/rubysl/openssl/ossl_pkey.c +240 -0
- data/ext/rubysl/openssl/ossl_pkey.h +141 -0
- data/ext/rubysl/openssl/ossl_pkey_dh.c +532 -0
- data/ext/rubysl/openssl/ossl_pkey_dsa.c +484 -0
- data/ext/rubysl/openssl/ossl_pkey_ec.c +1593 -0
- data/ext/rubysl/openssl/ossl_pkey_rsa.c +593 -0
- data/ext/rubysl/openssl/ossl_rand.c +202 -0
- data/ext/rubysl/openssl/ossl_rand.h +20 -0
- data/ext/rubysl/openssl/ossl_ssl.c +1484 -0
- data/ext/rubysl/openssl/ossl_ssl.h +36 -0
- data/ext/rubysl/openssl/ossl_ssl_session.c +307 -0
- data/ext/rubysl/openssl/ossl_version.h +16 -0
- data/ext/rubysl/openssl/ossl_x509.c +104 -0
- data/ext/rubysl/openssl/ossl_x509.h +114 -0
- data/ext/rubysl/openssl/ossl_x509attr.c +274 -0
- data/ext/rubysl/openssl/ossl_x509cert.c +764 -0
- data/ext/rubysl/openssl/ossl_x509crl.c +535 -0
- data/ext/rubysl/openssl/ossl_x509ext.c +458 -0
- data/ext/rubysl/openssl/ossl_x509name.c +399 -0
- data/ext/rubysl/openssl/ossl_x509req.c +466 -0
- data/ext/rubysl/openssl/ossl_x509revoked.c +229 -0
- data/ext/rubysl/openssl/ossl_x509store.c +625 -0
- data/ext/rubysl/openssl/ruby_missing.h +41 -0
- data/lib/openssl.rb +1 -0
- data/lib/openssl/bn.rb +35 -0
- data/lib/openssl/buffering.rb +241 -0
- data/lib/openssl/cipher.rb +65 -0
- data/lib/openssl/config.rb +316 -0
- data/lib/openssl/digest.rb +61 -0
- data/lib/openssl/net/ftptls.rb +53 -0
- data/lib/openssl/net/telnets.rb +251 -0
- data/lib/openssl/pkcs7.rb +25 -0
- data/lib/openssl/ssl-internal.rb +187 -0
- data/lib/openssl/ssl.rb +1 -0
- data/lib/openssl/x509-internal.rb +153 -0
- data/lib/openssl/x509.rb +1 -0
- data/lib/rubysl/openssl.rb +28 -0
- data/lib/rubysl/openssl/version.rb +5 -0
- data/rubysl-openssl.gemspec +19 -18
- data/spec/cipher_spec.rb +16 -0
- data/spec/config/freeze_spec.rb +17 -0
- data/spec/hmac/digest_spec.rb +15 -0
- data/spec/hmac/hexdigest_spec.rb +15 -0
- data/spec/random/pseudo_bytes_spec.rb +5 -0
- data/spec/random/random_bytes_spec.rb +5 -0
- data/spec/random/shared/random_bytes.rb +28 -0
- data/spec/shared/constants.rb +11 -0
- data/spec/x509/name/parse_spec.rb +47 -0
- metadata +153 -89
- data/lib/rubysl-openssl.rb +0 -7
- data/lib/rubysl-openssl/version.rb +0 -5
data/lib/openssl/ssl.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'openssl'
|
@@ -0,0 +1,153 @@
|
|
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 ExtensionFactory
|
20
|
+
def create_extension(*arg)
|
21
|
+
if arg.size > 1
|
22
|
+
create_ext(*arg)
|
23
|
+
else
|
24
|
+
send("create_ext_from_"+arg[0].class.name.downcase, arg[0])
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_ext_from_array(ary)
|
29
|
+
raise ExtensionError, "unexpected array form" if ary.size > 3
|
30
|
+
create_ext(ary[0], ary[1], ary[2])
|
31
|
+
end
|
32
|
+
|
33
|
+
def create_ext_from_string(str) # "oid = critical, value"
|
34
|
+
oid, value = str.split(/=/, 2)
|
35
|
+
oid.strip!
|
36
|
+
value.strip!
|
37
|
+
create_ext(oid, value)
|
38
|
+
end
|
39
|
+
|
40
|
+
def create_ext_from_hash(hash)
|
41
|
+
create_ext(hash["oid"], hash["value"], hash["critical"])
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class Extension
|
46
|
+
def to_s # "oid = critical, value"
|
47
|
+
str = self.oid
|
48
|
+
str << " = "
|
49
|
+
str << "critical, " if self.critical?
|
50
|
+
str << self.value.gsub(/\n/, ", ")
|
51
|
+
end
|
52
|
+
|
53
|
+
def to_h # {"oid"=>sn|ln, "value"=>value, "critical"=>true|false}
|
54
|
+
{"oid"=>self.oid,"value"=>self.value,"critical"=>self.critical?}
|
55
|
+
end
|
56
|
+
|
57
|
+
def to_a
|
58
|
+
[ self.oid, self.value, self.critical? ]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class Name
|
63
|
+
module RFC2253DN
|
64
|
+
Special = ',=+<>#;'
|
65
|
+
HexChar = /[0-9a-fA-F]/
|
66
|
+
HexPair = /#{HexChar}#{HexChar}/
|
67
|
+
HexString = /#{HexPair}+/
|
68
|
+
Pair = /\\(?:[#{Special}]|\\|"|#{HexPair})/
|
69
|
+
StringChar = /[^#{Special}\\"]/
|
70
|
+
QuoteChar = /[^\\"]/
|
71
|
+
AttributeType = /[a-zA-Z][0-9a-zA-Z]*|[0-9]+(?:\.[0-9]+)*/
|
72
|
+
AttributeValue = /
|
73
|
+
(?!["#])((?:#{StringChar}|#{Pair})*)|
|
74
|
+
\#(#{HexString})|
|
75
|
+
"((?:#{QuoteChar}|#{Pair})*)"
|
76
|
+
/x
|
77
|
+
TypeAndValue = /\A(#{AttributeType})=#{AttributeValue}/
|
78
|
+
|
79
|
+
module_function
|
80
|
+
|
81
|
+
def expand_pair(str)
|
82
|
+
return nil unless str
|
83
|
+
return str.gsub(Pair){
|
84
|
+
pair = $&
|
85
|
+
case pair.size
|
86
|
+
when 2 then pair[1,1]
|
87
|
+
when 3 then Integer("0x#{pair[1,2]}").chr
|
88
|
+
else raise OpenSSL::X509::NameError, "invalid pair: #{str}"
|
89
|
+
end
|
90
|
+
}
|
91
|
+
end
|
92
|
+
|
93
|
+
def expand_hexstring(str)
|
94
|
+
return nil unless str
|
95
|
+
der = str.gsub(HexPair){$&.to_i(16).chr }
|
96
|
+
a1 = OpenSSL::ASN1.decode(der)
|
97
|
+
return a1.value, a1.tag
|
98
|
+
end
|
99
|
+
|
100
|
+
def expand_value(str1, str2, str3)
|
101
|
+
value = expand_pair(str1)
|
102
|
+
value, tag = expand_hexstring(str2) unless value
|
103
|
+
value = expand_pair(str3) unless value
|
104
|
+
return value, tag
|
105
|
+
end
|
106
|
+
|
107
|
+
def scan(dn)
|
108
|
+
str = dn
|
109
|
+
ary = []
|
110
|
+
while true
|
111
|
+
if md = TypeAndValue.match(str)
|
112
|
+
matched = md.to_s
|
113
|
+
remain = md.post_match
|
114
|
+
type = md[1]
|
115
|
+
value, tag = expand_value(md[2], md[3], md[4]) rescue nil
|
116
|
+
if value
|
117
|
+
type_and_value = [type, value]
|
118
|
+
type_and_value.push(tag) if tag
|
119
|
+
ary.unshift(type_and_value)
|
120
|
+
if remain.length > 2 && remain[0] == ?,
|
121
|
+
str = remain[1..-1]
|
122
|
+
next
|
123
|
+
elsif remain.length > 2 && remain[0] == ?+
|
124
|
+
raise OpenSSL::X509::NameError,
|
125
|
+
"multi-valued RDN is not supported: #{dn}"
|
126
|
+
elsif remain.empty?
|
127
|
+
break
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
msg_dn = dn[0, dn.length - str.length] + " =>" + str
|
132
|
+
raise OpenSSL::X509::NameError, "malformed RDN: #{msg_dn}"
|
133
|
+
end
|
134
|
+
return ary
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
class <<self
|
139
|
+
def parse_rfc2253(str, template=OBJECT_TYPE_TEMPLATE)
|
140
|
+
ary = OpenSSL::X509::Name::RFC2253DN.scan(str)
|
141
|
+
self.new(ary, template)
|
142
|
+
end
|
143
|
+
|
144
|
+
def parse_openssl(str, template=OBJECT_TYPE_TEMPLATE)
|
145
|
+
ary = str.scan(/\s*([^\/,]+)\s*/).collect{|i| i[0].split("=", 2) }
|
146
|
+
self.new(ary, template)
|
147
|
+
end
|
148
|
+
|
149
|
+
alias parse parse_openssl
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
data/lib/openssl/x509.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'openssl'
|
@@ -0,0 +1,28 @@
|
|
1
|
+
=begin
|
2
|
+
= $RCSfile$ -- Loader for all OpenSSL C-space and Ruby-space definitions
|
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: openssl.rb 29856 2010-11-22 07:21:45Z shyouhei $
|
15
|
+
=end
|
16
|
+
|
17
|
+
require 'thread'
|
18
|
+
require 'openssl/openssl'
|
19
|
+
|
20
|
+
require 'openssl/bn'
|
21
|
+
require 'openssl/cipher'
|
22
|
+
require 'openssl/config'
|
23
|
+
require 'openssl/digest'
|
24
|
+
require 'openssl/pkcs7'
|
25
|
+
require 'openssl/ssl-internal'
|
26
|
+
require 'openssl/x509-internal'
|
27
|
+
|
28
|
+
require 'rubysl/openssl/version'
|
data/rubysl-openssl.gemspec
CHANGED
@@ -1,22 +1,23 @@
|
|
1
|
-
#
|
2
|
-
require
|
1
|
+
# coding: utf-8
|
2
|
+
require './lib/rubysl/openssl/version'
|
3
3
|
|
4
|
-
Gem::Specification.new do |
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
Gem::Specification.new do |spec|
|
5
|
+
spec.name = "rubysl-openssl"
|
6
|
+
spec.version = RubySL::OpenSSL::VERSION
|
7
|
+
spec.authors = ["Brian Shirai"]
|
8
|
+
spec.email = ["brixen@gmail.com"]
|
9
|
+
spec.description = %q{Ruby standard library OpenSSL.}
|
10
|
+
spec.summary = %q{Ruby standard library OpenSSL.}
|
11
|
+
spec.homepage = "https://github.com/rubysl/rubysl-openssl"
|
12
|
+
spec.license = "BSD"
|
10
13
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
gem.version = RubySL::Openssl::VERSION
|
14
|
+
spec.files = `git ls-files`.split($/)
|
15
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
|
+
spec.extensions = ["ext/rubysl/openssl/extconf.rb"]
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
gem.add_development_dependency "mspec", "~> 1.5"
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
21
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
22
|
+
spec.add_development_dependency "mspec", "~> 1.5"
|
22
23
|
end
|
data/spec/cipher_spec.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.expand_path('../shared/constants', __FILE__)
|
2
|
+
require 'openssl'
|
3
|
+
|
4
|
+
describe "OpenSSL::Cipher's CipherError" do
|
5
|
+
ruby_version_is "" ... "1.8.7" do
|
6
|
+
it "exists under OpenSSL namespace" do
|
7
|
+
OpenSSL.should have_constant :CipherError
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
ruby_version_is "1.8.7" do
|
12
|
+
it "exists under OpenSSL::Cipher namespace" do
|
13
|
+
OpenSSL::Cipher.should have_constant :CipherError
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.expand_path('../../shared/constants', __FILE__)
|
2
|
+
|
3
|
+
require 'openssl'
|
4
|
+
|
5
|
+
describe "OpenSSL::Config#freeze" do
|
6
|
+
it "needs to be reviewed for completeness"
|
7
|
+
|
8
|
+
ruby_bug "redmine:484", "1.8.7" do
|
9
|
+
it "freezes" do
|
10
|
+
c = OpenSSL::Config.new
|
11
|
+
lambda{c['foo'] = [ ['key', 'value'] ]}.should_not raise_error
|
12
|
+
c.freeze
|
13
|
+
c.frozen?.should be_true
|
14
|
+
lambda{c['foo'] = [ ['key', 'value'] ]}.should raise_error
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path('../../shared/constants', __FILE__)
|
2
|
+
require 'openssl'
|
3
|
+
|
4
|
+
describe "OpenSSL::HMAC.digest" do
|
5
|
+
it "returns an SHA1 digest" do
|
6
|
+
cur_digest = OpenSSL::Digest::Digest.new('SHA1')
|
7
|
+
cur_digest.digest.should == HMACConstants::BlankSHA1Digest
|
8
|
+
digest = OpenSSL::HMAC.digest(cur_digest,
|
9
|
+
HMACConstants::Key,
|
10
|
+
HMACConstants::Contents)
|
11
|
+
digest.should == HMACConstants::SHA1Digest
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Should add in similar specs for MD5, RIPEMD160, and SHA256
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path('../../shared/constants', __FILE__)
|
2
|
+
require 'openssl'
|
3
|
+
|
4
|
+
describe "OpenSSL::HMAC.hexdigest" do
|
5
|
+
it "returns an SHA1 hex digest" do
|
6
|
+
cur_digest = OpenSSL::Digest::Digest.new('SHA1')
|
7
|
+
cur_digest.hexdigest.should == HMACConstants::BlankSHA1HexDigest
|
8
|
+
hexdigest = OpenSSL::HMAC.hexdigest(cur_digest,
|
9
|
+
HMACConstants::Key,
|
10
|
+
HMACConstants::Contents)
|
11
|
+
hexdigest.should == HMACConstants::SHA1Hexdigest
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Should add in similar specs for MD5, RIPEMD160, and SHA256
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
|
3
|
+
describe :openssl_random_bytes, :shared => true do |cmd|
|
4
|
+
it "generates a random binary string of specified length" do
|
5
|
+
(1..64).each do |idx|
|
6
|
+
bytes = OpenSSL::Random.pseudo_bytes(idx)
|
7
|
+
bytes.should be_kind_of(String)
|
8
|
+
bytes.length.should == idx
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
it "generates different binary strings with subsequent invocations" do
|
13
|
+
# quick and dirty check, but good enough
|
14
|
+
values = []
|
15
|
+
256.times do
|
16
|
+
val = OpenSSL::Random.pseudo_bytes(16)
|
17
|
+
# make sure the random bytes are not repeating
|
18
|
+
values.include?(val).should == false
|
19
|
+
values << val
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it "raises ArgumentError on negative arguments" do
|
24
|
+
lambda {
|
25
|
+
OpenSSL::Random.pseudo_bytes(-1)
|
26
|
+
}.should raise_error(ArgumentError)
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# -*- encoding: US-ASCII -*-
|
2
|
+
module HMACConstants
|
3
|
+
|
4
|
+
Contents = "Ipsum is simply dummy text of the printing and typesetting industry. \nLorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. \nIt has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. \nIt was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."
|
5
|
+
Key = 'sekrit'
|
6
|
+
|
7
|
+
BlankSHA1Digest = "\3329\243\356^kK\r2U\277\357\225`\030\220\257\330\a\t"
|
8
|
+
SHA1Digest = "\236\022\323\341\037\236\262n\344\t\372:\004J\242\330\257\270\363\264"
|
9
|
+
BlankSHA1HexDigest = "da39a3ee5e6b4b0d3255bfef95601890afd80709"
|
10
|
+
SHA1Hexdigest = "9e12d3e11f9eb26ee409fa3a044aa2d8afb8f3b4"
|
11
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
|
3
|
+
describe "OpenSSL::X509::Name.parse" do
|
4
|
+
it "parses a /-delimited string of key-value pairs into a Name" do
|
5
|
+
dn = "/DC=org/DC=ruby-lang/CN=www.ruby-lang.org"
|
6
|
+
name = OpenSSL::X509::Name.parse(dn)
|
7
|
+
|
8
|
+
name.to_s.should == dn
|
9
|
+
|
10
|
+
ary = name.to_a
|
11
|
+
|
12
|
+
ary[0][0].should == "DC"
|
13
|
+
ary[1][0].should == "DC"
|
14
|
+
ary[2][0].should == "CN"
|
15
|
+
ary[0][1].should == "org"
|
16
|
+
ary[1][1].should == "ruby-lang"
|
17
|
+
ary[2][1].should == "www.ruby-lang.org"
|
18
|
+
ary[0][2].should == OpenSSL::ASN1::IA5STRING
|
19
|
+
ary[1][2].should == OpenSSL::ASN1::IA5STRING
|
20
|
+
ary[2][2].should == OpenSSL::ASN1::UTF8STRING
|
21
|
+
end
|
22
|
+
|
23
|
+
it "parses a comma-delimited string of key-value pairs into a name" do
|
24
|
+
dn = "DC=org, DC=ruby-lang, CN=www.ruby-lang.org"
|
25
|
+
name = OpenSSL::X509::Name.parse(dn)
|
26
|
+
|
27
|
+
name.to_s.should == "/DC=org/DC=ruby-lang/CN=www.ruby-lang.org"
|
28
|
+
|
29
|
+
ary = name.to_a
|
30
|
+
|
31
|
+
ary[0][1].should == "org"
|
32
|
+
ary[1][1].should == "ruby-lang"
|
33
|
+
ary[2][1].should == "www.ruby-lang.org"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "raises TypeError if the given string contains no key/value pairs" do
|
37
|
+
lambda do
|
38
|
+
OpenSSL::X509::Name.parse("hello")
|
39
|
+
end.should raise_error(TypeError)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "raises OpenSSL::X509::NameError if the given string contains invalid keys" do
|
43
|
+
lambda do
|
44
|
+
OpenSSL::X509::Name.parse("hello=goodbye")
|
45
|
+
end.should raise_error(OpenSSL::X509::NameError)
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,118 +1,182 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysl-openssl
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 0.0.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Brian Shirai
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
date: 2013-08-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
22
21
|
prerelease: false
|
23
|
-
|
24
|
-
|
25
|
-
requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
26
24
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
version: "1.0"
|
33
|
-
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
36
28
|
name: rake
|
37
|
-
|
38
|
-
|
39
|
-
none: false
|
40
|
-
requirements:
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
41
31
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 10
|
46
|
-
- 0
|
47
|
-
version: "10.0"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
48
34
|
type: :development
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: mspec
|
52
35
|
prerelease: false
|
53
|
-
|
54
|
-
|
55
|
-
requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
56
38
|
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.5'
|
63
48
|
type: :development
|
64
|
-
|
65
|
-
|
66
|
-
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.5'
|
55
|
+
description: Ruby standard library OpenSSL.
|
56
|
+
email:
|
67
57
|
- brixen@gmail.com
|
68
58
|
executables: []
|
69
|
-
|
70
|
-
|
71
|
-
|
59
|
+
extensions:
|
60
|
+
- ext/rubysl/openssl/extconf.rb
|
72
61
|
extra_rdoc_files: []
|
73
|
-
|
74
|
-
files:
|
62
|
+
files:
|
75
63
|
- .gitignore
|
64
|
+
- .travis.yml
|
76
65
|
- Gemfile
|
77
66
|
- LICENSE
|
78
67
|
- README.md
|
79
68
|
- Rakefile
|
80
|
-
-
|
81
|
-
-
|
69
|
+
- ext/rubysl/openssl/extconf.h
|
70
|
+
- ext/rubysl/openssl/extconf.rb
|
71
|
+
- ext/rubysl/openssl/openssl_missing.c
|
72
|
+
- ext/rubysl/openssl/openssl_missing.h
|
73
|
+
- ext/rubysl/openssl/ossl.c
|
74
|
+
- ext/rubysl/openssl/ossl.h
|
75
|
+
- ext/rubysl/openssl/ossl_asn1.c
|
76
|
+
- ext/rubysl/openssl/ossl_asn1.h
|
77
|
+
- ext/rubysl/openssl/ossl_bio.c
|
78
|
+
- ext/rubysl/openssl/ossl_bio.h
|
79
|
+
- ext/rubysl/openssl/ossl_bn.c
|
80
|
+
- ext/rubysl/openssl/ossl_bn.h
|
81
|
+
- ext/rubysl/openssl/ossl_cipher.c
|
82
|
+
- ext/rubysl/openssl/ossl_cipher.h
|
83
|
+
- ext/rubysl/openssl/ossl_config.c
|
84
|
+
- ext/rubysl/openssl/ossl_config.h
|
85
|
+
- ext/rubysl/openssl/ossl_digest.c
|
86
|
+
- ext/rubysl/openssl/ossl_digest.h
|
87
|
+
- ext/rubysl/openssl/ossl_engine.c
|
88
|
+
- ext/rubysl/openssl/ossl_engine.h
|
89
|
+
- ext/rubysl/openssl/ossl_hmac.c
|
90
|
+
- ext/rubysl/openssl/ossl_hmac.h
|
91
|
+
- ext/rubysl/openssl/ossl_ns_spki.c
|
92
|
+
- ext/rubysl/openssl/ossl_ns_spki.h
|
93
|
+
- ext/rubysl/openssl/ossl_ocsp.c
|
94
|
+
- ext/rubysl/openssl/ossl_ocsp.h
|
95
|
+
- ext/rubysl/openssl/ossl_pkcs12.c
|
96
|
+
- ext/rubysl/openssl/ossl_pkcs12.h
|
97
|
+
- ext/rubysl/openssl/ossl_pkcs5.c
|
98
|
+
- ext/rubysl/openssl/ossl_pkcs5.h
|
99
|
+
- ext/rubysl/openssl/ossl_pkcs7.c
|
100
|
+
- ext/rubysl/openssl/ossl_pkcs7.h
|
101
|
+
- ext/rubysl/openssl/ossl_pkey.c
|
102
|
+
- ext/rubysl/openssl/ossl_pkey.h
|
103
|
+
- ext/rubysl/openssl/ossl_pkey_dh.c
|
104
|
+
- ext/rubysl/openssl/ossl_pkey_dsa.c
|
105
|
+
- ext/rubysl/openssl/ossl_pkey_ec.c
|
106
|
+
- ext/rubysl/openssl/ossl_pkey_rsa.c
|
107
|
+
- ext/rubysl/openssl/ossl_rand.c
|
108
|
+
- ext/rubysl/openssl/ossl_rand.h
|
109
|
+
- ext/rubysl/openssl/ossl_ssl.c
|
110
|
+
- ext/rubysl/openssl/ossl_ssl.h
|
111
|
+
- ext/rubysl/openssl/ossl_ssl_session.c
|
112
|
+
- ext/rubysl/openssl/ossl_version.h
|
113
|
+
- ext/rubysl/openssl/ossl_x509.c
|
114
|
+
- ext/rubysl/openssl/ossl_x509.h
|
115
|
+
- ext/rubysl/openssl/ossl_x509attr.c
|
116
|
+
- ext/rubysl/openssl/ossl_x509cert.c
|
117
|
+
- ext/rubysl/openssl/ossl_x509crl.c
|
118
|
+
- ext/rubysl/openssl/ossl_x509ext.c
|
119
|
+
- ext/rubysl/openssl/ossl_x509name.c
|
120
|
+
- ext/rubysl/openssl/ossl_x509req.c
|
121
|
+
- ext/rubysl/openssl/ossl_x509revoked.c
|
122
|
+
- ext/rubysl/openssl/ossl_x509store.c
|
123
|
+
- ext/rubysl/openssl/ruby_missing.h
|
124
|
+
- lib/openssl.rb
|
125
|
+
- lib/openssl/bn.rb
|
126
|
+
- lib/openssl/buffering.rb
|
127
|
+
- lib/openssl/cipher.rb
|
128
|
+
- lib/openssl/config.rb
|
129
|
+
- lib/openssl/digest.rb
|
130
|
+
- lib/openssl/net/ftptls.rb
|
131
|
+
- lib/openssl/net/telnets.rb
|
132
|
+
- lib/openssl/pkcs7.rb
|
133
|
+
- lib/openssl/ssl-internal.rb
|
134
|
+
- lib/openssl/ssl.rb
|
135
|
+
- lib/openssl/x509-internal.rb
|
136
|
+
- lib/openssl/x509.rb
|
137
|
+
- lib/rubysl/openssl.rb
|
138
|
+
- lib/rubysl/openssl/version.rb
|
82
139
|
- rubysl-openssl.gemspec
|
83
|
-
|
84
|
-
|
85
|
-
|
140
|
+
- spec/cipher_spec.rb
|
141
|
+
- spec/config/freeze_spec.rb
|
142
|
+
- spec/hmac/digest_spec.rb
|
143
|
+
- spec/hmac/hexdigest_spec.rb
|
144
|
+
- spec/random/pseudo_bytes_spec.rb
|
145
|
+
- spec/random/random_bytes_spec.rb
|
146
|
+
- spec/random/shared/random_bytes.rb
|
147
|
+
- spec/shared/constants.rb
|
148
|
+
- spec/x509/name/parse_spec.rb
|
149
|
+
homepage: https://github.com/rubysl/rubysl-openssl
|
150
|
+
licenses:
|
151
|
+
- BSD
|
152
|
+
metadata: {}
|
86
153
|
post_install_message:
|
87
154
|
rdoc_options: []
|
88
|
-
|
89
|
-
require_paths:
|
155
|
+
require_paths:
|
90
156
|
- lib
|
91
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
none: false
|
102
|
-
requirements:
|
103
|
-
- - ">="
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
hash: 2002549777813010636
|
106
|
-
segments:
|
107
|
-
- 0
|
108
|
-
version: "0"
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
109
167
|
requirements: []
|
110
|
-
|
111
168
|
rubyforge_project:
|
112
|
-
rubygems_version:
|
169
|
+
rubygems_version: 2.0.3
|
113
170
|
signing_key:
|
114
|
-
specification_version:
|
115
|
-
summary: Ruby
|
116
|
-
test_files:
|
117
|
-
|
118
|
-
|
171
|
+
specification_version: 4
|
172
|
+
summary: Ruby standard library OpenSSL.
|
173
|
+
test_files:
|
174
|
+
- spec/cipher_spec.rb
|
175
|
+
- spec/config/freeze_spec.rb
|
176
|
+
- spec/hmac/digest_spec.rb
|
177
|
+
- spec/hmac/hexdigest_spec.rb
|
178
|
+
- spec/random/pseudo_bytes_spec.rb
|
179
|
+
- spec/random/random_bytes_spec.rb
|
180
|
+
- spec/random/shared/random_bytes.rb
|
181
|
+
- spec/shared/constants.rb
|
182
|
+
- spec/x509/name/parse_spec.rb
|