r509 0.8

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.
Files changed (162) hide show
  1. data/README.md +447 -0
  2. data/Rakefile +38 -0
  3. data/bin/r509 +96 -0
  4. data/bin/r509-parse +35 -0
  5. data/doc/R509.html +154 -0
  6. data/doc/R509/Cert.html +3954 -0
  7. data/doc/R509/Cert/Extensions.html +360 -0
  8. data/doc/R509/Cert/Extensions/AuthorityInfoAccess.html +391 -0
  9. data/doc/R509/Cert/Extensions/AuthorityKeyIdentifier.html +148 -0
  10. data/doc/R509/Cert/Extensions/BasicConstraints.html +482 -0
  11. data/doc/R509/Cert/Extensions/CrlDistributionPoints.html +316 -0
  12. data/doc/R509/Cert/Extensions/ExtendedKeyUsage.html +780 -0
  13. data/doc/R509/Cert/Extensions/KeyUsage.html +1230 -0
  14. data/doc/R509/Cert/Extensions/SubjectAlternativeName.html +467 -0
  15. data/doc/R509/Cert/Extensions/SubjectKeyIdentifier.html +216 -0
  16. data/doc/R509/CertificateAuthority.html +126 -0
  17. data/doc/R509/CertificateAuthority/Signer.html +855 -0
  18. data/doc/R509/Config.html +127 -0
  19. data/doc/R509/Config/CaConfig.html +2144 -0
  20. data/doc/R509/Config/CaConfigPool.html +599 -0
  21. data/doc/R509/Config/CaProfile.html +656 -0
  22. data/doc/R509/Config/SubjectItemPolicy.html +578 -0
  23. data/doc/R509/Crl.html +126 -0
  24. data/doc/R509/Crl/Administrator.html +2077 -0
  25. data/doc/R509/Crl/Parser.html +1224 -0
  26. data/doc/R509/Csr.html +2248 -0
  27. data/doc/R509/IOHelpers.html +564 -0
  28. data/doc/R509/MessageDigest.html +396 -0
  29. data/doc/R509/NameSanitizer.html +319 -0
  30. data/doc/R509/Ocsp.html +128 -0
  31. data/doc/R509/Ocsp/Request.html +126 -0
  32. data/doc/R509/Ocsp/Request/Nonce.html +160 -0
  33. data/doc/R509/Ocsp/Response.html +837 -0
  34. data/doc/R509/OidMapper.html +393 -0
  35. data/doc/R509/PrivateKey.html +1647 -0
  36. data/doc/R509/R509Error.html +134 -0
  37. data/doc/R509/Spki.html +1424 -0
  38. data/doc/R509/Subject.html +836 -0
  39. data/doc/R509/Validity.html +160 -0
  40. data/doc/R509/Validity/Checker.html +320 -0
  41. data/doc/R509/Validity/DefaultChecker.html +283 -0
  42. data/doc/R509/Validity/DefaultWriter.html +330 -0
  43. data/doc/R509/Validity/Status.html +561 -0
  44. data/doc/R509/Validity/Writer.html +394 -0
  45. data/doc/_index.html +501 -0
  46. data/doc/class_list.html +53 -0
  47. data/doc/css/common.css +1 -0
  48. data/doc/css/full_list.css +57 -0
  49. data/doc/css/style.css +328 -0
  50. data/doc/file.README.html +534 -0
  51. data/doc/file.r509.html +149 -0
  52. data/doc/file_list.html +58 -0
  53. data/doc/frames.html +28 -0
  54. data/doc/index.html +534 -0
  55. data/doc/js/app.js +208 -0
  56. data/doc/js/full_list.js +173 -0
  57. data/doc/js/jquery.js +4 -0
  58. data/doc/methods_list.html +1932 -0
  59. data/doc/top-level-namespace.html +112 -0
  60. data/lib/r509.rb +22 -0
  61. data/lib/r509/cert.rb +414 -0
  62. data/lib/r509/cert/extensions.rb +309 -0
  63. data/lib/r509/certificateauthority.rb +290 -0
  64. data/lib/r509/config.rb +407 -0
  65. data/lib/r509/crl.rb +379 -0
  66. data/lib/r509/csr.rb +324 -0
  67. data/lib/r509/exceptions.rb +5 -0
  68. data/lib/r509/io_helpers.rb +52 -0
  69. data/lib/r509/messagedigest.rb +49 -0
  70. data/lib/r509/ocsp.rb +85 -0
  71. data/lib/r509/oidmapper.rb +32 -0
  72. data/lib/r509/privatekey.rb +185 -0
  73. data/lib/r509/spki.rb +112 -0
  74. data/lib/r509/subject.rb +133 -0
  75. data/lib/r509/validity.rb +92 -0
  76. data/lib/r509/version.rb +4 -0
  77. data/r509.yaml +73 -0
  78. data/spec/cert/extensions_spec.rb +632 -0
  79. data/spec/cert_spec.rb +321 -0
  80. data/spec/certificate_authority_spec.rb +260 -0
  81. data/spec/config_spec.rb +349 -0
  82. data/spec/crl_spec.rb +215 -0
  83. data/spec/csr_spec.rb +302 -0
  84. data/spec/fixtures.rb +233 -0
  85. data/spec/fixtures/cert1.der +0 -0
  86. data/spec/fixtures/cert1.pem +24 -0
  87. data/spec/fixtures/cert1_public_key_modulus.txt +1 -0
  88. data/spec/fixtures/cert3.p12 +0 -0
  89. data/spec/fixtures/cert3.pem +28 -0
  90. data/spec/fixtures/cert3_key.pem +27 -0
  91. data/spec/fixtures/cert3_key_des3.pem +30 -0
  92. data/spec/fixtures/cert4.pem +14 -0
  93. data/spec/fixtures/cert5.pem +30 -0
  94. data/spec/fixtures/cert6.pem +26 -0
  95. data/spec/fixtures/cert_expired.pem +26 -0
  96. data/spec/fixtures/cert_not_yet_valid.pem +26 -0
  97. data/spec/fixtures/cert_san.pem +27 -0
  98. data/spec/fixtures/cert_san2.pem +22 -0
  99. data/spec/fixtures/config_pool_test_minimal.yaml +15 -0
  100. data/spec/fixtures/config_test.yaml +41 -0
  101. data/spec/fixtures/config_test_engine_key.yaml +7 -0
  102. data/spec/fixtures/config_test_engine_no_key_name.yaml +6 -0
  103. data/spec/fixtures/config_test_minimal.yaml +7 -0
  104. data/spec/fixtures/config_test_password.yaml +7 -0
  105. data/spec/fixtures/config_test_various.yaml +100 -0
  106. data/spec/fixtures/crl_list_file.txt +1 -0
  107. data/spec/fixtures/crl_with_reason.pem +17 -0
  108. data/spec/fixtures/csr1.der +0 -0
  109. data/spec/fixtures/csr1.pem +17 -0
  110. data/spec/fixtures/csr1_key.der +0 -0
  111. data/spec/fixtures/csr1_key.pem +27 -0
  112. data/spec/fixtures/csr1_key_encrypted_des3.pem +30 -0
  113. data/spec/fixtures/csr1_newlines.pem +32 -0
  114. data/spec/fixtures/csr1_no_begin_end.pem +15 -0
  115. data/spec/fixtures/csr1_public_key_modulus.txt +1 -0
  116. data/spec/fixtures/csr2.pem +15 -0
  117. data/spec/fixtures/csr2_key.pem +27 -0
  118. data/spec/fixtures/csr3.pem +16 -0
  119. data/spec/fixtures/csr4.pem +25 -0
  120. data/spec/fixtures/csr_dsa.pem +15 -0
  121. data/spec/fixtures/csr_invalid_signature.pem +13 -0
  122. data/spec/fixtures/dsa_key.pem +20 -0
  123. data/spec/fixtures/key4.pem +27 -0
  124. data/spec/fixtures/key4_encrypted_des3.pem +30 -0
  125. data/spec/fixtures/missing_key_identifier_ca.cer +21 -0
  126. data/spec/fixtures/missing_key_identifier_ca.key +27 -0
  127. data/spec/fixtures/ocsptest.r509.local.pem +27 -0
  128. data/spec/fixtures/ocsptest.r509.local_ocsp_request.der +0 -0
  129. data/spec/fixtures/ocsptest2.r509.local.pem +27 -0
  130. data/spec/fixtures/second_ca.cer +26 -0
  131. data/spec/fixtures/second_ca.key +27 -0
  132. data/spec/fixtures/spkac.der +0 -0
  133. data/spec/fixtures/spkac.txt +1 -0
  134. data/spec/fixtures/spkac_dsa.txt +1 -0
  135. data/spec/fixtures/stca.pem +22 -0
  136. data/spec/fixtures/stca_ocsp_request.der +0 -0
  137. data/spec/fixtures/stca_ocsp_response.der +0 -0
  138. data/spec/fixtures/test1.csr +17 -0
  139. data/spec/fixtures/test_ca.cer +22 -0
  140. data/spec/fixtures/test_ca.key +28 -0
  141. data/spec/fixtures/test_ca.p12 +0 -0
  142. data/spec/fixtures/test_ca_des3.key +30 -0
  143. data/spec/fixtures/test_ca_ocsp.cer +26 -0
  144. data/spec/fixtures/test_ca_ocsp.key +27 -0
  145. data/spec/fixtures/test_ca_ocsp.p12 +0 -0
  146. data/spec/fixtures/test_ca_ocsp_chain.txt +48 -0
  147. data/spec/fixtures/test_ca_ocsp_response.der +0 -0
  148. data/spec/fixtures/test_ca_subroot.cer +26 -0
  149. data/spec/fixtures/test_ca_subroot.key +27 -0
  150. data/spec/fixtures/test_ca_subroot_ocsp.cer +25 -0
  151. data/spec/fixtures/test_ca_subroot_ocsp.key +27 -0
  152. data/spec/fixtures/test_ca_subroot_ocsp_response.der +0 -0
  153. data/spec/fixtures/unknown_oid.csr +17 -0
  154. data/spec/message_digest_spec.rb +89 -0
  155. data/spec/ocsp_spec.rb +111 -0
  156. data/spec/oid_mapper_spec.rb +31 -0
  157. data/spec/privatekey_spec.rb +198 -0
  158. data/spec/spec_helper.rb +14 -0
  159. data/spec/spki_spec.rb +157 -0
  160. data/spec/subject_spec.rb +203 -0
  161. data/spec/validity_spec.rb +98 -0
  162. metadata +257 -0
