r509 0.10.0 → 1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.mdown +2 -2
- data/Rakefile +2 -3
- data/bin/r509 +77 -80
- data/bin/r509-parse +4 -4
- data/doc/R509.html +60 -60
- data/doc/R509/ASN1.html +158 -48
- data/doc/R509/ASN1/GeneralName.html +157 -154
- data/doc/R509/ASN1/GeneralNames.html +246 -237
- data/doc/R509/CRL.html +41 -39
- data/doc/R509/CRL/Administrator.html +105 -100
- data/doc/R509/CRL/FileReaderWriter.html +146 -98
- data/doc/R509/CRL/ReaderWriter.html +57 -54
- data/doc/R509/CRL/SQLiteReaderWriter.html +727 -0
- data/doc/R509/CRL/SignedList.html +83 -80
- data/doc/R509/CSR.html +184 -162
- data/doc/R509/Cert.html +271 -269
- data/doc/R509/Cert/Extensions.html +62 -63
- data/doc/R509/Cert/Extensions/AuthorityInfoAccess.html +138 -108
- data/doc/R509/Cert/Extensions/AuthorityKeyIdentifier.html +100 -84
- data/doc/R509/Cert/Extensions/BasicConstraints.html +89 -88
- data/doc/R509/Cert/Extensions/CRLDistributionPoints.html +87 -83
- data/doc/R509/Cert/Extensions/CertificatePolicies.html +78 -76
- data/doc/R509/Cert/Extensions/ExtendedKeyUsage.html +128 -125
- data/doc/R509/Cert/Extensions/GeneralNamesMixin.html +83 -78
- data/doc/R509/Cert/Extensions/InhibitAnyPolicy.html +69 -67
- data/doc/R509/Cert/Extensions/KeyUsage.html +138 -135
- data/doc/R509/Cert/Extensions/NameConstraints.html +82 -81
- data/doc/R509/Cert/Extensions/NoticeReference.html +59 -56
- data/doc/R509/Cert/Extensions/OCSPNoCheck.html +70 -69
- data/doc/R509/Cert/Extensions/PolicyConstraints.html +71 -69
- data/doc/R509/Cert/Extensions/PolicyInformation.html +63 -60
- data/doc/R509/Cert/Extensions/PolicyQualifiers.html +60 -57
- data/doc/R509/Cert/Extensions/SubjectAlternativeName.html +91 -87
- data/doc/R509/Cert/Extensions/SubjectKeyIdentifier.html +72 -71
- data/doc/R509/Cert/Extensions/UserNotice.html +60 -57
- data/doc/R509/Cert/Extensions/ValidationMixin.html +43 -40
- data/doc/R509/CertificateAuthority.html +39 -37
- data/doc/R509/CertificateAuthority/OptionsBuilder.html +58 -55
- data/doc/R509/CertificateAuthority/Signer.html +277 -60
- data/doc/R509/Config.html +40 -38
- data/doc/R509/Config/CAConfig.html +255 -188
- data/doc/R509/Config/CAConfigPool.html +64 -61
- data/doc/R509/Config/CertProfile.html +119 -116
- data/doc/R509/Config/SubjectItemPolicy.html +94 -93
- data/doc/R509/Engine.html +60 -56
- data/doc/R509/Helpers.html +99 -96
- data/doc/R509/MessageDigest.html +69 -68
- data/doc/R509/NameSanitizer.html +51 -48
- data/doc/R509/OCSP.html +39 -37
- data/doc/R509/OCSP/Request.html +39 -37
- data/doc/R509/OCSP/Request/Nonce.html +67 -67
- data/doc/R509/OCSP/Response.html +93 -90
- data/doc/R509/OIDMapper.html +48 -46
- data/doc/R509/PrivateKey.html +170 -169
- data/doc/R509/R509Error.html +45 -42
- data/doc/R509/SPKI.html +99 -89
- data/doc/R509/Subject.html +86 -83
- data/doc/R509/Validity.html +57 -57
- data/doc/R509/Validity/Checker.html +63 -93
- data/doc/R509/Validity/DefaultChecker.html +58 -55
- data/doc/R509/Validity/DefaultWriter.html +62 -59
- data/doc/R509/Validity/Status.html +77 -74
- data/doc/R509/Validity/Writer.html +75 -123
- data/doc/_index.html +37 -31
- data/doc/class_list.html +25 -27
- data/doc/css/full_list.css +32 -31
- data/doc/css/style.css +221 -78
- data/doc/file.CONTRIBUTING.html +29 -30
- data/doc/file.LICENSE.html +29 -30
- data/doc/file.README.html +31 -32
- data/doc/file.YAML.html +33 -34
- data/doc/file.r509.html +39 -48
- data/doc/file_list.html +39 -30
- data/doc/frames.html +10 -21
- data/doc/index.html +31 -32
- data/doc/js/app.js +100 -71
- data/doc/js/full_list.js +168 -130
- data/doc/method_list.html +1788 -1119
- data/doc/top-level-namespace.html +45 -49
- data/lib/r509.rb +21 -7
- data/lib/r509/asn1.rb +45 -32
- data/lib/r509/cert.rb +45 -51
- data/lib/r509/cert/extensions/authority_info_access.rb +49 -23
- data/lib/r509/cert/extensions/authority_key_identifier.rb +16 -11
- data/lib/r509/cert/extensions/base.rb +22 -23
- data/lib/r509/cert/extensions/basic_constraints.rb +11 -12
- data/lib/r509/cert/extensions/certificate_policies.rb +26 -26
- data/lib/r509/cert/extensions/crl_distribution_points.rb +5 -7
- data/lib/r509/cert/extensions/extended_key_usage.rb +5 -5
- data/lib/r509/cert/extensions/inhibit_any_policy.rb +4 -3
- data/lib/r509/cert/extensions/key_usage.rb +5 -5
- data/lib/r509/cert/extensions/name_constraints.rb +16 -16
- data/lib/r509/cert/extensions/ocsp_no_check.rb +3 -3
- data/lib/r509/cert/extensions/policy_constraints.rb +8 -8
- data/lib/r509/cert/extensions/subject_alternative_name.rb +5 -4
- data/lib/r509/cert/extensions/subject_key_identifier.rb +5 -5
- data/lib/r509/cert/extensions/validation_mixin.rb +11 -10
- data/lib/r509/certificate_authority/options_builder.rb +19 -21
- data/lib/r509/certificate_authority/signer.rb +26 -27
- data/lib/r509/config.rb +1 -0
- data/lib/r509/config/ca_config.rb +70 -75
- data/lib/r509/config/cert_profile.rb +9 -8
- data/lib/r509/config/subject_item_policy.rb +25 -28
- data/lib/r509/crl/administrator.rb +19 -20
- data/lib/r509/crl/reader_writer.rb +10 -8
- data/lib/r509/crl/signed_list.rb +4 -4
- data/lib/r509/crl/sqlite_reader_writer.rb +75 -0
- data/lib/r509/csr.rb +54 -60
- data/lib/r509/ec-hack.rb +3 -2
- data/lib/r509/engine.rb +5 -6
- data/lib/r509/exceptions.rb +1 -1
- data/lib/r509/helpers.rb +11 -14
- data/lib/r509/io_helpers.rb +7 -7
- data/lib/r509/message_digest.rb +5 -6
- data/lib/r509/ocsp.rb +11 -13
- data/lib/r509/oid_mapper.rb +2 -2
- data/lib/r509/private_key.rb +28 -32
- data/lib/r509/spki.rb +17 -20
- data/lib/r509/subject.rb +26 -27
- data/lib/r509/trollop.rb +1 -0
- data/lib/r509/validity.rb +30 -21
- data/lib/r509/version.rb +4 -2
- data/r509.yaml +9 -17
- data/spec/asn1_spec.rb +145 -146
- data/spec/cert/extensions/authority_info_access_spec.rb +41 -41
- data/spec/cert/extensions/authority_key_identifier_spec.rb +29 -23
- data/spec/cert/extensions/base_spec.rb +38 -34
- data/spec/cert/extensions/basic_constraints_spec.rb +21 -21
- data/spec/cert/extensions/certificate_policies_spec.rb +99 -87
- data/spec/cert/extensions/crl_distribution_points_spec.rb +24 -25
- data/spec/cert/extensions/extended_key_usage_spec.rb +40 -36
- data/spec/cert/extensions/inhibit_any_policy_spec.rb +12 -12
- data/spec/cert/extensions/key_usage_spec.rb +44 -39
- data/spec/cert/extensions/name_constraints_spec.rb +83 -83
- data/spec/cert/extensions/ocsp_no_check_spec.rb +10 -10
- data/spec/cert/extensions/policy_constraints_spec.rb +19 -19
- data/spec/cert/extensions/subject_alternative_name_spec.rb +46 -47
- data/spec/cert/extensions/subject_key_identifier_spec.rb +10 -10
- data/spec/cert_spec.rb +105 -101
- data/spec/certificate_authority/options_builder_spec.rb +90 -90
- data/spec/certificate_authority/signer_spec.rb +41 -41
- data/spec/config/ca_config_spec.rb +169 -119
- data/spec/config/cert_profile_spec.rb +33 -33
- data/spec/config/subject_item_policy_spec.rb +22 -22
- data/spec/crl/administrator_spec.rb +65 -65
- data/spec/crl/reader_writer_spec.rb +20 -19
- data/spec/crl/signed_list_spec.rb +26 -26
- data/spec/crl/sqlite_reader_writer_spec.rb +42 -0
- data/spec/csr_spec.rb +149 -145
- data/spec/engine_spec.rb +14 -14
- data/spec/fixtures.rb +56 -39
- data/spec/fixtures/crl_list.sql +13 -0
- data/spec/fixtures/csr1.der +0 -0
- data/spec/fixtures/csr1.pem +6 -6
- data/spec/message_digest_spec.rb +43 -43
- data/spec/ocsp_spec.rb +25 -25
- data/spec/oid_mapper_spec.rb +18 -19
- data/spec/private_key_spec.rb +79 -81
- data/spec/r509_spec.rb +16 -16
- data/spec/spec_helper.rb +3 -3
- data/spec/spki_spec.rb +94 -94
- data/spec/subject_spec.rb +107 -107
- data/spec/validity_spec.rb +25 -25
- metadata +113 -111
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 562903e3dc32d6329ab86cb309e457a5980317c5
|
4
|
+
data.tar.gz: 41cabe1dd8f48dc0ff5fe68ddecc3e165e7e4843
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bbad952fef78a95c90ab557a2886064a75c448d02f924219ab4234d2cdc180349413f41afdde9e7b2e68f2d1023a22953d03f094eed874b57e47248f7c24606e
|
7
|
+
data.tar.gz: b59f9c35ea888698344eaddde1c29490d4475755c5da9fba6ffbf756ed3243663489deedb61025b5b23ff30c7f3ac91a248ea89800c3073a00164b4967469787
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/README.mdown
CHANGED
@@ -337,7 +337,7 @@ example_ca:
|
|
337
337
|
key: <add_path>
|
338
338
|
ocsp_start_skew_seconds: 3600
|
339
339
|
ocsp_validity_hours: 168
|
340
|
-
crl_md:
|
340
|
+
crl_md: SHA256
|
341
341
|
profiles:
|
342
342
|
profile:
|
343
343
|
subject_item_policy:
|
@@ -396,7 +396,7 @@ subject.common_name = "newdomain.com"
|
|
396
396
|
subject.organization = "Org 2.0"
|
397
397
|
ext = []
|
398
398
|
ext << R509::Cert::Extensions::BasicConstraints.new(:ca => false)
|
399
|
-
ext << R509::Cert::Extensions::SubjectAlternativeName.new(:
|
399
|
+
ext << R509::Cert::Extensions::SubjectAlternativeName.new(:value => san_names)
|
400
400
|
# assume config from yaml load above
|
401
401
|
ca = R509::CertificateAuthority::Signer.new(config)
|
402
402
|
cert = ca.sign(
|
data/Rakefile
CHANGED
@@ -30,15 +30,14 @@ end
|
|
30
30
|
|
31
31
|
desc "Open an irb session with the lib dir included"
|
32
32
|
task :irb do
|
33
|
-
|
34
|
-
|
33
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
34
|
+
$LOAD_PATH.unshift File.expand_path("../", __FILE__)
|
35
35
|
require 'r509'
|
36
36
|
require 'irb'
|
37
37
|
ARGV.clear
|
38
38
|
IRB.start
|
39
39
|
end
|
40
40
|
|
41
|
-
|
42
41
|
desc 'Build yard documentation'
|
43
42
|
task :yard do
|
44
43
|
puts `yard`
|
data/bin/r509
CHANGED
@@ -2,29 +2,38 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'r509'
|
4
4
|
require 'r509/trollop'
|
5
|
+
require 'io/console'
|
5
6
|
|
6
|
-
opts = R509::Trollop
|
7
|
+
opts = R509::Trollop.options do
|
7
8
|
opt :interactive, "Interactive CSR/self-signed certificate generation. Overrides all flags other than keyout and out."
|
8
9
|
opt :subject, "X509 subject / delimited. Example: /CN=test.com/O=Org/C=US/ST=Illinois/L=Chicago", :type => :string
|
9
|
-
opt :
|
10
|
+
opt :san, "Subject Alternative Name Example: test.com,*.test.com", :type => :string
|
11
|
+
opt :message_digest, "Message digest to use. sha1, sha224, sha256, sha384, sha512, md5", :type => :string, :default => 'sha256'
|
10
12
|
opt :duration, "Self-sign the certificate with the duration (in days) specified.", :type => :integer
|
11
13
|
opt :bits, "Bit length of generated key. Ignored for EC.", :type => :integer, :default => 2048
|
12
14
|
opt :curve_name, "Name of elliptic curve to use. Only used for EC.", :type => :string, :default => 'secp384r1'
|
13
15
|
opt :keyout, "File name to save generated key.", :type => :string
|
14
16
|
opt :out, "File name to save generated CSR or self-signed certificate", :type => :string
|
15
17
|
opt :type, "Type of key to generate. RSA/DSA/EC", :type => :string, :default => "RSA"
|
18
|
+
opt :password, "Password to encrypt generated key", :type => :string
|
19
|
+
if RUBY_PLATFORM.match('darwin')
|
20
|
+
opt :clipboard, "Copy CSR or certificate to the clipboard", :default => false, :short => :p
|
21
|
+
end
|
16
22
|
version "r509 #{R509::VERSION}"
|
17
23
|
end
|
18
24
|
|
19
|
-
|
20
|
-
|
25
|
+
opts[:duration] = opts[:duration].to_i
|
26
|
+
subject = []
|
27
|
+
|
28
|
+
if opts[:interactive] == true || opts[:subject].nil?
|
29
|
+
if opts[:type].upcase == "RSA" || opts[:type].upcase == "DSA"
|
21
30
|
print "CSR Bit Length (2048):"
|
22
31
|
bit_length = gets.chomp
|
23
|
-
|
32
|
+
opts[:bits] = (bit_length.to_i > 0) ? bit_length.to_i : 2048
|
24
33
|
elsif opts[:type].upcase == "EC"
|
25
34
|
print "Curve Name (secp384r1):"
|
26
35
|
curve_name = gets.chomp
|
27
|
-
curve_name = (
|
36
|
+
opts[:curve_name] = (!curve_name.empty?) ? curve_name : 'secp384r1'
|
28
37
|
else
|
29
38
|
puts "Invalid key type specified. RSA/DSA/EC"
|
30
39
|
exit
|
@@ -42,115 +51,103 @@ if opts[:interactive] == true or opts[:subject].nil? then
|
|
42
51
|
else R509::MessageDigest::DEFAULT_MD
|
43
52
|
end
|
44
53
|
|
45
|
-
subject = []
|
46
54
|
print "C (US): "
|
47
55
|
c = gets.chomp
|
48
|
-
c = c.empty? ? 'US':c
|
49
|
-
subject.push ['C',c]
|
56
|
+
c = c.empty? ? 'US' : c
|
57
|
+
subject.push ['C', c]
|
50
58
|
|
51
59
|
print "ST (Illinois): "
|
52
60
|
st = gets.chomp
|
53
|
-
st = st.empty? ? 'Illinois':st
|
54
|
-
subject.push ['ST',st]
|
61
|
+
st = st.empty? ? 'Illinois' : st
|
62
|
+
subject.push ['ST', st]
|
55
63
|
|
56
64
|
print "L (Chicago): "
|
57
65
|
l = gets.chomp
|
58
|
-
l = l.empty? ? 'Chicago':l
|
59
|
-
subject.push ['L',l]
|
66
|
+
l = l.empty? ? 'Chicago' : l
|
67
|
+
subject.push ['L', l]
|
60
68
|
|
61
69
|
print "O (r509 LLC): "
|
62
70
|
o = gets.chomp
|
63
|
-
o = o.empty? ? 'r509 LLC':o
|
64
|
-
subject.push ['O',o]
|
71
|
+
o = o.empty? ? 'r509 LLC' : o
|
72
|
+
subject.push ['O', o]
|
65
73
|
|
66
74
|
print "OU (null by default): "
|
67
75
|
ou = gets.chomp
|
68
|
-
|
69
|
-
subject.push ['OU',ou]
|
76
|
+
unless ou.empty?
|
77
|
+
subject.push ['OU', ou]
|
70
78
|
end
|
71
79
|
|
72
80
|
print "CN: "
|
73
|
-
subject.push ['CN',gets.chomp]
|
81
|
+
subject.push ['CN', gets.chomp]
|
74
82
|
print "SAN Domains (comma separated):"
|
75
|
-
|
76
|
-
san_domains = gets.chomp.split(',').collect { |domain| domain.strip }
|
77
|
-
csr = R509::CSR.new(
|
78
|
-
:subject => subject,
|
79
|
-
:bit_length => bit_length,
|
80
|
-
:type => opts[:type].upcase,
|
81
|
-
:curve_name => curve_name,
|
82
|
-
:san_names => san_domains,
|
83
|
-
:message_digest => opts[:message_digest]
|
84
|
-
)
|
83
|
+
opts[:san] = gets.chomp
|
85
84
|
|
86
|
-
selfsign = 0
|
87
85
|
print "Self-signed cert duration in days (null disables self-sign):"
|
88
|
-
|
89
|
-
|
90
|
-
|
86
|
+
opts[:duration] = gets.chomp.to_i
|
87
|
+
|
88
|
+
print "Password to encrypt generated key (empty disables encryption):"
|
89
|
+
password = STDIN.noecho(&:gets).chomp
|
90
|
+
puts ""
|
91
|
+
unless password.empty?
|
92
|
+
print "Retype password:"
|
93
|
+
password_confirm = STDIN.noecho(&:gets).chomp
|
94
|
+
puts ""
|
95
|
+
unless password == password_confirm
|
96
|
+
puts "Passwords do not match."
|
97
|
+
exit
|
98
|
+
end
|
99
|
+
opts[:password] = password
|
91
100
|
end
|
92
|
-
|
93
|
-
subject
|
94
|
-
|
95
|
-
|
96
|
-
value = item.split('=')
|
97
|
-
subject.add_entry(value[0],value[1])
|
101
|
+
else
|
102
|
+
opts[:subject].chomp.split('/').each do |item|
|
103
|
+
if item != ''
|
104
|
+
subject.push item.split('=')[0..1]
|
98
105
|
end
|
99
|
-
|
100
|
-
csr = R509::CSR.new(
|
101
|
-
:subject => subject,
|
102
|
-
:bit_length => opts[:bits],
|
103
|
-
:type => opts[:type].upcase,
|
104
|
-
:curve_name => opts[:curve_name],
|
105
|
-
:message_digest => opts[:message_digest]
|
106
|
-
)
|
107
|
-
selfsign = opts[:duration] || 0
|
106
|
+
end
|
108
107
|
end
|
109
108
|
|
109
|
+
csr_or_cert = csr = R509::CSR.new(
|
110
|
+
:subject => subject,
|
111
|
+
:bit_length => opts[:bits],
|
112
|
+
:type => opts[:type].upcase,
|
113
|
+
:curve_name => opts[:curve_name],
|
114
|
+
:san_names => (opts[:san] || "").split(',').map { |domain| domain.strip },
|
115
|
+
:message_digest => opts[:message_digest]
|
116
|
+
)
|
117
|
+
|
118
|
+
# for self signed, outputting the cert (not the csr)
|
119
|
+
selfsign = opts[:duration]
|
110
120
|
if selfsign > 0
|
111
|
-
|
121
|
+
csr_or_cert = R509::CertificateAuthority::Signer.selfsign(
|
112
122
|
:csr => csr,
|
113
|
-
:not_after => Time.now.to_i+86400*selfsign,
|
123
|
+
:not_after => Time.now.to_i + 86400 * selfsign,
|
114
124
|
:message_digest => opts[:message_digest]
|
115
125
|
)
|
116
|
-
|
117
|
-
puts csr.key.to_pem
|
118
|
-
else
|
119
|
-
csr.key.write_pem(opts[:keyout])
|
120
|
-
end
|
121
|
-
if opts[:out].nil?
|
122
|
-
puts cert.to_pem
|
123
|
-
else
|
124
|
-
cert.write_pem(opts[:out])
|
125
|
-
end
|
126
|
+
end
|
126
127
|
|
127
|
-
|
128
|
-
if
|
129
|
-
|
130
|
-
end
|
131
|
-
else
|
132
|
-
if opts[:keyout].nil?
|
133
|
-
puts csr.key.to_pem
|
128
|
+
if opts[:keyout]
|
129
|
+
if opts[:password]
|
130
|
+
csr.key.write_encrypted_pem(opts[:keyout], "aes256", opts[:password])
|
134
131
|
else
|
135
132
|
csr.key.write_pem(opts[:keyout])
|
136
133
|
end
|
137
|
-
|
138
|
-
if opts[:
|
139
|
-
puts csr.
|
134
|
+
else
|
135
|
+
if opts[:password]
|
136
|
+
puts csr.key.to_encrypted_pem("aes256", opts[:password])
|
140
137
|
else
|
141
|
-
csr.
|
138
|
+
puts csr.key.to_pem
|
142
139
|
end
|
140
|
+
end
|
143
141
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
142
|
+
if opts[:out]
|
143
|
+
csr_or_cert.write_pem(opts[:out])
|
144
|
+
else
|
145
|
+
puts csr_or_cert.to_pem
|
148
146
|
end
|
149
147
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
end
|
148
|
+
puts csr_or_cert.subject
|
149
|
+
puts "SAN(s): #{csr_or_cert.san.names.map { |n| n.value }.join(", ")}" if csr_or_cert.san
|
150
|
+
|
151
|
+
if opts[:clipboard]
|
152
|
+
IO.popen('pbcopy', 'w').puts csr_or_cert
|
156
153
|
end
|
data/bin/r509-parse
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'r509'
|
4
4
|
|
5
|
-
if ARGV[0].nil?
|
5
|
+
if ARGV[0].nil?
|
6
6
|
puts "CSR and certificate parsing using r509 v#{R509::VERSION}."
|
7
7
|
puts "Usage: r509-parse <cert or csr>"
|
8
8
|
else
|
@@ -10,16 +10,16 @@ else
|
|
10
10
|
csr = R509::CSR.load_from_file ARGV[0]
|
11
11
|
rescue
|
12
12
|
end
|
13
|
-
if
|
13
|
+
if csr
|
14
14
|
puts "Subject: #{csr.subject}"
|
15
15
|
puts "Algorithm: #{csr.signature_algorithm}"
|
16
|
-
|
16
|
+
puts "SAN Names: #{csr.san.names.map { |n| n.value }.join(" , ")}"
|
17
17
|
else
|
18
18
|
begin
|
19
19
|
cert = R509::Cert.load_from_file ARGV[0]
|
20
20
|
rescue
|
21
21
|
end
|
22
|
-
if
|
22
|
+
if cert
|
23
23
|
puts "Subject: #{cert.subject}"
|
24
24
|
puts "Issuer: #{cert.issuer}"
|
25
25
|
puts "Algorithm: #{cert.signature_algorithm}"
|
data/doc/R509.html
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
<!DOCTYPE html
|
2
|
-
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
4
3
|
<head>
|
5
|
-
<meta
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
6
|
<title>
|
7
7
|
Module: R509
|
8
8
|
|
9
|
-
— Documentation by YARD 0.
|
9
|
+
— Documentation by YARD 0.9.5
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -15,9 +15,8 @@
|
|
15
15
|
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
16
|
|
17
17
|
<script type="text/javascript" charset="utf-8">
|
18
|
-
|
18
|
+
pathId = "R509";
|
19
19
|
relpath = '';
|
20
|
-
framesUrl = "frames.html#!" + escape(window.location.href);
|
21
20
|
</script>
|
22
21
|
|
23
22
|
|
@@ -28,63 +27,65 @@
|
|
28
27
|
|
29
28
|
</head>
|
30
29
|
<body>
|
31
|
-
<div
|
32
|
-
<
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="class_list.html"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
33
38
|
|
34
39
|
<a href="_index.html">Index (R)</a> »
|
35
40
|
|
36
41
|
|
37
42
|
<span class="title">R509</span>
|
38
43
|
|
39
|
-
|
40
|
-
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
44
|
</div>
|
42
45
|
|
43
|
-
|
46
|
+
<div id="search">
|
44
47
|
|
45
48
|
<a class="full_list_link" id="class_list_link"
|
46
49
|
href="class_list.html">
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
</a>
|
54
|
-
|
55
|
-
<a class="full_list_link" id="file_list_link"
|
56
|
-
href="file_list.html">
|
57
|
-
File List
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
58
56
|
</a>
|
59
57
|
|
60
58
|
</div>
|
61
|
-
|
62
|
-
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
63
61
|
|
64
|
-
|
62
|
+
<iframe id="search_frame" src="class_list.html"></iframe>
|
65
63
|
|
66
|
-
|
64
|
+
<div id="content"><h1>Module: R509
|
67
65
|
|
68
66
|
|
69
67
|
|
70
68
|
</h1>
|
69
|
+
<div class="box_info">
|
70
|
+
|
71
71
|
|
72
|
-
<dl class="box">
|
73
72
|
|
74
73
|
|
75
|
-
|
76
74
|
|
77
|
-
|
78
75
|
|
79
76
|
|
77
|
+
|
78
|
+
|
79
|
+
|
80
80
|
|
81
|
-
|
82
|
-
<
|
83
|
-
|
81
|
+
<dl>
|
82
|
+
<dt>Defined in:</dt>
|
83
|
+
<dd>lib/r509.rb<span class="defines">,<br />
|
84
|
+
lib/r509/csr.rb,<br /> lib/r509/spki.rb,<br /> lib/r509/asn1.rb,<br /> lib/r509/cert.rb,<br /> lib/r509/engine.rb,<br /> lib/r509/config.rb,<br /> lib/r509/version.rb,<br /> lib/r509/trollop.rb,<br /> lib/r509/subject.rb,<br /> lib/r509/helpers.rb,<br /> lib/r509/exceptions.rb,<br /> lib/r509/oid_mapper.rb,<br /> lib/r509/io_helpers.rb,<br /> lib/r509/private_key.rb,<br /> lib/r509/message_digest.rb,<br /> lib/r509/crl/signed_list.rb,<br /> lib/r509/config/ca_config.rb,<br /> lib/r509/crl/administrator.rb,<br /> lib/r509/crl/reader_writer.rb,<br /> lib/r509/config/cert_profile.rb,<br /> lib/r509/cert/extensions/base.rb,<br /> lib/r509/crl/sqlite_reader_writer.rb,<br /> lib/r509/cert/extensions/key_usage.rb,<br /> lib/r509/config/subject_item_policy.rb,<br /> lib/r509/cert/extensions/ocsp_no_check.rb,<br /> lib/r509/cert/extensions/name_constraints.rb,<br /> lib/r509/cert/extensions/validation_mixin.rb,<br /> lib/r509/cert/extensions/basic_constraints.rb,<br /> lib/r509/cert/extensions/policy_constraints.rb,<br /> lib/r509/cert/extensions/inhibit_any_policy.rb,<br /> lib/r509/cert/extensions/extended_key_usage.rb,<br /> lib/r509/cert/extensions/certificate_policies.rb,<br /> lib/r509/cert/extensions/authority_info_access.rb,<br /> lib/r509/cert/extensions/subject_key_identifier.rb,<br /> lib/r509/cert/extensions/crl_distribution_points.rb,<br /> lib/r509/cert/extensions/authority_key_identifier.rb,<br /> lib/r509/cert/extensions/subject_alternative_name.rb</span>
|
84
85
|
</dd>
|
86
|
+
</dl>
|
85
87
|
|
86
|
-
</
|
87
|
-
<div class="clear"></div>
|
88
|
+
</div>
|
88
89
|
|
89
90
|
<h2>Overview</h2><div class="docstring">
|
90
91
|
<div class="discussion">
|
@@ -111,11 +112,10 @@
|
|
111
112
|
</p>
|
112
113
|
|
113
114
|
<h2>Constant Summary</h2>
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
<
|
118
|
-
<div class="docstring">
|
115
|
+
<dl class="constants">
|
116
|
+
|
117
|
+
<dt id="VERSION-constant" class="">VERSION =
|
118
|
+
<div class="docstring">
|
119
119
|
<div class="discussion">
|
120
120
|
|
121
121
|
<p>The version of the r509 gem</p>
|
@@ -127,11 +127,10 @@
|
|
127
127
|
|
128
128
|
|
129
129
|
</div>
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
130
|
+
</dt>
|
131
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1.0</span><span class='tstring_end'>"</span></span></pre></dd>
|
132
|
+
|
133
|
+
</dl>
|
135
134
|
|
136
135
|
|
137
136
|
|
@@ -142,7 +141,7 @@
|
|
142
141
|
|
143
142
|
<h2>
|
144
143
|
Class Method Summary
|
145
|
-
<small
|
144
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
146
145
|
</h2>
|
147
146
|
|
148
147
|
<ul class="summary">
|
@@ -150,7 +149,7 @@
|
|
150
149
|
<li class="public ">
|
151
150
|
<span class="summary_signature">
|
152
151
|
|
153
|
-
<a href="#ec_supported%3F-class_method" title="ec_supported? (class method)"
|
152
|
+
<a href="#ec_supported%3F-class_method" title="ec_supported? (class method)">.<strong>ec_supported?</strong> ⇒ Boolean </a>
|
154
153
|
|
155
154
|
|
156
155
|
|
@@ -174,7 +173,7 @@
|
|
174
173
|
<li class="public ">
|
175
174
|
<span class="summary_signature">
|
176
175
|
|
177
|
-
<a href="#print_debug-class_method" title="print_debug (class method)"
|
176
|
+
<a href="#print_debug-class_method" title="print_debug (class method)">.<strong>print_debug</strong> ⇒ nil </a>
|
178
177
|
|
179
178
|
|
180
179
|
|
@@ -207,7 +206,7 @@
|
|
207
206
|
<div class="method_details first">
|
208
207
|
<h3 class="signature first" id="ec_supported?-class_method">
|
209
208
|
|
210
|
-
|
209
|
+
.<strong>ec_supported?</strong> ⇒ <tt>Boolean</tt>
|
211
210
|
|
212
211
|
|
213
212
|
|
@@ -243,15 +242,15 @@
|
|
243
242
|
<pre class="lines">
|
244
243
|
|
245
244
|
|
246
|
-
33
|
247
245
|
34
|
248
|
-
35
|
246
|
+
35
|
247
|
+
36</pre>
|
249
248
|
</td>
|
250
249
|
<td>
|
251
|
-
<pre class="code"><span class="info file"># File 'lib/r509.rb', line
|
250
|
+
<pre class="code"><span class="info file"># File 'lib/r509.rb', line 34</span>
|
252
251
|
|
253
252
|
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ec_supported?'>ec_supported?</span>
|
254
|
-
<span class='lparen'>(</span><span class='
|
253
|
+
<span class='lparen'>(</span><span class='op'>!</span><span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>EC</span><span class='op'>::</span><span class='const'>UNSUPPORTED</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
255
254
|
<span class='kw'>end</span></pre>
|
256
255
|
</td>
|
257
256
|
</tr>
|
@@ -261,7 +260,7 @@
|
|
261
260
|
<div class="method_details ">
|
262
261
|
<h3 class="signature " id="print_debug-class_method">
|
263
262
|
|
264
|
-
|
263
|
+
.<strong>print_debug</strong> ⇒ <tt>nil</tt>
|
265
264
|
|
266
265
|
|
267
266
|
|
@@ -297,15 +296,15 @@
|
|
297
296
|
<pre class="lines">
|
298
297
|
|
299
298
|
|
300
|
-
25
|
301
299
|
26
|
302
300
|
27
|
303
301
|
28
|
304
302
|
29
|
305
|
-
30
|
303
|
+
30
|
304
|
+
31</pre>
|
306
305
|
</td>
|
307
306
|
<td>
|
308
|
-
<pre class="code"><span class="info file"># File 'lib/r509.rb', line
|
307
|
+
<pre class="code"><span class="info file"># File 'lib/r509.rb', line 26</span>
|
309
308
|
|
310
309
|
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_print_debug'>print_debug</span>
|
311
310
|
<span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>r509 v</span><span class='embexpr_beg'>#{</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>VERSION</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
@@ -322,11 +321,12 @@
|
|
322
321
|
|
323
322
|
</div>
|
324
323
|
|
325
|
-
|
326
|
-
Generated on
|
324
|
+
<div id="footer">
|
325
|
+
Generated on Tue Dec 6 17:27:38 2016 by
|
327
326
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
328
|
-
0.
|
327
|
+
0.9.5 (ruby-2.4.0).
|
329
328
|
</div>
|
330
329
|
|
330
|
+
</div>
|
331
331
|
</body>
|
332
332
|
</html>
|