data/bin/r509 ADDED
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/ruby
2
+ require 'rubygems'
3
+ require 'r509'
4
+ require 'r509/version'
5
+ require 'openssl'
6
+
7
+ subject = OpenSSL::X509::Name.new
8
+ selfsign = 0
9
+ if ARGV[0].nil? then
10
+ puts "Interactive CSR generation using r509 v#{R509::VERSION}."
11
+ puts ""
12
+ puts "You can also call with 1-3 args (string subject, int bit_strength, [optional days selfsign length])"
13
+ subject = []
14
+ print "C (US): "
15
+ c = gets.chomp
16
+ c = c.empty? ? 'US':c;
17
+ subject.push ['C',c]
18
+
19
+ print "ST (Illinois): "
20
+ st = gets.chomp
21
+ st = st.empty? ? 'Illinois':st;
22
+ subject.push ['ST',st]
23
+
24
+ print "L (Chicago): "
25
+ l = gets.chomp
26
+ l = l.empty? ? 'Chicago':l;
27
+ subject.push ['L',l]
28
+
29
+ print "O (r509 LLC): "
30
+ o = gets.chomp
31
+ o = o.empty? ? 'r509 LLC':o;
32
+ subject.push ['O',o]
33
+
34
+ print "OU (null by default): "
35
+ ou = gets.chomp
36
+ if(!ou.empty?) then
37
+ subject.push ['OU',ou]
38
+ end
39
+
40
+ print "CN: "
41
+ subject.push ['CN',gets.chomp]
42
+ print "SAN Domains (comma separated):"
43
+ san_domains = []
44
+ san_domains = gets.chomp.split(',').collect { |domain| domain.strip }
45
+ csr = R509::Csr.new(:subject => subject, :bit_strength => 2048, :san_names => san_domains)
46
+ print "Self-signed cert duration in days (null disables self-sign):"
47
+ selfsign_input = gets.chomp
48
+ if selfsign_input.to_i > 0
49
+ selfsign = selfsign_input.to_i
50
+ end
51
+
52
+
53
+ else
54
+ ARGV[0].split('/').each { |item|
55
+ if item != '' then
56
+ value = item.split('=')
57
+ subject.add_entry(value[0],value[1])
58
+ end
59
+ }
60
+ bit_strength = nil
61
+ if ARGV.size > 1 then
62
+ bit_strength = ARGV[1].to_i
63
+ else
64
+ bit_strength = 2048
65
+ end
66
+ if ARGV.size > 2 and ARGV[2].to_i > 0
67
+ selfsign = ARGV[2].to_i
68
+ end
69
+ csr = R509::Csr.new(:subject => subject, :bit_strength => bit_strength)
70
+ end
71
+
72
+ if selfsign > 0
73
+ ca = R509::CertificateAuthority::Signer.new
74
+ cert = ca.selfsign(:csr => csr, :not_after => Time.now.to_i+86400*selfsign)
75
+ puts csr.key.to_pem
76
+ puts cert
77
+ puts cert.subject
78
+ if not cert.san_names.empty?
79
+ puts "SAN(s): "+cert.san_names.join(", ")
80
+ end
81
+ else
82
+ puts csr.key.to_pem
83
+ puts csr
84
+ puts csr.subject
85
+ if not csr.san_names.empty?
86
+ puts "SAN(s): "+csr.san_names.join(", ")
87
+ end
88
+ end
89
+
90
+ if RUBY_PLATFORM.match('darwin') != nil then
91
+ if selfsign > 0
92
+ IO.popen('pbcopy','w').puts cert
93
+ else
94
+ IO.popen('pbcopy','w').puts csr
95
+ end
96
+ end
data/bin/r509-parse ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/ruby
2
+ require 'rubygems'
3
+ require 'r509'
4
+ require 'r509/version'
5
+ require 'openssl'
6
+
7
+ if ARGV[0].nil? then
8
+ puts "CSR and certificate parsing using r509 v#{R509::VERSION}."
9
+ puts "Usage: r509-parse <cert or csr>"
10
+ else
11
+ begin
12
+ csr = R509::Csr.load_from_file ARGV[0]
13
+ rescue
14
+ end
15
+ if not csr.nil?
16
+ puts "Subject: #{csr.subject}"
17
+ puts "SAN Names: #{csr.san_names.join(" , ")}"
18
+ else
19
+ begin
20
+ cert = R509::Cert.load_from_file ARGV[0]
21
+ rescue
22
+ end
23
+ if not cert.nil?
24
+ puts "Subject: #{cert.subject}"
25
+ puts "Issuer: #{cert.issuer}"
26
+ puts "SAN Names: #{cert.san_names.join(" , ")}"
27
+ puts "Not Before: #{cert.not_before}"
28
+ puts "Not After: #{cert.not_after}"
29
+ puts "Serial (Hex): #{cert.serial.to_s(16).upcase}"
30
+ puts "Serial (Decimal): #{cert.serial}"
31
+ else
32
+ puts "Failed to parse CSR or certificate"
33
+ end
34
+ end
35
+ end
data/doc/R509.html ADDED
@@ -0,0 +1,154 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: R509
8
+
9
+ &mdash; Documentation by YARD 0.8.0
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '';
20
+ framesUrl = "frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="_index.html">Index (R)</a> &raquo;
35
+
36
+
37
+ <span class="title">R509</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Module: R509
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+ <dt class="r1 last">Defined in:</dt>
82
+ <dd class="r1 last">lib/r509.rb<span class="defines">,<br />
83
+ lib/r509/csr.rb,<br /> lib/r509/crl.rb,<br /> lib/r509/spki.rb,<br /> lib/r509/cert.rb,<br /> lib/r509/config.rb,<br /> lib/r509/version.rb,<br /> lib/r509/subject.rb,<br /> lib/r509/oidmapper.rb,<br /> lib/r509/privatekey.rb,<br /> lib/r509/exceptions.rb,<br /> lib/r509/io_helpers.rb,<br /> lib/r509/messagedigest.rb,<br /> lib/r509/cert/extensions.rb</span>
84
+ </dd>
85
+
86
+ </dl>
87
+ <div class="clear"></div>
88
+
89
+ <h2>Overview</h2><div class="docstring">
90
+ <div class="discussion">
91
+
92
+ <p>A module for building an easy to use CA. Includes CSR, Certificate, and CRL
93
+ support.</p>
94
+
95
+
96
+ </div>
97
+ </div>
98
+ <div class="tags">
99
+
100
+
101
+ </div><h2>Defined Under Namespace</h2>
102
+ <p class="children">
103
+
104
+
105
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="R509/CertificateAuthority.html" title="R509::CertificateAuthority (module)">CertificateAuthority</a></span>, <span class='object_link'><a href="R509/Config.html" title="R509::Config (module)">Config</a></span>, <span class='object_link'><a href="R509/Crl.html" title="R509::Crl (module)">Crl</a></span>, <span class='object_link'><a href="R509/IOHelpers.html" title="R509::IOHelpers (module)">IOHelpers</a></span>, <span class='object_link'><a href="R509/Ocsp.html" title="R509::Ocsp (module)">Ocsp</a></span>, <span class='object_link'><a href="R509/Validity.html" title="R509::Validity (module)">Validity</a></span>
106
+
107
+
108
+
109
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="R509/Cert.html" title="R509::Cert (class)">Cert</a></span>, <span class='object_link'><a href="R509/Csr.html" title="R509::Csr (class)">Csr</a></span>, <span class='object_link'><a href="R509/MessageDigest.html" title="R509::MessageDigest (class)">MessageDigest</a></span>, <span class='object_link'><a href="R509/NameSanitizer.html" title="R509::NameSanitizer (class)">NameSanitizer</a></span>, <span class='object_link'><a href="R509/OidMapper.html" title="R509::OidMapper (class)">OidMapper</a></span>, <span class='object_link'><a href="R509/PrivateKey.html" title="R509::PrivateKey (class)">PrivateKey</a></span>, <span class='object_link'><a href="R509/R509Error.html" title="R509::R509Error (class)">R509Error</a></span>, <span class='object_link'><a href="R509/Spki.html" title="R509::Spki (class)">Spki</a></span>, <span class='object_link'><a href="R509/Subject.html" title="R509::Subject (class)">Subject</a></span>
110
+
111
+
112
+ </p>
113
+
114
+ <h2>Constant Summary</h2>
115
+
116
+ <dl class="constants">
117
+
118
+ <dt id="VERSION-constant" class="">VERSION =
119
+ <div class="docstring">
120
+ <div class="discussion">
121
+
122
+ <p>The version of the r509 gem</p>
123
+
124
+
125
+ </div>
126
+ </div>
127
+ <div class="tags">
128
+
129
+
130
+ </div>
131
+ </dt>
132
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.8</span><span class='tstring_end'>&quot;</span></span></pre></dd>
133
+
134
+ </dl>
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ </div>
146
+
147
+ <div id="footer">
148
+ Generated on Tue Oct 23 22:48:01 2012 by
149
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
150
+ 0.8.0 (ruby-1.9.3).
151
+ </div>
152
+
153
+ </body>
154
+ </html>
@@ -0,0 +1,3954 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Class: R509::Cert
8
+
9
+ &mdash; Documentation by YARD 0.8.0
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../';
20
+ framesUrl = "../frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../_index.html">Index (C)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../R509.html" title="R509 (module)">R509</a></span></span>
36
+ &raquo;
37
+ <span class="title">Cert</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Class: R509::Cert
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Object</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">R509::Cert</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+
88
+
89
+
90
+
91
+
92
+
93
+ <dt class="r2">Includes:</dt>
94
+ <dd class="r2"><span class='object_link'><a href="IOHelpers.html" title="R509::IOHelpers (module)">IOHelpers</a></span></dd>
95
+
96
+
97
+
98
+
99
+
100
+ <dt class="r1 last">Defined in:</dt>
101
+ <dd class="r1 last">lib/r509/cert.rb<span class="defines">,<br />
102
+ lib/r509/cert/extensions.rb</span>
103
+ </dd>
104
+
105
+ </dl>
106
+ <div class="clear"></div>
107
+
108
+ <h2>Overview</h2><div class="docstring">
109
+ <div class="discussion">
110
+
111
+ <p>The primary certificate object.</p>
112
+
113
+
114
+ </div>
115
+ </div>
116
+ <div class="tags">
117
+
118
+
119
+ </div><h2>Defined Under Namespace</h2>
120
+ <p class="children">
121
+
122
+
123
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Cert/Extensions.html" title="R509::Cert::Extensions (module)">Extensions</a></span>
124
+
125
+
126
+
127
+
128
+ </p>
129
+
130
+
131
+
132
+
133
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
134
+ <ul class="summary">
135
+
136
+ <li class="public ">
137
+ <span class="summary_signature">
138
+
139
+ <a href="#cert-instance_method" title="#cert (instance method)">- (Object) <strong>cert</strong> </a>
140
+
141
+
142
+
143
+ </span>
144
+
145
+
146
+
147
+
148
+ <span class="note title readonly">readonly</span>
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+ <span class="summary_desc"><div class='inline'>
159
+ <p>Returns the value of attribute cert.</p>
160
+ </div></span>
161
+
162
+ </li>
163
+
164
+
165
+ <li class="public ">
166
+ <span class="summary_signature">
167
+
168
+ <a href="#key-instance_method" title="#key (instance method)">- (Object) <strong>key</strong> </a>
169
+
170
+
171
+
172
+ </span>
173
+
174
+
175
+
176
+
177
+ <span class="note title readonly">readonly</span>
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+ <span class="summary_desc"><div class='inline'>
188
+ <p>Returns the value of attribute key.</p>
189
+ </div></span>
190
+
191
+ </li>
192
+
193
+
194
+ </ul>
195
+
196
+
197
+
198
+
199
+
200
+ <h2>
201
+ Class Method Summary
202
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
203
+ </h2>
204
+
205
+ <ul class="summary">
206
+
207
+ <li class="public ">
208
+ <span class="summary_signature">
209
+
210
+ <a href="#load_from_file-class_method" title="load_from_file (class method)">+ (R509::Cert) <strong>load_from_file</strong>(filename) </a>
211
+
212
+
213
+
214
+ </span>
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+ <span class="summary_desc"><div class='inline'>
225
+ <p>Helper method to quickly load a cert from the filesystem.</p>
226
+ </div></span>
227
+
228
+ </li>
229
+
230
+
231
+ </ul>
232
+
233
+ <h2>
234
+ Instance Method Summary
235
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
236
+ </h2>
237
+
238
+ <ul class="summary">
239
+
240
+ <li class="public ">
241
+ <span class="summary_signature">
242
+
243
+ <a href="#authority_info_access-instance_method" title="#authority_info_access (instance method)">- (R509::Cert::Extensions::AuthorityInfoAccess) <strong>authority_info_access</strong> </a>
244
+
245
+
246
+
247
+ </span>
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+ <span class="summary_desc"><div class='inline'>
258
+ <p>Returns this object's AuthorityInfoAccess extension as an R509 extension.</p>
259
+ </div></span>
260
+
261
+ </li>
262
+
263
+
264
+ <li class="public ">
265
+ <span class="summary_signature">
266
+
267
+ <a href="#authority_key_identifier-instance_method" title="#authority_key_identifier (instance method)">- (R509::Cert::Extensions::AuthorityKeyIdentifier) <strong>authority_key_identifier</strong> </a>
268
+
269
+
270
+
271
+ </span>
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+ <span class="summary_desc"><div class='inline'>
282
+ <p>Returns this object's AuthorityKeyIdentifier extension as an R509
283
+ extension.</p>
284
+ </div></span>
285
+
286
+ </li>
287
+
288
+
289
+ <li class="public ">
290
+ <span class="summary_signature">
291
+
292
+ <a href="#basic_constraints-instance_method" title="#basic_constraints (instance method)">- (R509::Cert::Extensions::BasicConstraints) <strong>basic_constraints</strong> </a>
293
+
294
+
295
+
296
+ </span>
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+ <span class="summary_desc"><div class='inline'>
307
+ <p>Returns this object's BasicConstraints extension as an R509 extension.</p>
308
+ </div></span>
309
+
310
+ </li>
311
+
312
+
313
+ <li class="public ">
314
+ <span class="summary_signature">
315
+
316
+ <a href="#bit_strength-instance_method" title="#bit_strength (instance method)">- (Integer) <strong>bit_strength</strong> </a>
317
+
318
+
319
+
320
+ </span>
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+ <span class="summary_desc"><div class='inline'>
331
+ <p>Returns the bit strength of the key used to create the certificate.</p>
332
+ </div></span>
333
+
334
+ </li>
335
+
336
+
337
+ <li class="public ">
338
+ <span class="summary_signature">
339
+
340
+ <a href="#crl_distribution_points-instance_method" title="#crl_distribution_points (instance method)">- (R509::Cert::Extensions::CrlDistributionPoints) <strong>crl_distribution_points</strong> </a>
341
+
342
+
343
+
344
+ </span>
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+ <span class="summary_desc"><div class='inline'>
355
+ <p>Returns this object's CrlDistributionPoints extension as an R509 extension.</p>
356
+ </div></span>
357
+
358
+ </li>
359
+
360
+
361
+ <li class="public ">
362
+ <span class="summary_signature">
363
+
364
+ <a href="#dsa%3F-instance_method" title="#dsa? (instance method)">- (Boolean) <strong>dsa?</strong> </a>
365
+
366
+
367
+
368
+ </span>
369
+
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+ <span class="summary_desc"><div class='inline'>
379
+ <p>Returns whether the public key is DSA.</p>
380
+ </div></span>
381
+
382
+ </li>
383
+
384
+
385
+ <li class="public ">
386
+ <span class="summary_signature">
387
+
388
+ <a href="#extended_key_usage-instance_method" title="#extended_key_usage (instance method)">- (R509::Cert::Extensions::ExtendedKeyUsage) <strong>extended_key_usage</strong> </a>
389
+
390
+
391
+
392
+ </span>
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+ <span class="summary_desc"><div class='inline'>
403
+ <p>Returns this object's ExtendedKeyUsage extension as an R509 extension.</p>
404
+ </div></span>
405
+
406
+ </li>
407
+
408
+
409
+ <li class="public ">
410
+ <span class="summary_signature">
411
+
412
+ <a href="#extensions-instance_method" title="#extensions (instance method)">- (Array) <strong>extensions</strong> </a>
413
+
414
+
415
+
416
+ </span>
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+ <span class="summary_desc"><div class='inline'>
427
+ <p>Return the certificate extensions.</p>
428
+ </div></span>
429
+
430
+ </li>
431
+
432
+
433
+ <li class="public ">
434
+ <span class="summary_signature">
435
+
436
+ <a href="#fingerprint-instance_method" title="#fingerprint (instance method)">- (String) <strong>fingerprint</strong>(algorithm = 'sha1') </a>
437
+
438
+
439
+
440
+ </span>
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+ <span class="summary_desc"><div class='inline'>
451
+ <p>Returns the certificate fingerprint with the specified algorithm (default
452
+ sha1).</p>
453
+ </div></span>
454
+
455
+ </li>
456
+
457
+
458
+ <li class="public ">
459
+ <span class="summary_signature">
460
+
461
+ <a href="#has_private_key%3F-instance_method" title="#has_private_key? (instance method)">- (Boolean) <strong>has_private_key?</strong> </a>
462
+
463
+
464
+
465
+ </span>
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+ <span class="summary_desc"><div class='inline'>
476
+ <p>Boolean of whether the object contains a private key.</p>
477
+ </div></span>
478
+
479
+ </li>
480
+
481
+
482
+ <li class="public ">
483
+ <span class="summary_signature">
484
+
485
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Cert) <strong>initialize</strong>(opts = {}) </a>
486
+
487
+
488
+
489
+ </span>
490
+
491
+
492
+ <span class="note title constructor">constructor</span>
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+ <span class="summary_desc"><div class='inline'>
502
+ <p>A new instance of Cert.</p>
503
+ </div></span>
504
+
505
+ </li>
506
+
507
+
508
+ <li class="public ">
509
+ <span class="summary_signature">
510
+
511
+ <a href="#is_revoked_by_crl%3F-instance_method" title="#is_revoked_by_crl? (instance method)">- (Boolean) <strong>is_revoked_by_crl?</strong>(r509_crl) </a>
512
+
513
+
514
+
515
+ </span>
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+ <span class="summary_desc"><div class='inline'>
526
+ <p>Checks the given CRL for this certificate's serial number.</p>
527
+ </div></span>
528
+
529
+ </li>
530
+
531
+
532
+ <li class="public ">
533
+ <span class="summary_signature">
534
+
535
+ <a href="#issuer-instance_method" title="#issuer (instance method)">- (OpenSSL::X509::Name) <strong>issuer</strong> </a>
536
+
537
+
538
+
539
+ </span>
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+ <span class="summary_desc"><div class='inline'>
550
+ <p>Returns the issuer.</p>
551
+ </div></span>
552
+
553
+ </li>
554
+
555
+
556
+ <li class="public ">
557
+ <span class="summary_signature">
558
+
559
+ <a href="#issuer_cn-instance_method" title="#issuer_cn (instance method)">- (String) <strong>issuer_cn</strong> </a>
560
+
561
+
562
+
563
+ </span>
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+ <span class="summary_desc"><div class='inline'>
574
+ <p>The common name (CN) component of the issuer.</p>
575
+ </div></span>
576
+
577
+ </li>
578
+
579
+
580
+ <li class="public ">
581
+ <span class="summary_signature">
582
+
583
+ <a href="#key_algorithm-instance_method" title="#key_algorithm (instance method)">- (String) <strong>key_algorithm</strong> </a>
584
+
585
+
586
+
587
+ </span>
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+ <span class="summary_desc"><div class='inline'>
598
+ <p>Returns key algorithm (RSA or DSA).</p>
599
+ </div></span>
600
+
601
+ </li>
602
+
603
+
604
+ <li class="public ">
605
+ <span class="summary_signature">
606
+
607
+ <a href="#key_usage-instance_method" title="#key_usage (instance method)">- (R509::Cert::Extensions::KeyUsage) <strong>key_usage</strong> </a>
608
+
609
+
610
+
611
+ </span>
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+ <span class="summary_desc"><div class='inline'>
622
+ <p>Returns this object's KeyUsage extension as an R509 extension.</p>
623
+ </div></span>
624
+
625
+ </li>
626
+
627
+
628
+ <li class="public ">
629
+ <span class="summary_signature">
630
+
631
+ <a href="#not_after-instance_method" title="#not_after (instance method)">- (Time) <strong>not_after</strong> </a>
632
+
633
+
634
+
635
+ </span>
636
+
637
+
638
+
639
+
640
+
641
+
642
+
643
+
644
+
645
+ <span class="summary_desc"><div class='inline'>
646
+ <p>Returns ending (notAfter) of certificate validity period.</p>
647
+ </div></span>
648
+
649
+ </li>
650
+
651
+
652
+ <li class="public ">
653
+ <span class="summary_signature">
654
+
655
+ <a href="#not_before-instance_method" title="#not_before (instance method)">- (Time) <strong>not_before</strong> </a>
656
+
657
+
658
+
659
+ </span>
660
+
661
+
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+ <span class="summary_desc"><div class='inline'>
670
+ <p>Returns beginning (notBefore) of certificate validity period.</p>
671
+ </div></span>
672
+
673
+ </li>
674
+
675
+
676
+ <li class="public ">
677
+ <span class="summary_signature">
678
+
679
+ <a href="#public_key-instance_method" title="#public_key (instance method)">- (OpenSSL::PKey::RSA) <strong>public_key</strong> </a>
680
+
681
+
682
+
683
+ </span>
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+ <span class="summary_desc"><div class='inline'>
694
+ <p>Returns the certificate public key.</p>
695
+ </div></span>
696
+
697
+ </li>
698
+
699
+
700
+ <li class="public ">
701
+ <span class="summary_signature">
702
+
703
+ <a href="#r509_extensions-instance_method" title="#r509_extensions (instance method)">- (Hash) <strong>r509_extensions</strong> </a>
704
+
705
+
706
+
707
+ </span>
708
+
709
+
710
+
711
+
712
+
713
+
714
+
715
+
716
+
717
+ <span class="summary_desc"><div class='inline'>
718
+ <p>Returns the certificate extensions as a hash of R509::Cert::Extensions
719
+ specific objects.</p>
720
+ </div></span>
721
+
722
+ </li>
723
+
724
+
725
+ <li class="public ">
726
+ <span class="summary_signature">
727
+
728
+ <a href="#rsa%3F-instance_method" title="#rsa? (instance method)">- (Boolean) <strong>rsa?</strong> </a>
729
+
730
+
731
+
732
+ </span>
733
+
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+
742
+ <span class="summary_desc"><div class='inline'>
743
+ <p>Returns whether the public key is RSA.</p>
744
+ </div></span>
745
+
746
+ </li>
747
+
748
+
749
+ <li class="public ">
750
+ <span class="summary_signature">
751
+
752
+ <a href="#san_names-instance_method" title="#san_names (instance method)">- (Array) <strong>san_names</strong> </a>
753
+
754
+
755
+
756
+ </span>
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+ <span class="summary_desc"><div class='inline'>
767
+ <p>List of SAN DNS names.</p>
768
+ </div></span>
769
+
770
+ </li>
771
+
772
+
773
+ <li class="public ">
774
+ <span class="summary_signature">
775
+
776
+ <a href="#serial-instance_method" title="#serial (instance method)">- (Integer) <strong>serial</strong> </a>
777
+
778
+
779
+
780
+ </span>
781
+
782
+
783
+
784
+
785
+
786
+
787
+
788
+
789
+
790
+ <span class="summary_desc"><div class='inline'>
791
+ <p>Returns the serial number of the certificate in decimal form.</p>
792
+ </div></span>
793
+
794
+ </li>
795
+
796
+
797
+ <li class="public ">
798
+ <span class="summary_signature">
799
+
800
+ <a href="#signature_algorithm-instance_method" title="#signature_algorithm (instance method)">- (String) <strong>signature_algorithm</strong> </a>
801
+
802
+
803
+
804
+ </span>
805
+
806
+
807
+
808
+
809
+
810
+
811
+
812
+
813
+
814
+ <span class="summary_desc"><div class='inline'>
815
+ <p>Returns signature algorithm.</p>
816
+ </div></span>
817
+
818
+ </li>
819
+
820
+
821
+ <li class="public ">
822
+ <span class="summary_signature">
823
+
824
+ <a href="#subject-instance_method" title="#subject (instance method)">- (OpenSSL::X509::Name) <strong>subject</strong> </a>
825
+
826
+
827
+
828
+ </span>
829
+
830
+
831
+
832
+
833
+
834
+
835
+
836
+
837
+
838
+ <span class="summary_desc"><div class='inline'>
839
+ <p>Returns the subject.</p>
840
+ </div></span>
841
+
842
+ </li>
843
+
844
+
845
+ <li class="public ">
846
+ <span class="summary_signature">
847
+
848
+ <a href="#subject_alternative_name-instance_method" title="#subject_alternative_name (instance method)">- (R509::Cert::Extensions::SubjectAlternativeName) <strong>subject_alternative_name</strong> </a>
849
+
850
+
851
+
852
+ </span>
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+ <span class="summary_desc"><div class='inline'>
863
+ <p>Returns this object's SubjectAlternativeName extension as an R509
864
+ extension.</p>
865
+ </div></span>
866
+
867
+ </li>
868
+
869
+
870
+ <li class="public ">
871
+ <span class="summary_signature">
872
+
873
+ <a href="#subject_cn-instance_method" title="#subject_cn (instance method)">- (String) <strong>subject_cn</strong> </a>
874
+
875
+
876
+
877
+ </span>
878
+
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+ <span class="summary_desc"><div class='inline'>
888
+ <p>Returns the CN component, if any, of the subject.</p>
889
+ </div></span>
890
+
891
+ </li>
892
+
893
+
894
+ <li class="public ">
895
+ <span class="summary_signature">
896
+
897
+ <a href="#subject_component-instance_method" title="#subject_component (instance method)">- (String) <strong>subject_component</strong>(short_name) </a>
898
+
899
+
900
+
901
+ </span>
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+ <span class="summary_desc"><div class='inline'>
912
+ <p>Returns subject component.</p>
913
+ </div></span>
914
+
915
+ </li>
916
+
917
+
918
+ <li class="public ">
919
+ <span class="summary_signature">
920
+
921
+ <a href="#subject_key_identifier-instance_method" title="#subject_key_identifier (instance method)">- (R509::Cert::Extensions::SubjectKeyIdentifier) <strong>subject_key_identifier</strong> </a>
922
+
923
+
924
+
925
+ </span>
926
+
927
+
928
+
929
+
930
+
931
+
932
+
933
+
934
+
935
+ <span class="summary_desc"><div class='inline'>
936
+ <p>Returns this object's SubjectKeyIdentifier extension as an R509 extension.</p>
937
+ </div></span>
938
+
939
+ </li>
940
+
941
+
942
+ <li class="public ">
943
+ <span class="summary_signature">
944
+
945
+ <a href="#subject_names-instance_method" title="#subject_names (instance method)">- (Array) <strong>subject_names</strong> </a>
946
+
947
+
948
+
949
+ </span>
950
+
951
+
952
+
953
+
954
+
955
+
956
+
957
+
958
+
959
+ <span class="summary_desc"><div class='inline'>
960
+ <p>Return the CN, as well as all the subject alternative names (SANs).</p>
961
+ </div></span>
962
+
963
+ </li>
964
+
965
+
966
+ <li class="public ">
967
+ <span class="summary_signature">
968
+
969
+ <a href="#to_der-instance_method" title="#to_der (instance method)">- (String) <strong>to_der</strong> </a>
970
+
971
+
972
+
973
+ </span>
974
+
975
+
976
+
977
+
978
+
979
+
980
+
981
+
982
+
983
+ <span class="summary_desc"><div class='inline'>
984
+ <p>Converts the Cert into the DER format.</p>
985
+ </div></span>
986
+
987
+ </li>
988
+
989
+
990
+ <li class="public ">
991
+ <span class="summary_signature">
992
+
993
+ <a href="#to_pem-instance_method" title="#to_pem (instance method)">- (String) <strong>to_pem</strong> </a>
994
+
995
+
996
+
997
+ (also: #to_s)
998
+
999
+ </span>
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+ <span class="summary_desc"><div class='inline'>
1010
+ <p>Converts the Cert into the PEM format.</p>
1011
+ </div></span>
1012
+
1013
+ </li>
1014
+
1015
+
1016
+ <li class="public ">
1017
+ <span class="summary_signature">
1018
+
1019
+ <a href="#unknown_extensions-instance_method" title="#unknown_extensions (instance method)">- (Array) <strong>unknown_extensions</strong> </a>
1020
+
1021
+
1022
+
1023
+ </span>
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+ <span class="summary_desc"><div class='inline'>
1034
+ <p>Returns an array of OpenSSL::X509::Extension objects representing the
1035
+ extensions that do not have R509 implementations.</p>
1036
+ </div></span>
1037
+
1038
+ </li>
1039
+
1040
+
1041
+ <li class="public ">
1042
+ <span class="summary_signature">
1043
+
1044
+ <a href="#valid%3F-instance_method" title="#valid? (instance method)">- (Boolean) <strong>valid?</strong> </a>
1045
+
1046
+
1047
+
1048
+ </span>
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+ <span class="summary_desc"><div class='inline'>
1059
+ <p>Returns whether the current time is between the notBefore and notAfter
1060
+ times in the certificate.</p>
1061
+ </div></span>
1062
+
1063
+ </li>
1064
+
1065
+
1066
+ <li class="public ">
1067
+ <span class="summary_signature">
1068
+
1069
+ <a href="#valid_at%3F-instance_method" title="#valid_at? (instance method)">- (Boolean) <strong>valid_at?</strong>(time) </a>
1070
+
1071
+
1072
+
1073
+ </span>
1074
+
1075
+
1076
+
1077
+
1078
+
1079
+
1080
+
1081
+
1082
+
1083
+ <span class="summary_desc"><div class='inline'>
1084
+ <p>Returns whether the certificate was between its notBefore and notAfter at
1085
+ the time provided.</p>
1086
+ </div></span>
1087
+
1088
+ </li>
1089
+
1090
+
1091
+ <li class="public ">
1092
+ <span class="summary_signature">
1093
+
1094
+ <a href="#write_der-instance_method" title="#write_der (instance method)">- (Object) <strong>write_der</strong>(filename_or_io) </a>
1095
+
1096
+
1097
+
1098
+ </span>
1099
+
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+ <span class="summary_desc"><div class='inline'>
1109
+ <p>Writes the Cert into the DER format.</p>
1110
+ </div></span>
1111
+
1112
+ </li>
1113
+
1114
+
1115
+ <li class="public ">
1116
+ <span class="summary_signature">
1117
+
1118
+ <a href="#write_pem-instance_method" title="#write_pem (instance method)">- (Object) <strong>write_pem</strong>(filename_or_io) </a>
1119
+
1120
+
1121
+
1122
+ </span>
1123
+
1124
+
1125
+
1126
+
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+ <span class="summary_desc"><div class='inline'>
1133
+ <p>Writes the Cert into the PEM format.</p>
1134
+ </div></span>
1135
+
1136
+ </li>
1137
+
1138
+
1139
+ <li class="public ">
1140
+ <span class="summary_signature">
1141
+
1142
+ <a href="#write_pkcs12-instance_method" title="#write_pkcs12 (instance method)">- (Object) <strong>write_pkcs12</strong>(filename_or_io, password, friendly_name = 'r509 pkcs12') </a>
1143
+
1144
+
1145
+
1146
+ </span>
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+ <span class="summary_desc"><div class='inline'>
1157
+ <p>Writes cert and key into PKCS12 format using OpenSSL defaults for
1158
+ encryption (des3).</p>
1159
+ </div></span>
1160
+
1161
+ </li>
1162
+
1163
+
1164
+ </ul>
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="IOHelpers.html" title="R509::IOHelpers (module)">IOHelpers</a></span></h3>
1177
+ <p class="inherited"><span class='object_link'><a href="IOHelpers.html#read_data-instance_method" title="R509::IOHelpers#read_data (method)">#read_data</a></span>, <span class='object_link'><a href="IOHelpers.html#read_data-class_method" title="R509::IOHelpers.read_data (method)">read_data</a></span>, <span class='object_link'><a href="IOHelpers.html#write_data-instance_method" title="R509::IOHelpers#write_data (method)">#write_data</a></span>, <span class='object_link'><a href="IOHelpers.html#write_data-class_method" title="R509::IOHelpers.write_data (method)">write_data</a></span></p>
1178
+ <div id="constructor_details" class="method_details_list">
1179
+ <h2>Constructor Details</h2>
1180
+
1181
+ <div class="method_details first">
1182
+ <h3 class="signature first" id="initialize-instance_method">
1183
+
1184
+ - (<tt><span class='object_link'><a href="" title="R509::Cert (class)">Cert</a></span></tt>) <strong>initialize</strong>(opts = {})
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+ </h3><div class="docstring">
1191
+ <div class="discussion">
1192
+
1193
+ <p>A new instance of Cert</p>
1194
+
1195
+
1196
+ </div>
1197
+ </div>
1198
+ <div class="tags">
1199
+ <p class="tag_title">Parameters:</p>
1200
+ <ul class="param">
1201
+
1202
+ <li>
1203
+
1204
+ <span class='name'>opts</span>
1205
+
1206
+
1207
+ <span class='type'>(<tt>Hash</tt>)</span>
1208
+
1209
+
1210
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1211
+
1212
+
1213
+ &mdash;
1214
+ <div class='inline'>
1215
+ <p>a customizable set of options</p>
1216
+ </div>
1217
+
1218
+ </li>
1219
+
1220
+ </ul>
1221
+
1222
+
1223
+
1224
+
1225
+ <p class="tag_title">Options Hash (<tt>opts</tt>):</p>
1226
+ <ul class="option">
1227
+
1228
+ <li>
1229
+ <span class="name">:cert</span>
1230
+ <span class="type">(<tt>String</tt>, <tt>OpenSSL::X509::Certificate</tt>)</span>
1231
+ <span class="default">
1232
+
1233
+ </span>
1234
+ &mdash; <div class='inline'>
1235
+ <p>a cert</p>
1236
+ </div>
1237
+ </li>
1238
+
1239
+ <li>
1240
+ <span class="name">:key</span>
1241
+ <span class="type">(<tt><span class='object_link'><a href="PrivateKey.html" title="R509::PrivateKey (class)">R509::PrivateKey</a></span></tt>, <tt>String</tt>)</span>
1242
+ <span class="default">
1243
+
1244
+ </span>
1245
+ &mdash; <div class='inline'>
1246
+ <p>optional private key to supply. either an unencrypted PEM/DER string or an
1247
+ R509::PrivateKey object (use the latter if you need password/hardware
1248
+ support)</p>
1249
+ </div>
1250
+ </li>
1251
+
1252
+ <li>
1253
+ <span class="name">:pkcs12</span>
1254
+ <span class="type">(<tt>String</tt>)</span>
1255
+ <span class="default">
1256
+
1257
+ </span>
1258
+ &mdash; <div class='inline'>
1259
+ <p>a PKCS12 object containing both key and cert</p>
1260
+ </div>
1261
+ </li>
1262
+
1263
+ <li>
1264
+ <span class="name">:password</span>
1265
+ <span class="type">(<tt>String</tt>)</span>
1266
+ <span class="default">
1267
+
1268
+ </span>
1269
+ &mdash; <div class='inline'>
1270
+ <p>password for PKCS12 or private key (if supplied)</p>
1271
+ </div>
1272
+ </li>
1273
+
1274
+ </ul>
1275
+
1276
+
1277
+
1278
+ </div><table class="source_code">
1279
+ <tr>
1280
+ <td>
1281
+ <pre class="lines">
1282
+
1283
+
1284
+ 17
1285
+ 18
1286
+ 19
1287
+ 20
1288
+ 21
1289
+ 22
1290
+ 23
1291
+ 24
1292
+ 25
1293
+ 26
1294
+ 27
1295
+ 28
1296
+ 29
1297
+ 30
1298
+ 31
1299
+ 32
1300
+ 33
1301
+ 34
1302
+ 35
1303
+ 36
1304
+ 37
1305
+ 38
1306
+ 39
1307
+ 40
1308
+ 41
1309
+ 42
1310
+ 43
1311
+ 44
1312
+ 45
1313
+ 46</pre>
1314
+ </td>
1315
+ <td>
1316
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 17</span>
1317
+
1318
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1319
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
1320
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Must provide a hash of options</span><span class='tstring_end'>'</span></span>
1321
+ <span class='kw'>end</span>
1322
+ <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:pkcs12</span><span class='rparen'>)</span> <span class='kw'>and</span> <span class='lparen'>(</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:key</span><span class='rparen'>)</span> <span class='kw'>or</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:cert</span><span class='rparen'>)</span> <span class='rparen'>)</span>
1323
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>When providing pkcs12, do not pass cert or key</span><span class='tstring_end'>&quot;</span></span>
1324
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:pkcs12</span><span class='rparen'>)</span>
1325
+ <span class='id identifier rubyid_pkcs12'>pkcs12</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKCS12</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:pkcs12</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:password</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
1326
+ <span class='id identifier rubyid_parse_certificate'>parse_certificate</span><span class='lparen'>(</span><span class='id identifier rubyid_pkcs12'>pkcs12</span><span class='period'>.</span><span class='id identifier rubyid_certificate'>certificate</span><span class='rparen'>)</span>
1327
+ <span class='ivar'>@key</span> <span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>PrivateKey</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='symbol'>:key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_pkcs12'>pkcs12</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span> <span class='rparen'>)</span>
1328
+ <span class='kw'>elsif</span> <span class='kw'>not</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:cert</span><span class='rparen'>)</span>
1329
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Must provide :cert or :pkcs12</span><span class='tstring_end'>'</span></span>
1330
+ <span class='kw'>else</span>
1331
+ <span class='id identifier rubyid_csr_check'>csr_check</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:cert</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1332
+ <span class='id identifier rubyid_parse_certificate'>parse_certificate</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:cert</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1333
+ <span class='kw'>end</span>
1334
+
1335
+ <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:key</span><span class='rparen'>)</span>
1336
+ <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:key</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>PrivateKey</span><span class='rparen'>)</span>
1337
+ <span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:key</span><span class='rbracket'>]</span>
1338
+ <span class='kw'>else</span>
1339
+ <span class='ivar'>@key</span> <span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>PrivateKey</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='symbol'>:key</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:key</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:password</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:password</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
1340
+ <span class='kw'>end</span>
1341
+ <span class='kw'>end</span>
1342
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='ivar'>@key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1343
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>==</span> <span class='ivar'>@key</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='kw'>then</span>
1344
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>R509Error</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Key does not match cert.</span><span class='tstring_end'>'</span></span>
1345
+ <span class='kw'>end</span>
1346
+ <span class='kw'>end</span>
1347
+ <span class='kw'>end</span></pre>
1348
+ </td>
1349
+ </tr>
1350
+ </table>
1351
+ </div>
1352
+
1353
+ </div>
1354
+
1355
+ <div id="instance_attr_details" class="attr_details">
1356
+ <h2>Instance Attribute Details</h2>
1357
+
1358
+
1359
+ <span id=""></span>
1360
+ <span id="cert-instance_method"></span>
1361
+ <div class="method_details first">
1362
+ <h3 class="signature first" id="cert-instance_method">
1363
+
1364
+ - (<tt>Object</tt>) <strong>cert</strong> <span class="extras">(readonly)</span>
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+ </h3><div class="docstring">
1371
+ <div class="discussion">
1372
+
1373
+ <p>Returns the value of attribute cert</p>
1374
+
1375
+
1376
+ </div>
1377
+ </div>
1378
+ <div class="tags">
1379
+
1380
+
1381
+ </div><table class="source_code">
1382
+ <tr>
1383
+ <td>
1384
+ <pre class="lines">
1385
+
1386
+
1387
+ 11
1388
+ 12
1389
+ 13</pre>
1390
+ </td>
1391
+ <td>
1392
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 11</span>
1393
+
1394
+ <span class='kw'>def</span> <span class='id identifier rubyid_cert'>cert</span>
1395
+ <span class='ivar'>@cert</span>
1396
+ <span class='kw'>end</span></pre>
1397
+ </td>
1398
+ </tr>
1399
+ </table>
1400
+ </div>
1401
+
1402
+
1403
+ <span id=""></span>
1404
+ <span id="key-instance_method"></span>
1405
+ <div class="method_details ">
1406
+ <h3 class="signature " id="key-instance_method">
1407
+
1408
+ - (<tt>Object</tt>) <strong>key</strong> <span class="extras">(readonly)</span>
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+ </h3><div class="docstring">
1415
+ <div class="discussion">
1416
+
1417
+ <p>Returns the value of attribute key</p>
1418
+
1419
+
1420
+ </div>
1421
+ </div>
1422
+ <div class="tags">
1423
+
1424
+
1425
+ </div><table class="source_code">
1426
+ <tr>
1427
+ <td>
1428
+ <pre class="lines">
1429
+
1430
+
1431
+ 11
1432
+ 12
1433
+ 13</pre>
1434
+ </td>
1435
+ <td>
1436
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 11</span>
1437
+
1438
+ <span class='kw'>def</span> <span class='id identifier rubyid_key'>key</span>
1439
+ <span class='ivar'>@key</span>
1440
+ <span class='kw'>end</span></pre>
1441
+ </td>
1442
+ </tr>
1443
+ </table>
1444
+ </div>
1445
+
1446
+ </div>
1447
+
1448
+
1449
+ <div id="class_method_details" class="method_details_list">
1450
+ <h2>Class Method Details</h2>
1451
+
1452
+
1453
+ <div class="method_details first">
1454
+ <h3 class="signature first" id="load_from_file-class_method">
1455
+
1456
+ + (<tt><span class='object_link'><a href="" title="R509::Cert (class)">R509::Cert</a></span></tt>) <strong>load_from_file</strong>(filename)
1457
+
1458
+
1459
+
1460
+
1461
+
1462
+ </h3><div class="docstring">
1463
+ <div class="discussion">
1464
+
1465
+ <p>Helper method to quickly load a cert from the filesystem</p>
1466
+
1467
+
1468
+ </div>
1469
+ </div>
1470
+ <div class="tags">
1471
+ <p class="tag_title">Parameters:</p>
1472
+ <ul class="param">
1473
+
1474
+ <li>
1475
+
1476
+ <span class='name'>filename</span>
1477
+
1478
+
1479
+ <span class='type'>(<tt>String</tt>)</span>
1480
+
1481
+
1482
+
1483
+ &mdash;
1484
+ <div class='inline'>
1485
+ <p>Path to file you want to load</p>
1486
+ </div>
1487
+
1488
+ </li>
1489
+
1490
+ </ul>
1491
+
1492
+ <p class="tag_title">Returns:</p>
1493
+ <ul class="return">
1494
+
1495
+ <li>
1496
+
1497
+
1498
+ <span class='type'>(<tt><span class='object_link'><a href="" title="R509::Cert (class)">R509::Cert</a></span></tt>)</span>
1499
+
1500
+
1501
+
1502
+ &mdash;
1503
+ <div class='inline'>
1504
+ <p>cert object</p>
1505
+ </div>
1506
+
1507
+ </li>
1508
+
1509
+ </ul>
1510
+
1511
+ </div><table class="source_code">
1512
+ <tr>
1513
+ <td>
1514
+ <pre class="lines">
1515
+
1516
+
1517
+ 52
1518
+ 53
1519
+ 54</pre>
1520
+ </td>
1521
+ <td>
1522
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 52</span>
1523
+
1524
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_from_file'>load_from_file</span><span class='lparen'>(</span> <span class='id identifier rubyid_filename'>filename</span> <span class='rparen'>)</span>
1525
+ <span class='kw'>return</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:cert</span> <span class='op'>=&gt;</span> <span class='const'>IOHelpers</span><span class='period'>.</span><span class='id identifier rubyid_read_data'>read_data</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span> <span class='rparen'>)</span>
1526
+ <span class='kw'>end</span></pre>
1527
+ </td>
1528
+ </tr>
1529
+ </table>
1530
+ </div>
1531
+
1532
+ </div>
1533
+
1534
+ <div id="instance_method_details" class="method_details_list">
1535
+ <h2>Instance Method Details</h2>
1536
+
1537
+
1538
+ <div class="method_details first">
1539
+ <h3 class="signature first" id="authority_info_access-instance_method">
1540
+
1541
+ - (<tt><span class='object_link'><a href="Cert/Extensions/AuthorityInfoAccess.html" title="R509::Cert::Extensions::AuthorityInfoAccess (class)">R509::Cert::Extensions::AuthorityInfoAccess</a></span></tt>) <strong>authority_info_access</strong>
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+ </h3><div class="docstring">
1548
+ <div class="discussion">
1549
+
1550
+ <p>Returns this object's AuthorityInfoAccess extension as an R509 extension</p>
1551
+
1552
+
1553
+ </div>
1554
+ </div>
1555
+ <div class="tags">
1556
+
1557
+ <p class="tag_title">Returns:</p>
1558
+ <ul class="return">
1559
+
1560
+ <li>
1561
+
1562
+
1563
+ <span class='type'>(<tt><span class='object_link'><a href="Cert/Extensions/AuthorityInfoAccess.html" title="R509::Cert::Extensions::AuthorityInfoAccess (class)">R509::Cert::Extensions::AuthorityInfoAccess</a></span></tt>)</span>
1564
+
1565
+
1566
+
1567
+ &mdash;
1568
+ <div class='inline'>
1569
+ <p>The object, or nil if this cert does not have a AuthorityInfoAccess
1570
+ extension.</p>
1571
+ </div>
1572
+
1573
+ </li>
1574
+
1575
+ </ul>
1576
+
1577
+ </div><table class="source_code">
1578
+ <tr>
1579
+ <td>
1580
+ <pre class="lines">
1581
+
1582
+
1583
+ 385
1584
+ 386
1585
+ 387</pre>
1586
+ </td>
1587
+ <td>
1588
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 385</span>
1589
+
1590
+ <span class='kw'>def</span> <span class='id identifier rubyid_authority_info_access'>authority_info_access</span>
1591
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span><span class='lbracket'>[</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='op'>::</span><span class='const'>Extensions</span><span class='op'>::</span><span class='const'>AuthorityInfoAccess</span><span class='rbracket'>]</span>
1592
+ <span class='kw'>end</span></pre>
1593
+ </td>
1594
+ </tr>
1595
+ </table>
1596
+ </div>
1597
+
1598
+ <div class="method_details ">
1599
+ <h3 class="signature " id="authority_key_identifier-instance_method">
1600
+
1601
+ - (<tt><span class='object_link'><a href="Cert/Extensions/AuthorityKeyIdentifier.html" title="R509::Cert::Extensions::AuthorityKeyIdentifier (class)">R509::Cert::Extensions::AuthorityKeyIdentifier</a></span></tt>) <strong>authority_key_identifier</strong>
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+ </h3><div class="docstring">
1608
+ <div class="discussion">
1609
+
1610
+ <p>Returns this object's AuthorityKeyIdentifier extension as an R509 extension</p>
1611
+
1612
+
1613
+ </div>
1614
+ </div>
1615
+ <div class="tags">
1616
+
1617
+ <p class="tag_title">Returns:</p>
1618
+ <ul class="return">
1619
+
1620
+ <li>
1621
+
1622
+
1623
+ <span class='type'>(<tt><span class='object_link'><a href="Cert/Extensions/AuthorityKeyIdentifier.html" title="R509::Cert::Extensions::AuthorityKeyIdentifier (class)">R509::Cert::Extensions::AuthorityKeyIdentifier</a></span></tt>)</span>
1624
+
1625
+
1626
+
1627
+ &mdash;
1628
+ <div class='inline'>
1629
+ <p>The object, or nil if this cert does not have a AuthorityKeyIdentifier
1630
+ extension.</p>
1631
+ </div>
1632
+
1633
+ </li>
1634
+
1635
+ </ul>
1636
+
1637
+ </div><table class="source_code">
1638
+ <tr>
1639
+ <td>
1640
+ <pre class="lines">
1641
+
1642
+
1643
+ 369
1644
+ 370
1645
+ 371</pre>
1646
+ </td>
1647
+ <td>
1648
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 369</span>
1649
+
1650
+ <span class='kw'>def</span> <span class='id identifier rubyid_authority_key_identifier'>authority_key_identifier</span>
1651
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span><span class='lbracket'>[</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='op'>::</span><span class='const'>Extensions</span><span class='op'>::</span><span class='const'>AuthorityKeyIdentifier</span><span class='rbracket'>]</span>
1652
+ <span class='kw'>end</span></pre>
1653
+ </td>
1654
+ </tr>
1655
+ </table>
1656
+ </div>
1657
+
1658
+ <div class="method_details ">
1659
+ <h3 class="signature " id="basic_constraints-instance_method">
1660
+
1661
+ - (<tt><span class='object_link'><a href="Cert/Extensions/BasicConstraints.html" title="R509::Cert::Extensions::BasicConstraints (class)">R509::Cert::Extensions::BasicConstraints</a></span></tt>) <strong>basic_constraints</strong>
1662
+
1663
+
1664
+
1665
+
1666
+
1667
+ </h3><div class="docstring">
1668
+ <div class="discussion">
1669
+
1670
+ <p>Returns this object's BasicConstraints extension as an R509 extension</p>
1671
+
1672
+
1673
+ </div>
1674
+ </div>
1675
+ <div class="tags">
1676
+
1677
+ <p class="tag_title">Returns:</p>
1678
+ <ul class="return">
1679
+
1680
+ <li>
1681
+
1682
+
1683
+ <span class='type'>(<tt><span class='object_link'><a href="Cert/Extensions/BasicConstraints.html" title="R509::Cert::Extensions::BasicConstraints (class)">R509::Cert::Extensions::BasicConstraints</a></span></tt>)</span>
1684
+
1685
+
1686
+
1687
+ &mdash;
1688
+ <div class='inline'>
1689
+ <p>The object, or nil if this cert does not have a BasicConstraints extension.</p>
1690
+ </div>
1691
+
1692
+ </li>
1693
+
1694
+ </ul>
1695
+
1696
+ </div><table class="source_code">
1697
+ <tr>
1698
+ <td>
1699
+ <pre class="lines">
1700
+
1701
+
1702
+ 337
1703
+ 338
1704
+ 339</pre>
1705
+ </td>
1706
+ <td>
1707
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 337</span>
1708
+
1709
+ <span class='kw'>def</span> <span class='id identifier rubyid_basic_constraints'>basic_constraints</span>
1710
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span><span class='lbracket'>[</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='op'>::</span><span class='const'>Extensions</span><span class='op'>::</span><span class='const'>BasicConstraints</span><span class='rbracket'>]</span>
1711
+ <span class='kw'>end</span></pre>
1712
+ </td>
1713
+ </tr>
1714
+ </table>
1715
+ </div>
1716
+
1717
+ <div class="method_details ">
1718
+ <h3 class="signature " id="bit_strength-instance_method">
1719
+
1720
+ - (<tt>Integer</tt>) <strong>bit_strength</strong>
1721
+
1722
+
1723
+
1724
+
1725
+
1726
+ </h3><div class="docstring">
1727
+ <div class="discussion">
1728
+
1729
+ <p>Returns the bit strength of the key used to create the certificate</p>
1730
+
1731
+
1732
+ </div>
1733
+ </div>
1734
+ <div class="tags">
1735
+
1736
+ <p class="tag_title">Returns:</p>
1737
+ <ul class="return">
1738
+
1739
+ <li>
1740
+
1741
+
1742
+ <span class='type'>(<tt>Integer</tt>)</span>
1743
+
1744
+
1745
+
1746
+ &mdash;
1747
+ <div class='inline'>
1748
+ <p>integer value of bit strength</p>
1749
+ </div>
1750
+
1751
+ </li>
1752
+
1753
+ </ul>
1754
+
1755
+ </div><table class="source_code">
1756
+ <tr>
1757
+ <td>
1758
+ <pre class="lines">
1759
+
1760
+
1761
+ 230
1762
+ 231
1763
+ 232
1764
+ 233
1765
+ 234
1766
+ 235
1767
+ 236</pre>
1768
+ </td>
1769
+ <td>
1770
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 230</span>
1771
+
1772
+ <span class='kw'>def</span> <span class='id identifier rubyid_bit_strength'>bit_strength</span>
1773
+ <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rsa?'>rsa?</span>
1774
+ <span class='kw'>return</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='period'>.</span><span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_num_bits'>num_bits</span>
1775
+ <span class='kw'>elsif</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_dsa?'>dsa?</span>
1776
+ <span class='kw'>return</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='period'>.</span><span class='id identifier rubyid_p'>p</span><span class='period'>.</span><span class='id identifier rubyid_num_bits'>num_bits</span>
1777
+ <span class='kw'>end</span>
1778
+ <span class='kw'>end</span></pre>
1779
+ </td>
1780
+ </tr>
1781
+ </table>
1782
+ </div>
1783
+
1784
+ <div class="method_details ">
1785
+ <h3 class="signature " id="crl_distribution_points-instance_method">
1786
+
1787
+ - (<tt><span class='object_link'><a href="Cert/Extensions/CrlDistributionPoints.html" title="R509::Cert::Extensions::CrlDistributionPoints (class)">R509::Cert::Extensions::CrlDistributionPoints</a></span></tt>) <strong>crl_distribution_points</strong>
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+ </h3><div class="docstring">
1794
+ <div class="discussion">
1795
+
1796
+ <p>Returns this object's CrlDistributionPoints extension as an R509 extension</p>
1797
+
1798
+
1799
+ </div>
1800
+ </div>
1801
+ <div class="tags">
1802
+
1803
+ <p class="tag_title">Returns:</p>
1804
+ <ul class="return">
1805
+
1806
+ <li>
1807
+
1808
+
1809
+ <span class='type'>(<tt><span class='object_link'><a href="Cert/Extensions/CrlDistributionPoints.html" title="R509::Cert::Extensions::CrlDistributionPoints (class)">R509::Cert::Extensions::CrlDistributionPoints</a></span></tt>)</span>
1810
+
1811
+
1812
+
1813
+ &mdash;
1814
+ <div class='inline'>
1815
+ <p>The object, or nil if this cert does not have a CrlDistributionPoints
1816
+ extension.</p>
1817
+ </div>
1818
+
1819
+ </li>
1820
+
1821
+ </ul>
1822
+
1823
+ </div><table class="source_code">
1824
+ <tr>
1825
+ <td>
1826
+ <pre class="lines">
1827
+
1828
+
1829
+ 393
1830
+ 394
1831
+ 395</pre>
1832
+ </td>
1833
+ <td>
1834
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 393</span>
1835
+
1836
+ <span class='kw'>def</span> <span class='id identifier rubyid_crl_distribution_points'>crl_distribution_points</span>
1837
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span><span class='lbracket'>[</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='op'>::</span><span class='const'>Extensions</span><span class='op'>::</span><span class='const'>CrlDistributionPoints</span><span class='rbracket'>]</span>
1838
+ <span class='kw'>end</span></pre>
1839
+ </td>
1840
+ </tr>
1841
+ </table>
1842
+ </div>
1843
+
1844
+ <div class="method_details ">
1845
+ <h3 class="signature " id="dsa?-instance_method">
1846
+
1847
+ - (<tt>Boolean</tt>) <strong>dsa?</strong>
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+ </h3><div class="docstring">
1854
+ <div class="discussion">
1855
+
1856
+ <p>Returns whether the public key is DSA</p>
1857
+
1858
+
1859
+ </div>
1860
+ </div>
1861
+ <div class="tags">
1862
+
1863
+ <p class="tag_title">Returns:</p>
1864
+ <ul class="return">
1865
+
1866
+ <li>
1867
+
1868
+
1869
+ <span class='type'>(<tt>Boolean</tt>)</span>
1870
+
1871
+
1872
+
1873
+ &mdash;
1874
+ <div class='inline'>
1875
+ <p>true if the public key is DSA, false otherwise</p>
1876
+ </div>
1877
+
1878
+ </li>
1879
+
1880
+ </ul>
1881
+
1882
+ </div><table class="source_code">
1883
+ <tr>
1884
+ <td>
1885
+ <pre class="lines">
1886
+
1887
+
1888
+ 223
1889
+ 224
1890
+ 225</pre>
1891
+ </td>
1892
+ <td>
1893
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 223</span>
1894
+
1895
+ <span class='kw'>def</span> <span class='id identifier rubyid_dsa?'>dsa?</span>
1896
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</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'>DSA</span><span class='rparen'>)</span>
1897
+ <span class='kw'>end</span></pre>
1898
+ </td>
1899
+ </tr>
1900
+ </table>
1901
+ </div>
1902
+
1903
+ <div class="method_details ">
1904
+ <h3 class="signature " id="extended_key_usage-instance_method">
1905
+
1906
+ - (<tt><span class='object_link'><a href="Cert/Extensions/ExtendedKeyUsage.html" title="R509::Cert::Extensions::ExtendedKeyUsage (class)">R509::Cert::Extensions::ExtendedKeyUsage</a></span></tt>) <strong>extended_key_usage</strong>
1907
+
1908
+
1909
+
1910
+
1911
+
1912
+ </h3><div class="docstring">
1913
+ <div class="discussion">
1914
+
1915
+ <p>Returns this object's ExtendedKeyUsage extension as an R509 extension</p>
1916
+
1917
+
1918
+ </div>
1919
+ </div>
1920
+ <div class="tags">
1921
+
1922
+ <p class="tag_title">Returns:</p>
1923
+ <ul class="return">
1924
+
1925
+ <li>
1926
+
1927
+
1928
+ <span class='type'>(<tt><span class='object_link'><a href="Cert/Extensions/ExtendedKeyUsage.html" title="R509::Cert::Extensions::ExtendedKeyUsage (class)">R509::Cert::Extensions::ExtendedKeyUsage</a></span></tt>)</span>
1929
+
1930
+
1931
+
1932
+ &mdash;
1933
+ <div class='inline'>
1934
+ <p>The object, or nil if this cert does not have a ExtendedKeyUsage extension.</p>
1935
+ </div>
1936
+
1937
+ </li>
1938
+
1939
+ </ul>
1940
+
1941
+ </div><table class="source_code">
1942
+ <tr>
1943
+ <td>
1944
+ <pre class="lines">
1945
+
1946
+
1947
+ 353
1948
+ 354
1949
+ 355</pre>
1950
+ </td>
1951
+ <td>
1952
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 353</span>
1953
+
1954
+ <span class='kw'>def</span> <span class='id identifier rubyid_extended_key_usage'>extended_key_usage</span>
1955
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span><span class='lbracket'>[</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='op'>::</span><span class='const'>Extensions</span><span class='op'>::</span><span class='const'>ExtendedKeyUsage</span><span class='rbracket'>]</span>
1956
+ <span class='kw'>end</span></pre>
1957
+ </td>
1958
+ </tr>
1959
+ </table>
1960
+ </div>
1961
+
1962
+ <div class="method_details ">
1963
+ <h3 class="signature " id="extensions-instance_method">
1964
+
1965
+ - (<tt>Array</tt>) <strong>extensions</strong>
1966
+
1967
+
1968
+
1969
+
1970
+
1971
+ </h3><div class="docstring">
1972
+ <div class="discussion">
1973
+
1974
+ <p>Return the certificate extensions</p>
1975
+
1976
+
1977
+ </div>
1978
+ </div>
1979
+ <div class="tags">
1980
+
1981
+ <p class="tag_title">Returns:</p>
1982
+ <ul class="return">
1983
+
1984
+ <li>
1985
+
1986
+
1987
+ <span class='type'>(<tt>Array</tt>)</span>
1988
+
1989
+
1990
+
1991
+ &mdash;
1992
+ <div class='inline'>
1993
+ <p>an array of hashes representing the extensions in the cert</p>
1994
+ </div>
1995
+
1996
+ </li>
1997
+
1998
+ </ul>
1999
+
2000
+ </div><table class="source_code">
2001
+ <tr>
2002
+ <td>
2003
+ <pre class="lines">
2004
+
2005
+
2006
+ 295
2007
+ 296
2008
+ 297
2009
+ 298
2010
+ 299
2011
+ 300
2012
+ 301
2013
+ 302
2014
+ 303
2015
+ 304</pre>
2016
+ </td>
2017
+ <td>
2018
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 295</span>
2019
+
2020
+ <span class='kw'>def</span> <span class='id identifier rubyid_extensions'>extensions</span>
2021
+ <span class='kw'>if</span> <span class='ivar'>@extensions</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2022
+ <span class='ivar'>@extensions</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
2023
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_extensions'>extensions</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_extension'>extension</span><span class='op'>|</span>
2024
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>value</span><span class='tstring_end'>'</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_extension'>extension</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>critical</span><span class='tstring_end'>'</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_extension'>extension</span><span class='period'>.</span><span class='id identifier rubyid_critical?'>critical?</span><span class='rbrace'>}</span>
2025
+ <span class='ivar'>@extensions</span><span class='lbracket'>[</span><span class='id identifier rubyid_extension'>extension</span><span class='period'>.</span><span class='id identifier rubyid_oid'>oid</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_hash'>hash</span>
2026
+ <span class='rbrace'>}</span>
2027
+ <span class='kw'>end</span>
2028
+ <span class='ivar'>@extensions</span>
2029
+ <span class='kw'>end</span></pre>
2030
+ </td>
2031
+ </tr>
2032
+ </table>
2033
+ </div>
2034
+
2035
+ <div class="method_details ">
2036
+ <h3 class="signature " id="fingerprint-instance_method">
2037
+
2038
+ - (<tt>String</tt>) <strong>fingerprint</strong>(algorithm = 'sha1')
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+ </h3><div class="docstring">
2045
+ <div class="discussion">
2046
+
2047
+ <p>Returns the certificate fingerprint with the specified algorithm (default
2048
+ sha1)</p>
2049
+
2050
+
2051
+ </div>
2052
+ </div>
2053
+ <div class="tags">
2054
+ <p class="tag_title">Parameters:</p>
2055
+ <ul class="param">
2056
+
2057
+ <li>
2058
+
2059
+ <span class='name'>algorithm</span>
2060
+
2061
+
2062
+ <span class='type'>(<tt>String</tt>)</span>
2063
+
2064
+
2065
+ <em class="default">(defaults to: <tt>'sha1'</tt>)</em>
2066
+
2067
+
2068
+ &mdash;
2069
+ <div class='inline'>
2070
+ <p>Which algorithm to use for the fingerprint. See R509::MessageDigest for
2071
+ supported algorithm names</p>
2072
+ </div>
2073
+
2074
+ </li>
2075
+
2076
+ </ul>
2077
+
2078
+ <p class="tag_title">Returns:</p>
2079
+ <ul class="return">
2080
+
2081
+ <li>
2082
+
2083
+
2084
+ <span class='type'>(<tt>String</tt>)</span>
2085
+
2086
+
2087
+
2088
+ &mdash;
2089
+ <div class='inline'>
2090
+ <p>hex digest of the certificate</p>
2091
+ </div>
2092
+
2093
+ </li>
2094
+
2095
+ </ul>
2096
+
2097
+ </div><table class="source_code">
2098
+ <tr>
2099
+ <td>
2100
+ <pre class="lines">
2101
+
2102
+
2103
+ 129
2104
+ 130
2105
+ 131
2106
+ 132
2107
+ 133
2108
+ 134</pre>
2109
+ </td>
2110
+ <td>
2111
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 129</span>
2112
+
2113
+ <span class='kw'>def</span> <span class='id identifier rubyid_fingerprint'>fingerprint</span><span class='lparen'>(</span><span class='id identifier rubyid_algorithm'>algorithm</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>sha1</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
2114
+ <span class='id identifier rubyid_message_digest'>message_digest</span> <span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>MessageDigest</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_algorithm'>algorithm</span><span class='rparen'>)</span>
2115
+ <span class='id identifier rubyid_md'>md</span> <span class='op'>=</span> <span class='id identifier rubyid_message_digest'>message_digest</span><span class='period'>.</span><span class='id identifier rubyid_digest'>digest</span>
2116
+ <span class='id identifier rubyid_md'>md</span><span class='period'>.</span><span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span><span class='rparen'>)</span>
2117
+ <span class='id identifier rubyid_md'>md</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
2118
+ <span class='kw'>end</span></pre>
2119
+ </td>
2120
+ </tr>
2121
+ </table>
2122
+ </div>
2123
+
2124
+ <div class="method_details ">
2125
+ <h3 class="signature " id="has_private_key?-instance_method">
2126
+
2127
+ - (<tt>Boolean</tt>) <strong>has_private_key?</strong>
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+ </h3><div class="docstring">
2134
+ <div class="discussion">
2135
+
2136
+ <p>Boolean of whether the object contains a private key</p>
2137
+
2138
+
2139
+ </div>
2140
+ </div>
2141
+ <div class="tags">
2142
+
2143
+ <p class="tag_title">Returns:</p>
2144
+ <ul class="return">
2145
+
2146
+ <li>
2147
+
2148
+
2149
+ <span class='type'>(<tt>Boolean</tt>)</span>
2150
+
2151
+
2152
+
2153
+ &mdash;
2154
+ <div class='inline'>
2155
+ <p>Boolean of whether the object contains a private key</p>
2156
+ </div>
2157
+
2158
+ </li>
2159
+
2160
+ </ul>
2161
+
2162
+ </div><table class="source_code">
2163
+ <tr>
2164
+ <td>
2165
+ <pre class="lines">
2166
+
2167
+
2168
+ 168
2169
+ 169
2170
+ 170
2171
+ 171
2172
+ 172
2173
+ 173
2174
+ 174</pre>
2175
+ </td>
2176
+ <td>
2177
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 168</span>
2178
+
2179
+ <span class='kw'>def</span> <span class='id identifier rubyid_has_private_key?'>has_private_key?</span>
2180
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='ivar'>@key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2181
+ <span class='kw'>true</span>
2182
+ <span class='kw'>else</span>
2183
+ <span class='kw'>false</span>
2184
+ <span class='kw'>end</span>
2185
+ <span class='kw'>end</span></pre>
2186
+ </td>
2187
+ </tr>
2188
+ </table>
2189
+ </div>
2190
+
2191
+ <div class="method_details ">
2192
+ <h3 class="signature " id="is_revoked_by_crl?-instance_method">
2193
+
2194
+ - (<tt>Boolean</tt>) <strong>is_revoked_by_crl?</strong>(r509_crl)
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+ </h3><div class="docstring">
2201
+ <div class="discussion">
2202
+
2203
+ <p>Checks the given CRL for this certificate's serial number. Note that this
2204
+ does NOT check to verify that the CRL you're checking is signed by the same
2205
+ CA as the cert so do that check yourself</p>
2206
+
2207
+
2208
+ </div>
2209
+ </div>
2210
+ <div class="tags">
2211
+ <p class="tag_title">Parameters:</p>
2212
+ <ul class="param">
2213
+
2214
+ <li>
2215
+
2216
+ <span class='name'>r509_crl</span>
2217
+
2218
+
2219
+ <span class='type'>(<tt><span class='object_link'><a href="Crl.html" title="R509::Crl (module)">R509::Crl</a></span></tt>)</span>
2220
+
2221
+
2222
+
2223
+ &mdash;
2224
+ <div class='inline'>
2225
+ <p>A CRL from the CA that issued this certificate.</p>
2226
+ </div>
2227
+
2228
+ </li>
2229
+
2230
+ </ul>
2231
+
2232
+ <p class="tag_title">Returns:</p>
2233
+ <ul class="return">
2234
+
2235
+ <li>
2236
+
2237
+
2238
+ <span class='type'>(<tt>Boolean</tt>)</span>
2239
+
2240
+
2241
+
2242
+ </li>
2243
+
2244
+ </ul>
2245
+
2246
+ </div><table class="source_code">
2247
+ <tr>
2248
+ <td>
2249
+ <pre class="lines">
2250
+
2251
+
2252
+ 288
2253
+ 289
2254
+ 290</pre>
2255
+ </td>
2256
+ <td>
2257
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 288</span>
2258
+
2259
+ <span class='kw'>def</span> <span class='id identifier rubyid_is_revoked_by_crl?'>is_revoked_by_crl?</span><span class='lparen'>(</span> <span class='id identifier rubyid_r509_crl'>r509_crl</span> <span class='rparen'>)</span>
2260
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_crl'>r509_crl</span><span class='period'>.</span><span class='id identifier rubyid_revoked?'>revoked?</span><span class='lparen'>(</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_serial'>serial</span> <span class='rparen'>)</span>
2261
+ <span class='kw'>end</span></pre>
2262
+ </td>
2263
+ </tr>
2264
+ </table>
2265
+ </div>
2266
+
2267
+ <div class="method_details ">
2268
+ <h3 class="signature " id="issuer-instance_method">
2269
+
2270
+ - (<tt>OpenSSL::X509::Name</tt>) <strong>issuer</strong>
2271
+
2272
+
2273
+
2274
+
2275
+
2276
+ </h3><div class="docstring">
2277
+ <div class="discussion">
2278
+
2279
+ <p>Returns the issuer</p>
2280
+
2281
+
2282
+ </div>
2283
+ </div>
2284
+ <div class="tags">
2285
+
2286
+ <p class="tag_title">Returns:</p>
2287
+ <ul class="return">
2288
+
2289
+ <li>
2290
+
2291
+
2292
+ <span class='type'>(<tt>OpenSSL::X509::Name</tt>)</span>
2293
+
2294
+
2295
+
2296
+ &mdash;
2297
+ <div class='inline'>
2298
+ <p>issuer object. Can be parsed as string easily</p>
2299
+ </div>
2300
+
2301
+ </li>
2302
+
2303
+ </ul>
2304
+
2305
+ </div><table class="source_code">
2306
+ <tr>
2307
+ <td>
2308
+ <pre class="lines">
2309
+
2310
+
2311
+ 109
2312
+ 110
2313
+ 111</pre>
2314
+ </td>
2315
+ <td>
2316
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 109</span>
2317
+
2318
+ <span class='kw'>def</span> <span class='id identifier rubyid_issuer'>issuer</span>
2319
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_issuer'>issuer</span>
2320
+ <span class='kw'>end</span></pre>
2321
+ </td>
2322
+ </tr>
2323
+ </table>
2324
+ </div>
2325
+
2326
+ <div class="method_details ">
2327
+ <h3 class="signature " id="issuer_cn-instance_method">
2328
+
2329
+ - (<tt>String</tt>) <strong>issuer_cn</strong>
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+ </h3><div class="docstring">
2336
+ <div class="discussion">
2337
+
2338
+ <p>The common name (CN) component of the issuer</p>
2339
+
2340
+
2341
+ </div>
2342
+ </div>
2343
+ <div class="tags">
2344
+
2345
+ <p class="tag_title">Returns:</p>
2346
+ <ul class="return">
2347
+
2348
+ <li>
2349
+
2350
+
2351
+ <span class='type'>(<tt>String</tt>)</span>
2352
+
2353
+
2354
+
2355
+ &mdash;
2356
+ <div class='inline'>
2357
+ <p>The common name (CN) component of the issuer</p>
2358
+ </div>
2359
+
2360
+ </li>
2361
+
2362
+ </ul>
2363
+
2364
+ </div><table class="source_code">
2365
+ <tr>
2366
+ <td>
2367
+ <pre class="lines">
2368
+
2369
+
2370
+ 114
2371
+ 115
2372
+ 116
2373
+ 117
2374
+ 118
2375
+ 119
2376
+ 120
2377
+ 121
2378
+ 122
2379
+ 123</pre>
2380
+ </td>
2381
+ <td>
2382
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 114</span>
2383
+
2384
+ <span class='kw'>def</span> <span class='id identifier rubyid_issuer_cn'>issuer_cn</span>
2385
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_issuer'>issuer</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2386
+
2387
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_issuer'>issuer</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_length'>length</span><span class='op'>|</span>
2388
+ <span class='kw'>return</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_upcase'>upcase</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>CN</span><span class='tstring_end'>'</span></span>
2389
+ <span class='kw'>end</span>
2390
+
2391
+ <span class='comment'># return nil if we didn't find a CN part
2392
+ </span> <span class='kw'>return</span> <span class='kw'>nil</span>
2393
+ <span class='kw'>end</span></pre>
2394
+ </td>
2395
+ </tr>
2396
+ </table>
2397
+ </div>
2398
+
2399
+ <div class="method_details ">
2400
+ <h3 class="signature " id="key_algorithm-instance_method">
2401
+
2402
+ - (<tt>String</tt>) <strong>key_algorithm</strong>
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+ </h3><div class="docstring">
2409
+ <div class="discussion">
2410
+
2411
+ <p>Returns key algorithm (RSA or DSA)</p>
2412
+
2413
+
2414
+ </div>
2415
+ </div>
2416
+ <div class="tags">
2417
+
2418
+ <p class="tag_title">Returns:</p>
2419
+ <ul class="return">
2420
+
2421
+ <li>
2422
+
2423
+
2424
+ <span class='type'>(<tt>String</tt>)</span>
2425
+
2426
+
2427
+
2428
+ &mdash;
2429
+ <div class='inline'>
2430
+ <p>value of the key algorithm. RSA or DSA</p>
2431
+ </div>
2432
+
2433
+ </li>
2434
+
2435
+ </ul>
2436
+
2437
+ </div><table class="source_code">
2438
+ <tr>
2439
+ <td>
2440
+ <pre class="lines">
2441
+
2442
+
2443
+ 248
2444
+ 249
2445
+ 250
2446
+ 251
2447
+ 252
2448
+ 253
2449
+ 254</pre>
2450
+ </td>
2451
+ <td>
2452
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 248</span>
2453
+
2454
+ <span class='kw'>def</span> <span class='id identifier rubyid_key_algorithm'>key_algorithm</span>
2455
+ <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rsa?'>rsa?</span>
2456
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>RSA</span><span class='tstring_end'>&quot;</span></span>
2457
+ <span class='kw'>elsif</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_dsa?'>dsa?</span>
2458
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>DSA</span><span class='tstring_end'>&quot;</span></span>
2459
+ <span class='kw'>end</span>
2460
+ <span class='kw'>end</span></pre>
2461
+ </td>
2462
+ </tr>
2463
+ </table>
2464
+ </div>
2465
+
2466
+ <div class="method_details ">
2467
+ <h3 class="signature " id="key_usage-instance_method">
2468
+
2469
+ - (<tt><span class='object_link'><a href="Cert/Extensions/KeyUsage.html" title="R509::Cert::Extensions::KeyUsage (class)">R509::Cert::Extensions::KeyUsage</a></span></tt>) <strong>key_usage</strong>
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+ </h3><div class="docstring">
2476
+ <div class="discussion">
2477
+
2478
+ <p>Returns this object's KeyUsage extension as an R509 extension</p>
2479
+
2480
+
2481
+ </div>
2482
+ </div>
2483
+ <div class="tags">
2484
+
2485
+ <p class="tag_title">Returns:</p>
2486
+ <ul class="return">
2487
+
2488
+ <li>
2489
+
2490
+
2491
+ <span class='type'>(<tt><span class='object_link'><a href="Cert/Extensions/KeyUsage.html" title="R509::Cert::Extensions::KeyUsage (class)">R509::Cert::Extensions::KeyUsage</a></span></tt>)</span>
2492
+
2493
+
2494
+
2495
+ &mdash;
2496
+ <div class='inline'>
2497
+ <p>The object, or nil if this cert does not have a KeyUsage extension.</p>
2498
+ </div>
2499
+
2500
+ </li>
2501
+
2502
+ </ul>
2503
+
2504
+ </div><table class="source_code">
2505
+ <tr>
2506
+ <td>
2507
+ <pre class="lines">
2508
+
2509
+
2510
+ 345
2511
+ 346
2512
+ 347</pre>
2513
+ </td>
2514
+ <td>
2515
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 345</span>
2516
+
2517
+ <span class='kw'>def</span> <span class='id identifier rubyid_key_usage'>key_usage</span>
2518
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span><span class='lbracket'>[</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='op'>::</span><span class='const'>Extensions</span><span class='op'>::</span><span class='const'>KeyUsage</span><span class='rbracket'>]</span>
2519
+ <span class='kw'>end</span></pre>
2520
+ </td>
2521
+ </tr>
2522
+ </table>
2523
+ </div>
2524
+
2525
+ <div class="method_details ">
2526
+ <h3 class="signature " id="not_after-instance_method">
2527
+
2528
+ - (<tt>Time</tt>) <strong>not_after</strong>
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+ </h3><div class="docstring">
2535
+ <div class="discussion">
2536
+
2537
+ <p>Returns ending (notAfter) of certificate validity period</p>
2538
+
2539
+
2540
+ </div>
2541
+ </div>
2542
+ <div class="tags">
2543
+
2544
+ <p class="tag_title">Returns:</p>
2545
+ <ul class="return">
2546
+
2547
+ <li>
2548
+
2549
+
2550
+ <span class='type'>(<tt>Time</tt>)</span>
2551
+
2552
+
2553
+
2554
+ &mdash;
2555
+ <div class='inline'>
2556
+ <p>time object</p>
2557
+ </div>
2558
+
2559
+ </li>
2560
+
2561
+ </ul>
2562
+
2563
+ </div><table class="source_code">
2564
+ <tr>
2565
+ <td>
2566
+ <pre class="lines">
2567
+
2568
+
2569
+ 95
2570
+ 96
2571
+ 97</pre>
2572
+ </td>
2573
+ <td>
2574
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 95</span>
2575
+
2576
+ <span class='kw'>def</span> <span class='id identifier rubyid_not_after'>not_after</span>
2577
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_not_after'>not_after</span>
2578
+ <span class='kw'>end</span></pre>
2579
+ </td>
2580
+ </tr>
2581
+ </table>
2582
+ </div>
2583
+
2584
+ <div class="method_details ">
2585
+ <h3 class="signature " id="not_before-instance_method">
2586
+
2587
+ - (<tt>Time</tt>) <strong>not_before</strong>
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+ </h3><div class="docstring">
2594
+ <div class="discussion">
2595
+
2596
+ <p>Returns beginning (notBefore) of certificate validity period</p>
2597
+
2598
+
2599
+ </div>
2600
+ </div>
2601
+ <div class="tags">
2602
+
2603
+ <p class="tag_title">Returns:</p>
2604
+ <ul class="return">
2605
+
2606
+ <li>
2607
+
2608
+
2609
+ <span class='type'>(<tt>Time</tt>)</span>
2610
+
2611
+
2612
+
2613
+ &mdash;
2614
+ <div class='inline'>
2615
+ <p>time object</p>
2616
+ </div>
2617
+
2618
+ </li>
2619
+
2620
+ </ul>
2621
+
2622
+ </div><table class="source_code">
2623
+ <tr>
2624
+ <td>
2625
+ <pre class="lines">
2626
+
2627
+
2628
+ 81
2629
+ 82
2630
+ 83</pre>
2631
+ </td>
2632
+ <td>
2633
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 81</span>
2634
+
2635
+ <span class='kw'>def</span> <span class='id identifier rubyid_not_before'>not_before</span>
2636
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_not_before'>not_before</span>
2637
+ <span class='kw'>end</span></pre>
2638
+ </td>
2639
+ </tr>
2640
+ </table>
2641
+ </div>
2642
+
2643
+ <div class="method_details ">
2644
+ <h3 class="signature " id="public_key-instance_method">
2645
+
2646
+ - (<tt>OpenSSL::PKey::RSA</tt>) <strong>public_key</strong>
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+ </h3><div class="docstring">
2653
+ <div class="discussion">
2654
+
2655
+ <p>Returns the certificate public key</p>
2656
+
2657
+
2658
+ </div>
2659
+ </div>
2660
+ <div class="tags">
2661
+
2662
+ <p class="tag_title">Returns:</p>
2663
+ <ul class="return">
2664
+
2665
+ <li>
2666
+
2667
+
2668
+ <span class='type'>(<tt>OpenSSL::PKey::RSA</tt>)</span>
2669
+
2670
+
2671
+
2672
+ &mdash;
2673
+ <div class='inline'>
2674
+ <p>public key object</p>
2675
+ </div>
2676
+
2677
+ </li>
2678
+
2679
+ </ul>
2680
+
2681
+ </div><table class="source_code">
2682
+ <tr>
2683
+ <td>
2684
+ <pre class="lines">
2685
+
2686
+
2687
+ 102
2688
+ 103
2689
+ 104</pre>
2690
+ </td>
2691
+ <td>
2692
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 102</span>
2693
+
2694
+ <span class='kw'>def</span> <span class='id identifier rubyid_public_key'>public_key</span>
2695
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span>
2696
+ <span class='kw'>end</span></pre>
2697
+ </td>
2698
+ </tr>
2699
+ </table>
2700
+ </div>
2701
+
2702
+ <div class="method_details ">
2703
+ <h3 class="signature " id="r509_extensions-instance_method">
2704
+
2705
+ - (<tt>Hash</tt>) <strong>r509_extensions</strong>
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+ </h3><div class="docstring">
2712
+ <div class="discussion">
2713
+
2714
+ <p>Returns the certificate extensions as a hash of R509::Cert::Extensions
2715
+ specific objects.</p>
2716
+
2717
+ <p>R509::Cert::Extensions module, each specific to the extension. The hash is
2718
+ keyed with the R509 extension class. Extensions without an R509
2719
+ implementation are ignored (see #get_unknown_extensions).</p>
2720
+
2721
+
2722
+ </div>
2723
+ </div>
2724
+ <div class="tags">
2725
+
2726
+ <p class="tag_title">Returns:</p>
2727
+ <ul class="return">
2728
+
2729
+ <li>
2730
+
2731
+
2732
+ <span class='type'>(<tt>Hash</tt>)</span>
2733
+
2734
+
2735
+
2736
+ &mdash;
2737
+ <div class='inline'>
2738
+ <p>A hash, in which the values are classes from the</p>
2739
+ </div>
2740
+
2741
+ </li>
2742
+
2743
+ </ul>
2744
+
2745
+ </div><table class="source_code">
2746
+ <tr>
2747
+ <td>
2748
+ <pre class="lines">
2749
+
2750
+
2751
+ 313
2752
+ 314
2753
+ 315
2754
+ 316
2755
+ 317
2756
+ 318
2757
+ 319</pre>
2758
+ </td>
2759
+ <td>
2760
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 313</span>
2761
+
2762
+ <span class='kw'>def</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span>
2763
+ <span class='kw'>if</span> <span class='ivar'>@r509_extensions</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2764
+ <span class='ivar'>@r509_extensions</span> <span class='op'>=</span> <span class='const'>Extensions</span><span class='period'>.</span><span class='id identifier rubyid_wrap_openssl_extensions'>wrap_openssl_extensions</span><span class='lparen'>(</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cert'>cert</span><span class='period'>.</span><span class='id identifier rubyid_extensions'>extensions</span> <span class='rparen'>)</span>
2765
+ <span class='kw'>end</span>
2766
+
2767
+ <span class='kw'>return</span> <span class='ivar'>@r509_extensions</span>
2768
+ <span class='kw'>end</span></pre>
2769
+ </td>
2770
+ </tr>
2771
+ </table>
2772
+ </div>
2773
+
2774
+ <div class="method_details ">
2775
+ <h3 class="signature " id="rsa?-instance_method">
2776
+
2777
+ - (<tt>Boolean</tt>) <strong>rsa?</strong>
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+ </h3><div class="docstring">
2784
+ <div class="discussion">
2785
+
2786
+ <p>Returns whether the public key is RSA</p>
2787
+
2788
+
2789
+ </div>
2790
+ </div>
2791
+ <div class="tags">
2792
+
2793
+ <p class="tag_title">Returns:</p>
2794
+ <ul class="return">
2795
+
2796
+ <li>
2797
+
2798
+
2799
+ <span class='type'>(<tt>Boolean</tt>)</span>
2800
+
2801
+
2802
+
2803
+ &mdash;
2804
+ <div class='inline'>
2805
+ <p>true if the public key is RSA, false otherwise</p>
2806
+ </div>
2807
+
2808
+ </li>
2809
+
2810
+ </ul>
2811
+
2812
+ </div><table class="source_code">
2813
+ <tr>
2814
+ <td>
2815
+ <pre class="lines">
2816
+
2817
+
2818
+ 216
2819
+ 217
2820
+ 218</pre>
2821
+ </td>
2822
+ <td>
2823
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 216</span>
2824
+
2825
+ <span class='kw'>def</span> <span class='id identifier rubyid_rsa?'>rsa?</span>
2826
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</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'>RSA</span><span class='rparen'>)</span>
2827
+ <span class='kw'>end</span></pre>
2828
+ </td>
2829
+ </tr>
2830
+ </table>
2831
+ </div>
2832
+
2833
+ <div class="method_details ">
2834
+ <h3 class="signature " id="san_names-instance_method">
2835
+
2836
+ - (<tt>Array</tt>) <strong>san_names</strong>
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+ </h3><div class="docstring">
2843
+ <div class="discussion">
2844
+
2845
+ <p>List of SAN DNS names</p>
2846
+
2847
+
2848
+ </div>
2849
+ </div>
2850
+ <div class="tags">
2851
+
2852
+ <p class="tag_title">Returns:</p>
2853
+ <ul class="return">
2854
+
2855
+ <li>
2856
+
2857
+
2858
+ <span class='type'>(<tt>Array</tt>)</span>
2859
+
2860
+
2861
+
2862
+ &mdash;
2863
+ <div class='inline'>
2864
+ <p>list of SAN DNS names</p>
2865
+ </div>
2866
+
2867
+ </li>
2868
+
2869
+ </ul>
2870
+
2871
+ </div><table class="source_code">
2872
+ <tr>
2873
+ <td>
2874
+ <pre class="lines">
2875
+
2876
+
2877
+ 177
2878
+ 178
2879
+ 179
2880
+ 180
2881
+ 181
2882
+ 182
2883
+ 183</pre>
2884
+ </td>
2885
+ <td>
2886
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 177</span>
2887
+
2888
+ <span class='kw'>def</span> <span class='id identifier rubyid_san_names'>san_names</span>
2889
+ <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_subject_alternative_name'>subject_alternative_name</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2890
+ <span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
2891
+ <span class='kw'>else</span>
2892
+ <span class='kw'>return</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_subject_alternative_name'>subject_alternative_name</span><span class='period'>.</span><span class='id identifier rubyid_dns_names'>dns_names</span>
2893
+ <span class='kw'>end</span>
2894
+ <span class='kw'>end</span></pre>
2895
+ </td>
2896
+ </tr>
2897
+ </table>
2898
+ </div>
2899
+
2900
+ <div class="method_details ">
2901
+ <h3 class="signature " id="serial-instance_method">
2902
+
2903
+ - (<tt>Integer</tt>) <strong>serial</strong>
2904
+
2905
+
2906
+
2907
+
2908
+
2909
+ </h3><div class="docstring">
2910
+ <div class="discussion">
2911
+
2912
+ <p>Returns the serial number of the certificate in decimal form</p>
2913
+
2914
+
2915
+ </div>
2916
+ </div>
2917
+ <div class="tags">
2918
+
2919
+ <p class="tag_title">Returns:</p>
2920
+ <ul class="return">
2921
+
2922
+ <li>
2923
+
2924
+
2925
+ <span class='type'>(<tt>Integer</tt>)</span>
2926
+
2927
+
2928
+
2929
+ </li>
2930
+
2931
+ </ul>
2932
+
2933
+ </div><table class="source_code">
2934
+ <tr>
2935
+ <td>
2936
+ <pre class="lines">
2937
+
2938
+
2939
+ 88
2940
+ 89
2941
+ 90</pre>
2942
+ </td>
2943
+ <td>
2944
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 88</span>
2945
+
2946
+ <span class='kw'>def</span> <span class='id identifier rubyid_serial'>serial</span>
2947
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_serial'>serial</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
2948
+ <span class='kw'>end</span></pre>
2949
+ </td>
2950
+ </tr>
2951
+ </table>
2952
+ </div>
2953
+
2954
+ <div class="method_details ">
2955
+ <h3 class="signature " id="signature_algorithm-instance_method">
2956
+
2957
+ - (<tt>String</tt>) <strong>signature_algorithm</strong>
2958
+
2959
+
2960
+
2961
+
2962
+
2963
+ </h3><div class="docstring">
2964
+ <div class="discussion">
2965
+
2966
+ <p>Returns signature algorithm</p>
2967
+
2968
+
2969
+ </div>
2970
+ </div>
2971
+ <div class="tags">
2972
+
2973
+ <p class="tag_title">Returns:</p>
2974
+ <ul class="return">
2975
+
2976
+ <li>
2977
+
2978
+
2979
+ <span class='type'>(<tt>String</tt>)</span>
2980
+
2981
+
2982
+
2983
+ &mdash;
2984
+ <div class='inline'>
2985
+ <p>value of the signature algorithm. E.g. sha1WithRSAEncryption,
2986
+ sha256WithRSAEncryption, md5WithRSAEncryption</p>
2987
+ </div>
2988
+
2989
+ </li>
2990
+
2991
+ </ul>
2992
+
2993
+ </div><table class="source_code">
2994
+ <tr>
2995
+ <td>
2996
+ <pre class="lines">
2997
+
2998
+
2999
+ 241
3000
+ 242
3001
+ 243</pre>
3002
+ </td>
3003
+ <td>
3004
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 241</span>
3005
+
3006
+ <span class='kw'>def</span> <span class='id identifier rubyid_signature_algorithm'>signature_algorithm</span>
3007
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_signature_algorithm'>signature_algorithm</span>
3008
+ <span class='kw'>end</span></pre>
3009
+ </td>
3010
+ </tr>
3011
+ </table>
3012
+ </div>
3013
+
3014
+ <div class="method_details ">
3015
+ <h3 class="signature " id="subject-instance_method">
3016
+
3017
+ - (<tt>OpenSSL::X509::Name</tt>) <strong>subject</strong>
3018
+
3019
+
3020
+
3021
+
3022
+
3023
+ </h3><div class="docstring">
3024
+ <div class="discussion">
3025
+
3026
+ <p>Returns the subject</p>
3027
+
3028
+
3029
+ </div>
3030
+ </div>
3031
+ <div class="tags">
3032
+
3033
+ <p class="tag_title">Returns:</p>
3034
+ <ul class="return">
3035
+
3036
+ <li>
3037
+
3038
+
3039
+ <span class='type'>(<tt>OpenSSL::X509::Name</tt>)</span>
3040
+
3041
+
3042
+
3043
+ &mdash;
3044
+ <div class='inline'>
3045
+ <p>subject object. Can be parsed as string easily</p>
3046
+ </div>
3047
+
3048
+ </li>
3049
+
3050
+ </ul>
3051
+
3052
+ </div><table class="source_code">
3053
+ <tr>
3054
+ <td>
3055
+ <pre class="lines">
3056
+
3057
+
3058
+ 163
3059
+ 164
3060
+ 165</pre>
3061
+ </td>
3062
+ <td>
3063
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 163</span>
3064
+
3065
+ <span class='kw'>def</span> <span class='id identifier rubyid_subject'>subject</span>
3066
+ <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_subject'>subject</span>
3067
+ <span class='kw'>end</span></pre>
3068
+ </td>
3069
+ </tr>
3070
+ </table>
3071
+ </div>
3072
+
3073
+ <div class="method_details ">
3074
+ <h3 class="signature " id="subject_alternative_name-instance_method">
3075
+
3076
+ - (<tt><span class='object_link'><a href="Cert/Extensions/SubjectAlternativeName.html" title="R509::Cert::Extensions::SubjectAlternativeName (class)">R509::Cert::Extensions::SubjectAlternativeName</a></span></tt>) <strong>subject_alternative_name</strong>
3077
+
3078
+
3079
+
3080
+
3081
+
3082
+ </h3><div class="docstring">
3083
+ <div class="discussion">
3084
+
3085
+ <p>Returns this object's SubjectAlternativeName extension as an R509 extension</p>
3086
+
3087
+
3088
+ </div>
3089
+ </div>
3090
+ <div class="tags">
3091
+
3092
+ <p class="tag_title">Returns:</p>
3093
+ <ul class="return">
3094
+
3095
+ <li>
3096
+
3097
+
3098
+ <span class='type'>(<tt><span class='object_link'><a href="Cert/Extensions/SubjectAlternativeName.html" title="R509::Cert::Extensions::SubjectAlternativeName (class)">R509::Cert::Extensions::SubjectAlternativeName</a></span></tt>)</span>
3099
+
3100
+
3101
+
3102
+ &mdash;
3103
+ <div class='inline'>
3104
+ <p>The object, or nil if this cert does not have a SubjectAlternativeName
3105
+ extension.</p>
3106
+ </div>
3107
+
3108
+ </li>
3109
+
3110
+ </ul>
3111
+
3112
+ </div><table class="source_code">
3113
+ <tr>
3114
+ <td>
3115
+ <pre class="lines">
3116
+
3117
+
3118
+ 377
3119
+ 378
3120
+ 379</pre>
3121
+ </td>
3122
+ <td>
3123
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 377</span>
3124
+
3125
+ <span class='kw'>def</span> <span class='id identifier rubyid_subject_alternative_name'>subject_alternative_name</span>
3126
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span><span class='lbracket'>[</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='op'>::</span><span class='const'>Extensions</span><span class='op'>::</span><span class='const'>SubjectAlternativeName</span><span class='rbracket'>]</span>
3127
+ <span class='kw'>end</span></pre>
3128
+ </td>
3129
+ </tr>
3130
+ </table>
3131
+ </div>
3132
+
3133
+ <div class="method_details ">
3134
+ <h3 class="signature " id="subject_cn-instance_method">
3135
+
3136
+ - (<tt>String</tt>) <strong>subject_cn</strong>
3137
+
3138
+
3139
+
3140
+
3141
+
3142
+ </h3><div class="docstring">
3143
+ <div class="discussion">
3144
+
3145
+ <p>Returns the CN component, if any, of the subject</p>
3146
+
3147
+
3148
+ </div>
3149
+ </div>
3150
+ <div class="tags">
3151
+
3152
+ <p class="tag_title">Returns:</p>
3153
+ <ul class="return">
3154
+
3155
+ <li>
3156
+
3157
+
3158
+ <span class='type'>(<tt>String</tt>)</span>
3159
+
3160
+
3161
+
3162
+ </li>
3163
+
3164
+ </ul>
3165
+
3166
+ </div><table class="source_code">
3167
+ <tr>
3168
+ <td>
3169
+ <pre class="lines">
3170
+
3171
+
3172
+ 188
3173
+ 189
3174
+ 190</pre>
3175
+ </td>
3176
+ <td>
3177
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 188</span>
3178
+
3179
+ <span class='kw'>def</span> <span class='id identifier rubyid_subject_cn'>subject_cn</span><span class='lparen'>(</span><span class='rparen'>)</span>
3180
+ <span class='kw'>return</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_subject_component'>subject_component</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>CN</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
3181
+ <span class='kw'>end</span></pre>
3182
+ </td>
3183
+ </tr>
3184
+ </table>
3185
+ </div>
3186
+
3187
+ <div class="method_details ">
3188
+ <h3 class="signature " id="subject_component-instance_method">
3189
+
3190
+ - (<tt>String</tt>) <strong>subject_component</strong>(short_name)
3191
+
3192
+
3193
+
3194
+
3195
+
3196
+ </h3><div class="docstring">
3197
+ <div class="discussion">
3198
+
3199
+ <p>Returns subject component</p>
3200
+
3201
+
3202
+ </div>
3203
+ </div>
3204
+ <div class="tags">
3205
+
3206
+ <p class="tag_title">Returns:</p>
3207
+ <ul class="return">
3208
+
3209
+ <li>
3210
+
3211
+
3212
+ <span class='type'>(<tt>String</tt>)</span>
3213
+
3214
+
3215
+
3216
+ &mdash;
3217
+ <div class='inline'>
3218
+ <p>value of the subject component requested</p>
3219
+ </div>
3220
+
3221
+ </li>
3222
+
3223
+ </ul>
3224
+
3225
+ </div><table class="source_code">
3226
+ <tr>
3227
+ <td>
3228
+ <pre class="lines">
3229
+
3230
+
3231
+ 195
3232
+ 196
3233
+ 197
3234
+ 198
3235
+ 199</pre>
3236
+ </td>
3237
+ <td>
3238
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 195</span>
3239
+
3240
+ <span class='kw'>def</span> <span class='id identifier rubyid_subject_component'>subject_component</span> <span class='id identifier rubyid_short_name'>short_name</span>
3241
+ <span class='id identifier rubyid_match'>match</span> <span class='op'>=</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_subject'>subject</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_x'>x</span><span class='op'>|</span> <span class='id identifier rubyid_x'>x</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_short_name'>short_name</span> <span class='rbrace'>}</span>
3242
+ <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_match'>match</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
3243
+ <span class='kw'>return</span> <span class='id identifier rubyid_match'>match</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
3244
+ <span class='kw'>end</span></pre>
3245
+ </td>
3246
+ </tr>
3247
+ </table>
3248
+ </div>
3249
+
3250
+ <div class="method_details ">
3251
+ <h3 class="signature " id="subject_key_identifier-instance_method">
3252
+
3253
+ - (<tt><span class='object_link'><a href="Cert/Extensions/SubjectKeyIdentifier.html" title="R509::Cert::Extensions::SubjectKeyIdentifier (class)">R509::Cert::Extensions::SubjectKeyIdentifier</a></span></tt>) <strong>subject_key_identifier</strong>
3254
+
3255
+
3256
+
3257
+
3258
+
3259
+ </h3><div class="docstring">
3260
+ <div class="discussion">
3261
+
3262
+ <p>Returns this object's SubjectKeyIdentifier extension as an R509 extension</p>
3263
+
3264
+
3265
+ </div>
3266
+ </div>
3267
+ <div class="tags">
3268
+
3269
+ <p class="tag_title">Returns:</p>
3270
+ <ul class="return">
3271
+
3272
+ <li>
3273
+
3274
+
3275
+ <span class='type'>(<tt><span class='object_link'><a href="Cert/Extensions/SubjectKeyIdentifier.html" title="R509::Cert::Extensions::SubjectKeyIdentifier (class)">R509::Cert::Extensions::SubjectKeyIdentifier</a></span></tt>)</span>
3276
+
3277
+
3278
+
3279
+ &mdash;
3280
+ <div class='inline'>
3281
+ <p>The object, or nil if this cert does not have a SubjectKeyIdentifier
3282
+ extension.</p>
3283
+ </div>
3284
+
3285
+ </li>
3286
+
3287
+ </ul>
3288
+
3289
+ </div><table class="source_code">
3290
+ <tr>
3291
+ <td>
3292
+ <pre class="lines">
3293
+
3294
+
3295
+ 361
3296
+ 362
3297
+ 363</pre>
3298
+ </td>
3299
+ <td>
3300
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 361</span>
3301
+
3302
+ <span class='kw'>def</span> <span class='id identifier rubyid_subject_key_identifier'>subject_key_identifier</span>
3303
+ <span class='kw'>return</span> <span class='id identifier rubyid_r509_extensions'>r509_extensions</span><span class='lbracket'>[</span><span class='const'>R509</span><span class='op'>::</span><span class='const'>Cert</span><span class='op'>::</span><span class='const'>Extensions</span><span class='op'>::</span><span class='const'>SubjectKeyIdentifier</span><span class='rbracket'>]</span>
3304
+ <span class='kw'>end</span></pre>
3305
+ </td>
3306
+ </tr>
3307
+ </table>
3308
+ </div>
3309
+
3310
+ <div class="method_details ">
3311
+ <h3 class="signature " id="subject_names-instance_method">
3312
+
3313
+ - (<tt>Array</tt>) <strong>subject_names</strong>
3314
+
3315
+
3316
+
3317
+
3318
+
3319
+ </h3><div class="docstring">
3320
+ <div class="discussion">
3321
+
3322
+ <p>Return the CN, as well as all the subject alternative names (SANs).</p>
3323
+
3324
+
3325
+ </div>
3326
+ </div>
3327
+ <div class="tags">
3328
+
3329
+ <p class="tag_title">Returns:</p>
3330
+ <ul class="return">
3331
+
3332
+ <li>
3333
+
3334
+
3335
+ <span class='type'>(<tt>Array</tt>)</span>
3336
+
3337
+
3338
+
3339
+ &mdash;
3340
+ <div class='inline'>
3341
+ <p>the array of names. Returns an empty array if there are no names, at all.</p>
3342
+ </div>
3343
+
3344
+ </li>
3345
+
3346
+ </ul>
3347
+
3348
+ </div><table class="source_code">
3349
+ <tr>
3350
+ <td>
3351
+ <pre class="lines">
3352
+
3353
+
3354
+ 205
3355
+ 206
3356
+ 207
3357
+ 208
3358
+ 209
3359
+ 210
3360
+ 211</pre>
3361
+ </td>
3362
+ <td>
3363
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 205</span>
3364
+
3365
+ <span class='kw'>def</span> <span class='id identifier rubyid_subject_names'>subject_names</span>
3366
+ <span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
3367
+ <span class='id identifier rubyid_ret'>ret</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_subject_cn'>subject_cn</span> <span class='kw'>unless</span> <span class='id identifier rubyid_subject_cn'>subject_cn</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
3368
+ <span class='id identifier rubyid_ret'>ret</span><span class='period'>.</span><span class='id identifier rubyid_concat'>concat</span><span class='lparen'>(</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_san_names'>san_names</span> <span class='rparen'>)</span>
3369
+
3370
+ <span class='kw'>return</span> <span class='id identifier rubyid_ret'>ret</span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span>
3371
+ <span class='kw'>end</span></pre>
3372
+ </td>
3373
+ </tr>
3374
+ </table>
3375
+ </div>
3376
+
3377
+ <div class="method_details ">
3378
+ <h3 class="signature " id="to_der-instance_method">
3379
+
3380
+ - (<tt>String</tt>) <strong>to_der</strong>
3381
+
3382
+
3383
+
3384
+
3385
+
3386
+ </h3><div class="docstring">
3387
+ <div class="discussion">
3388
+
3389
+ <p>Converts the Cert into the DER format</p>
3390
+
3391
+
3392
+ </div>
3393
+ </div>
3394
+ <div class="tags">
3395
+
3396
+ <p class="tag_title">Returns:</p>
3397
+ <ul class="return">
3398
+
3399
+ <li>
3400
+
3401
+
3402
+ <span class='type'>(<tt>String</tt>)</span>
3403
+
3404
+
3405
+
3406
+ &mdash;
3407
+ <div class='inline'>
3408
+ <p>the Cert converted into DER format.</p>
3409
+ </div>
3410
+
3411
+ </li>
3412
+
3413
+ </ul>
3414
+
3415
+ </div><table class="source_code">
3416
+ <tr>
3417
+ <td>
3418
+ <pre class="lines">
3419
+
3420
+
3421
+ 72
3422
+ 73
3423
+ 74
3424
+ 75
3425
+ 76</pre>
3426
+ </td>
3427
+ <td>
3428
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 72</span>
3429
+
3430
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_der'>to_der</span>
3431
+ <span class='kw'>if</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>Certificate</span><span class='rparen'>)</span>
3432
+ <span class='kw'>return</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span>
3433
+ <span class='kw'>end</span>
3434
+ <span class='kw'>end</span></pre>
3435
+ </td>
3436
+ </tr>
3437
+ </table>
3438
+ </div>
3439
+
3440
+ <div class="method_details ">
3441
+ <h3 class="signature " id="to_pem-instance_method">
3442
+
3443
+ - (<tt>String</tt>) <strong>to_pem</strong>
3444
+
3445
+
3446
+
3447
+ <span class="aliases">Also known as:
3448
+ <span class="names"><span id='to_s-instance_method'>to_s</span></span>
3449
+ </span>
3450
+
3451
+
3452
+
3453
+ </h3><div class="docstring">
3454
+ <div class="discussion">
3455
+
3456
+ <p>Converts the Cert into the PEM format</p>
3457
+
3458
+
3459
+ </div>
3460
+ </div>
3461
+ <div class="tags">
3462
+
3463
+ <p class="tag_title">Returns:</p>
3464
+ <ul class="return">
3465
+
3466
+ <li>
3467
+
3468
+
3469
+ <span class='type'>(<tt>String</tt>)</span>
3470
+
3471
+
3472
+
3473
+ &mdash;
3474
+ <div class='inline'>
3475
+ <p>the Cert converted into PEM format.</p>
3476
+ </div>
3477
+
3478
+ </li>
3479
+
3480
+ </ul>
3481
+
3482
+ </div><table class="source_code">
3483
+ <tr>
3484
+ <td>
3485
+ <pre class="lines">
3486
+
3487
+
3488
+ 61
3489
+ 62
3490
+ 63
3491
+ 64
3492
+ 65</pre>
3493
+ </td>
3494
+ <td>
3495
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 61</span>
3496
+
3497
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_pem'>to_pem</span>
3498
+ <span class='kw'>if</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>Certificate</span><span class='rparen'>)</span>
3499
+ <span class='kw'>return</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span><span class='period'>.</span><span class='id identifier rubyid_chomp'>chomp</span>
3500
+ <span class='kw'>end</span>
3501
+ <span class='kw'>end</span></pre>
3502
+ </td>
3503
+ </tr>
3504
+ </table>
3505
+ </div>
3506
+
3507
+ <div class="method_details ">
3508
+ <h3 class="signature " id="unknown_extensions-instance_method">
3509
+
3510
+ - (<tt>Array</tt>) <strong>unknown_extensions</strong>
3511
+
3512
+
3513
+
3514
+
3515
+
3516
+ </h3><div class="docstring">
3517
+ <div class="discussion">
3518
+
3519
+ <p>Returns an array of OpenSSL::X509::Extension objects representing the
3520
+ extensions that do not have R509 implementations.</p>
3521
+
3522
+
3523
+ </div>
3524
+ </div>
3525
+ <div class="tags">
3526
+
3527
+ <p class="tag_title">Returns:</p>
3528
+ <ul class="return">
3529
+
3530
+ <li>
3531
+
3532
+
3533
+ <span class='type'>(<tt>Array</tt>)</span>
3534
+
3535
+
3536
+
3537
+ &mdash;
3538
+ <div class='inline'>
3539
+ <p>An array of OpenSSL::X509::Extension objects.</p>
3540
+ </div>
3541
+
3542
+ </li>
3543
+
3544
+ </ul>
3545
+
3546
+ </div><table class="source_code">
3547
+ <tr>
3548
+ <td>
3549
+ <pre class="lines">
3550
+
3551
+
3552
+ 325
3553
+ 326
3554
+ 327</pre>
3555
+ </td>
3556
+ <td>
3557
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 325</span>
3558
+
3559
+ <span class='kw'>def</span> <span class='id identifier rubyid_unknown_extensions'>unknown_extensions</span>
3560
+ <span class='kw'>return</span> <span class='const'>Extensions</span><span class='period'>.</span><span class='id identifier rubyid_get_unknown_extensions'>get_unknown_extensions</span><span class='lparen'>(</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cert'>cert</span><span class='period'>.</span><span class='id identifier rubyid_extensions'>extensions</span> <span class='rparen'>)</span>
3561
+ <span class='kw'>end</span></pre>
3562
+ </td>
3563
+ </tr>
3564
+ </table>
3565
+ </div>
3566
+
3567
+ <div class="method_details ">
3568
+ <h3 class="signature " id="valid?-instance_method">
3569
+
3570
+ - (<tt>Boolean</tt>) <strong>valid?</strong>
3571
+
3572
+
3573
+
3574
+
3575
+
3576
+ </h3><div class="docstring">
3577
+ <div class="discussion">
3578
+
3579
+ <p>Returns whether the current time is between the notBefore and notAfter
3580
+ times in the certificate.</p>
3581
+
3582
+
3583
+ </div>
3584
+ </div>
3585
+ <div class="tags">
3586
+
3587
+ <p class="tag_title">Returns:</p>
3588
+ <ul class="return">
3589
+
3590
+ <li>
3591
+
3592
+
3593
+ <span class='type'>(<tt>Boolean</tt>)</span>
3594
+
3595
+
3596
+
3597
+ </li>
3598
+
3599
+ </ul>
3600
+
3601
+ </div><table class="source_code">
3602
+ <tr>
3603
+ <td>
3604
+ <pre class="lines">
3605
+
3606
+
3607
+ 140
3608
+ 141
3609
+ 142</pre>
3610
+ </td>
3611
+ <td>
3612
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 140</span>
3613
+
3614
+ <span class='kw'>def</span> <span class='id identifier rubyid_valid?'>valid?</span>
3615
+ <span class='id identifier rubyid_valid_at?'>valid_at?</span><span class='lparen'>(</span><span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='rparen'>)</span>
3616
+ <span class='kw'>end</span></pre>
3617
+ </td>
3618
+ </tr>
3619
+ </table>
3620
+ </div>
3621
+
3622
+ <div class="method_details ">
3623
+ <h3 class="signature " id="valid_at?-instance_method">
3624
+
3625
+ - (<tt>Boolean</tt>) <strong>valid_at?</strong>(time)
3626
+
3627
+
3628
+
3629
+
3630
+
3631
+ </h3><div class="docstring">
3632
+ <div class="discussion">
3633
+
3634
+ <p>Returns whether the certificate was between its notBefore and notAfter at
3635
+ the time provided</p>
3636
+
3637
+
3638
+ </div>
3639
+ </div>
3640
+ <div class="tags">
3641
+ <p class="tag_title">Parameters:</p>
3642
+ <ul class="param">
3643
+
3644
+ <li>
3645
+
3646
+ <span class='name'>time</span>
3647
+
3648
+
3649
+ <span class='type'>(<tt>Time</tt>, <tt>Integer</tt>)</span>
3650
+
3651
+
3652
+
3653
+ &mdash;
3654
+ <div class='inline'>
3655
+ <p>Time object or integer timestamp</p>
3656
+ </div>
3657
+
3658
+ </li>
3659
+
3660
+ </ul>
3661
+
3662
+ <p class="tag_title">Returns:</p>
3663
+ <ul class="return">
3664
+
3665
+ <li>
3666
+
3667
+
3668
+ <span class='type'>(<tt>Boolean</tt>)</span>
3669
+
3670
+
3671
+
3672
+ </li>
3673
+
3674
+ </ul>
3675
+
3676
+ </div><table class="source_code">
3677
+ <tr>
3678
+ <td>
3679
+ <pre class="lines">
3680
+
3681
+
3682
+ 148
3683
+ 149
3684
+ 150
3685
+ 151
3686
+ 152
3687
+ 153
3688
+ 154
3689
+ 155
3690
+ 156
3691
+ 157
3692
+ 158</pre>
3693
+ </td>
3694
+ <td>
3695
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 148</span>
3696
+
3697
+ <span class='kw'>def</span> <span class='id identifier rubyid_valid_at?'>valid_at?</span><span class='lparen'>(</span><span class='id identifier rubyid_time'>time</span><span class='rparen'>)</span>
3698
+ <span class='kw'>if</span> <span class='id identifier rubyid_time'>time</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>Integer</span><span class='rparen'>)</span>
3699
+ <span class='id identifier rubyid_time'>time</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_time'>time</span><span class='rparen'>)</span>
3700
+ <span class='kw'>end</span>
3701
+
3702
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_not_after'>not_after</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_time'>time</span><span class='rparen'>)</span> <span class='kw'>or</span> <span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_not_before'>not_before</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_time'>time</span><span class='rparen'>)</span>
3703
+ <span class='kw'>false</span>
3704
+ <span class='kw'>else</span>
3705
+ <span class='kw'>true</span>
3706
+ <span class='kw'>end</span>
3707
+ <span class='kw'>end</span></pre>
3708
+ </td>
3709
+ </tr>
3710
+ </table>
3711
+ </div>
3712
+
3713
+ <div class="method_details ">
3714
+ <h3 class="signature " id="write_der-instance_method">
3715
+
3716
+ - (<tt>Object</tt>) <strong>write_der</strong>(filename_or_io)
3717
+
3718
+
3719
+
3720
+
3721
+
3722
+ </h3><div class="docstring">
3723
+ <div class="discussion">
3724
+
3725
+ <p>Writes the Cert into the DER format</p>
3726
+
3727
+
3728
+ </div>
3729
+ </div>
3730
+ <div class="tags">
3731
+ <p class="tag_title">Parameters:</p>
3732
+ <ul class="param">
3733
+
3734
+ <li>
3735
+
3736
+ <span class='name'>filename_or_io</span>
3737
+
3738
+
3739
+ <span class='type'>(<tt>String</tt>, <tt>#write</tt>)</span>
3740
+
3741
+
3742
+
3743
+ &mdash;
3744
+ <div class='inline'>
3745
+ <p>Either a string of the path for the file that you'd like to write, or an
3746
+ IO-like object.</p>
3747
+ </div>
3748
+
3749
+ </li>
3750
+
3751
+ </ul>
3752
+
3753
+
3754
+ </div><table class="source_code">
3755
+ <tr>
3756
+ <td>
3757
+ <pre class="lines">
3758
+
3759
+
3760
+ 266
3761
+ 267
3762
+ 268</pre>
3763
+ </td>
3764
+ <td>
3765
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 266</span>
3766
+
3767
+ <span class='kw'>def</span> <span class='id identifier rubyid_write_der'>write_der</span><span class='lparen'>(</span><span class='id identifier rubyid_filename_or_io'>filename_or_io</span><span class='rparen'>)</span>
3768
+ <span class='id identifier rubyid_write_data'>write_data</span><span class='lparen'>(</span><span class='id identifier rubyid_filename_or_io'>filename_or_io</span><span class='comma'>,</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span><span class='rparen'>)</span>
3769
+ <span class='kw'>end</span></pre>
3770
+ </td>
3771
+ </tr>
3772
+ </table>
3773
+ </div>
3774
+
3775
+ <div class="method_details ">
3776
+ <h3 class="signature " id="write_pem-instance_method">
3777
+
3778
+ - (<tt>Object</tt>) <strong>write_pem</strong>(filename_or_io)
3779
+
3780
+
3781
+
3782
+
3783
+
3784
+ </h3><div class="docstring">
3785
+ <div class="discussion">
3786
+
3787
+ <p>Writes the Cert into the PEM format</p>
3788
+
3789
+
3790
+ </div>
3791
+ </div>
3792
+ <div class="tags">
3793
+ <p class="tag_title">Parameters:</p>
3794
+ <ul class="param">
3795
+
3796
+ <li>
3797
+
3798
+ <span class='name'>filename_or_io</span>
3799
+
3800
+
3801
+ <span class='type'>(<tt>String</tt>, <tt>#write</tt>)</span>
3802
+
3803
+
3804
+
3805
+ &mdash;
3806
+ <div class='inline'>
3807
+ <p>Either a string of the path for the file that you'd like to write, or an
3808
+ IO-like object.</p>
3809
+ </div>
3810
+
3811
+ </li>
3812
+
3813
+ </ul>
3814
+
3815
+
3816
+ </div><table class="source_code">
3817
+ <tr>
3818
+ <td>
3819
+ <pre class="lines">
3820
+
3821
+
3822
+ 259
3823
+ 260
3824
+ 261</pre>
3825
+ </td>
3826
+ <td>
3827
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 259</span>
3828
+
3829
+ <span class='kw'>def</span> <span class='id identifier rubyid_write_pem'>write_pem</span><span class='lparen'>(</span><span class='id identifier rubyid_filename_or_io'>filename_or_io</span><span class='rparen'>)</span>
3830
+ <span class='id identifier rubyid_write_data'>write_data</span><span class='lparen'>(</span><span class='id identifier rubyid_filename_or_io'>filename_or_io</span><span class='comma'>,</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span><span class='rparen'>)</span>
3831
+ <span class='kw'>end</span></pre>
3832
+ </td>
3833
+ </tr>
3834
+ </table>
3835
+ </div>
3836
+
3837
+ <div class="method_details ">
3838
+ <h3 class="signature " id="write_pkcs12-instance_method">
3839
+
3840
+ - (<tt>Object</tt>) <strong>write_pkcs12</strong>(filename_or_io, password, friendly_name = 'r509 pkcs12')
3841
+
3842
+
3843
+
3844
+
3845
+
3846
+ </h3><div class="docstring">
3847
+ <div class="discussion">
3848
+
3849
+ <p>Writes cert and key into PKCS12 format using OpenSSL defaults for
3850
+ encryption (des3)</p>
3851
+
3852
+
3853
+ </div>
3854
+ </div>
3855
+ <div class="tags">
3856
+ <p class="tag_title">Parameters:</p>
3857
+ <ul class="param">
3858
+
3859
+ <li>
3860
+
3861
+ <span class='name'>filename_or_io</span>
3862
+
3863
+
3864
+ <span class='type'>(<tt>String</tt>, <tt>#write</tt>)</span>
3865
+
3866
+
3867
+
3868
+ &mdash;
3869
+ <div class='inline'>
3870
+ <p>Either a string of the path for the file that you'd like to write, or an
3871
+ IO-like object.</p>
3872
+ </div>
3873
+
3874
+ </li>
3875
+
3876
+ <li>
3877
+
3878
+ <span class='name'>password</span>
3879
+
3880
+
3881
+ <span class='type'>(<tt>String</tt>)</span>
3882
+
3883
+
3884
+
3885
+ &mdash;
3886
+ <div class='inline'>
3887
+ <p>password</p>
3888
+ </div>
3889
+
3890
+ </li>
3891
+
3892
+ <li>
3893
+
3894
+ <span class='name'>friendly_name</span>
3895
+
3896
+
3897
+ <span class='type'>(<tt>String</tt>)</span>
3898
+
3899
+
3900
+ <em class="default">(defaults to: <tt>'r509 pkcs12'</tt>)</em>
3901
+
3902
+
3903
+ &mdash;
3904
+ <div class='inline'>
3905
+ <p>An optional string to encode in the PKCS12 for friendlyName. defaults to
3906
+ "r509 pkcs12"</p>
3907
+ </div>
3908
+
3909
+ </li>
3910
+
3911
+ </ul>
3912
+
3913
+
3914
+ </div><table class="source_code">
3915
+ <tr>
3916
+ <td>
3917
+ <pre class="lines">
3918
+
3919
+
3920
+ 275
3921
+ 276
3922
+ 277
3923
+ 278
3924
+ 279
3925
+ 280
3926
+ 281</pre>
3927
+ </td>
3928
+ <td>
3929
+ <pre class="code"><span class="info file"># File 'lib/r509/cert.rb', line 275</span>
3930
+
3931
+ <span class='kw'>def</span> <span class='id identifier rubyid_write_pkcs12'>write_pkcs12</span><span class='lparen'>(</span><span class='id identifier rubyid_filename_or_io'>filename_or_io</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='comma'>,</span><span class='id identifier rubyid_friendly_name'>friendly_name</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>r509 pkcs12</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
3932
+ <span class='kw'>if</span> <span class='ivar'>@key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
3933
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>R509Error</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Writing a PKCS12 requires both key and cert</span><span class='tstring_end'>&quot;</span></span>
3934
+ <span class='kw'>end</span>
3935
+ <span class='id identifier rubyid_pkcs12'>pkcs12</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKCS12</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_password'>password</span><span class='comma'>,</span><span class='id identifier rubyid_friendly_name'>friendly_name</span><span class='comma'>,</span><span class='ivar'>@key</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span><span class='ivar'>@cert</span><span class='rparen'>)</span>
3936
+ <span class='id identifier rubyid_write_data'>write_data</span><span class='lparen'>(</span><span class='id identifier rubyid_filename_or_io'>filename_or_io</span><span class='comma'>,</span> <span class='id identifier rubyid_pkcs12'>pkcs12</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span><span class='rparen'>)</span>
3937
+ <span class='kw'>end</span></pre>
3938
+ </td>
3939
+ </tr>
3940
+ </table>
3941
+ </div>
3942
+
3943
+ </div>
3944
+
3945
+ </div>
3946
+
3947
+ <div id="footer">
3948
+ Generated on Tue Oct 23 22:48:02 2012 by
3949
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
3950
+ 0.8.0 (ruby-1.9.3).
3951
+ </div>
3952
+
3953
+ </body>
3954
+ </html>