r509 0.8.1 → 0.9

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 (203) hide show
  1. data/README.md +343 -151
  2. data/Rakefile +26 -23
  3. data/bin/r509 +126 -112
  4. data/bin/r509-parse +24 -24
  5. data/doc/R509.html +169 -7
  6. data/doc/R509/ASN1.html +370 -0
  7. data/doc/R509/ASN1/GeneralName.html +1121 -0
  8. data/doc/R509/ASN1/GeneralNames.html +843 -0
  9. data/doc/R509/ASN1/NoticeReference.html +392 -0
  10. data/doc/R509/ASN1/PolicyInformation.html +387 -0
  11. data/doc/R509/ASN1/PolicyQualifiers.html +455 -0
  12. data/doc/R509/ASN1/UserNotice.html +386 -0
  13. data/doc/R509/{Crl.html → CRL.html} +7 -7
  14. data/doc/R509/CRL/Administrator.html +1559 -0
  15. data/doc/R509/{Crl/Parser.html → CRL/SignedList.html} +501 -210
  16. data/doc/R509/{Csr.html → CSR.html} +444 -314
  17. data/doc/R509/Cert.html +866 -617
  18. data/doc/R509/Cert/Extensions.html +52 -41
  19. data/doc/R509/Cert/Extensions/AuthorityInfoAccess.html +70 -35
  20. data/doc/R509/Cert/Extensions/AuthorityKeyIdentifier.html +387 -4
  21. data/doc/R509/Cert/Extensions/BasicConstraints.html +61 -25
  22. data/doc/R509/Cert/Extensions/CRLDistributionPoints.html +354 -0
  23. data/doc/R509/Cert/Extensions/CertificatePolicies.html +340 -0
  24. data/doc/R509/Cert/Extensions/ExtendedKeyUsage.html +440 -49
  25. data/doc/R509/Cert/Extensions/{CrlDistributionPoints.html → InhibitAnyPolicy.html} +52 -35
  26. data/doc/R509/Cert/Extensions/KeyUsage.html +247 -121
  27. data/doc/R509/Cert/Extensions/NameConstraints.html +445 -0
  28. data/doc/R509/Cert/Extensions/OCSPNoCheck.html +239 -0
  29. data/doc/R509/Cert/Extensions/PolicyConstraints.html +424 -0
  30. data/doc/R509/Cert/Extensions/SubjectAlternativeName.html +437 -62
  31. data/doc/R509/Cert/Extensions/SubjectKeyIdentifier.html +52 -10
  32. data/doc/R509/CertificateAuthority.html +4 -4
  33. data/doc/R509/CertificateAuthority/Signer.html +154 -187
  34. data/doc/R509/Config.html +6 -6
  35. data/doc/R509/Config/{CaConfig.html → CAConfig.html} +451 -348
  36. data/doc/R509/Config/{CaConfigPool.html → CAConfigPool.html} +47 -47
  37. data/doc/R509/Config/CAProfile.html +1015 -0
  38. data/doc/R509/Config/SubjectItemPolicy.html +86 -86
  39. data/doc/R509/IOHelpers.html +22 -22
  40. data/doc/R509/MessageDigest.html +14 -14
  41. data/doc/R509/NameSanitizer.html +53 -53
  42. data/doc/R509/{Ocsp.html → OCSP.html} +9 -9
  43. data/doc/R509/{Ocsp → OCSP}/Request.html +7 -7
  44. data/doc/R509/{Ocsp → OCSP}/Request/Nonce.html +56 -11
  45. data/doc/R509/{Ocsp → OCSP}/Response.html +44 -44
  46. data/doc/R509/{OidMapper.html → OIDMapper.html} +23 -39
  47. data/doc/R509/PrivateKey.html +415 -168
  48. data/doc/R509/R509Error.html +3 -3
  49. data/doc/R509/{Spki.html → SPKI.html} +354 -192
  50. data/doc/R509/Subject.html +224 -113
  51. data/doc/R509/Validity.html +27 -5
  52. data/doc/R509/Validity/Checker.html +13 -13
  53. data/doc/R509/Validity/DefaultChecker.html +13 -13
  54. data/doc/R509/Validity/DefaultWriter.html +14 -14
  55. data/doc/R509/Validity/Status.html +39 -39
  56. data/doc/R509/Validity/Writer.html +18 -18
  57. data/doc/_index.html +138 -35
  58. data/doc/class_list.html +1 -1
  59. data/doc/css/style.css +10 -0
  60. data/doc/file.README.html +368 -171
  61. data/doc/file.r509.html +92 -69
  62. data/doc/frames.html +1 -1
  63. data/doc/index.html +368 -171
  64. data/doc/method_list.html +910 -390
  65. data/doc/top-level-namespace.html +3 -3
  66. data/lib/r509.rb +32 -16
  67. data/lib/r509/asn1.rb +375 -0
  68. data/lib/r509/cert.rb +381 -364
  69. data/lib/r509/cert/extensions.rb +443 -76
  70. data/lib/r509/certificate_authority.rb +407 -0
  71. data/lib/r509/config.rb +547 -351
  72. data/lib/r509/crl.rb +336 -366
  73. data/lib/r509/csr.rb +278 -289
  74. data/lib/r509/ec-hack.rb +37 -0
  75. data/lib/r509/exceptions.rb +3 -3
  76. data/lib/r509/io_helpers.rb +44 -44
  77. data/lib/r509/message_digest.rb +53 -0
  78. data/lib/r509/ocsp.rb +80 -70
  79. data/lib/r509/oid_mapper.rb +32 -0
  80. data/lib/r509/private_key.rb +228 -0
  81. data/lib/r509/spki.rb +145 -93
  82. data/lib/r509/subject.rb +203 -110
  83. data/lib/r509/validity.rb +70 -68
  84. data/lib/r509/version.rb +2 -2
  85. data/r509.yaml +92 -69
  86. data/spec/asn1_spec.rb +402 -0
  87. data/spec/cert/extensions_spec.rb +957 -494
  88. data/spec/cert_spec.rb +382 -307
  89. data/spec/certificate_authority_spec.rb +668 -250
  90. data/spec/config_spec.rb +515 -302
  91. data/spec/crl_spec.rb +197 -198
  92. data/spec/csr_spec.rb +334 -289
  93. data/spec/fixtures.rb +247 -171
  94. data/spec/fixtures/cert1.der +0 -0
  95. data/spec/fixtures/cert1.pem +0 -0
  96. data/spec/fixtures/cert1_public_key_modulus.txt +0 -0
  97. data/spec/fixtures/cert3.p12 +0 -0
  98. data/spec/fixtures/cert3.pem +0 -0
  99. data/spec/fixtures/cert3_key.pem +0 -0
  100. data/spec/fixtures/cert3_key_des3.pem +0 -0
  101. data/spec/fixtures/cert4.pem +0 -0
  102. data/spec/fixtures/cert5.pem +0 -0
  103. data/spec/fixtures/cert6.pem +0 -0
  104. data/spec/fixtures/cert_expired.pem +0 -0
  105. data/spec/fixtures/cert_inhibit.pem +24 -0
  106. data/spec/fixtures/cert_name_constraints.pem +29 -0
  107. data/spec/fixtures/cert_not_yet_valid.pem +0 -0
  108. data/spec/fixtures/cert_ocsp_no_check.pem +18 -0
  109. data/spec/fixtures/cert_policy_constraints.pem +31 -0
  110. data/spec/fixtures/cert_san.pem +0 -0
  111. data/spec/fixtures/cert_san2.pem +0 -0
  112. data/spec/fixtures/cert_unknown_extension.pem +28 -0
  113. data/spec/fixtures/config_pool_test_minimal.yaml +11 -11
  114. data/spec/fixtures/config_test.yaml +54 -36
  115. data/spec/fixtures/config_test_dsa.yaml +35 -0
  116. data/spec/fixtures/config_test_ec.yaml +35 -0
  117. data/spec/fixtures/config_test_engine_key.yaml +5 -5
  118. data/spec/fixtures/config_test_engine_no_key_name.yaml +4 -4
  119. data/spec/fixtures/config_test_minimal.yaml +4 -4
  120. data/spec/fixtures/config_test_password.yaml +5 -5
  121. data/spec/fixtures/config_test_various.yaml +111 -74
  122. data/spec/fixtures/crl_list_file.txt +0 -0
  123. data/spec/fixtures/crl_with_reason.pem +0 -0
  124. data/spec/fixtures/csr1.der +0 -0
  125. data/spec/fixtures/csr1.pem +0 -0
  126. data/spec/fixtures/csr1_key.der +0 -0
  127. data/spec/fixtures/csr1_key.pem +0 -0
  128. data/spec/fixtures/csr1_key_encrypted_des3.pem +0 -0
  129. data/spec/fixtures/csr1_newlines.pem +0 -0
  130. data/spec/fixtures/csr1_no_begin_end.pem +0 -0
  131. data/spec/fixtures/csr1_public_key_modulus.txt +0 -0
  132. data/spec/fixtures/csr2.pem +0 -0
  133. data/spec/fixtures/csr2_key.pem +0 -0
  134. data/spec/fixtures/csr3.pem +0 -0
  135. data/spec/fixtures/csr4.pem +0 -0
  136. data/spec/fixtures/csr_dsa.pem +0 -0
  137. data/spec/fixtures/csr_invalid_signature.pem +0 -0
  138. data/spec/fixtures/dsa_key.pem +0 -0
  139. data/spec/fixtures/dsa_root.cer +28 -0
  140. data/spec/fixtures/dsa_root.key +20 -0
  141. data/spec/fixtures/ec_csr2.der +0 -0
  142. data/spec/fixtures/ec_csr2.pem +8 -0
  143. data/spec/fixtures/ec_key1.der +0 -0
  144. data/spec/fixtures/ec_key1.pem +6 -0
  145. data/spec/fixtures/ec_key1_encrypted.pem +9 -0
  146. data/spec/fixtures/ec_key2.pem +6 -0
  147. data/spec/fixtures/hmacsha1.sig +1 -0
  148. data/spec/fixtures/hmacsha512.sig +1 -0
  149. data/spec/fixtures/key4.pem +0 -0
  150. data/spec/fixtures/key4_encrypted_des3.pem +0 -0
  151. data/spec/fixtures/missing_key_identifier_ca.cer +0 -0
  152. data/spec/fixtures/missing_key_identifier_ca.key +0 -0
  153. data/spec/fixtures/ocsptest.r509.local.pem +0 -0
  154. data/spec/fixtures/ocsptest.r509.local_ocsp_request.der +0 -0
  155. data/spec/fixtures/ocsptest2.r509.local.pem +0 -0
  156. data/spec/fixtures/second_ca.cer +0 -0
  157. data/spec/fixtures/second_ca.key +0 -0
  158. data/spec/fixtures/spkac.der +0 -0
  159. data/spec/fixtures/spkac.txt +0 -0
  160. data/spec/fixtures/spkac_dsa.txt +1 -1
  161. data/spec/fixtures/spkac_dsa_no_verify.txt +1 -0
  162. data/spec/fixtures/spkac_ec.txt +1 -0
  163. data/spec/fixtures/spkac_rsa_newlines.txt +13 -0
  164. data/spec/fixtures/stca.pem +0 -0
  165. data/spec/fixtures/stca_ocsp_request.der +0 -0
  166. data/spec/fixtures/stca_ocsp_response.der +0 -0
  167. data/spec/fixtures/test1.csr +0 -0
  168. data/spec/fixtures/test_ca.cer +0 -0
  169. data/spec/fixtures/test_ca.key +0 -0
  170. data/spec/fixtures/test_ca.p12 +0 -0
  171. data/spec/fixtures/test_ca_des3.key +0 -0
  172. data/spec/fixtures/test_ca_ec.cer +14 -0
  173. data/spec/fixtures/test_ca_ec.key +6 -0
  174. data/spec/fixtures/test_ca_ec_ee.cer +22 -0
  175. data/spec/fixtures/test_ca_ec_ee.key +6 -0
  176. data/spec/fixtures/test_ca_ocsp.cer +0 -0
  177. data/spec/fixtures/test_ca_ocsp.key +0 -0
  178. data/spec/fixtures/test_ca_ocsp.p12 +0 -0
  179. data/spec/fixtures/test_ca_ocsp_chain.txt +0 -0
  180. data/spec/fixtures/test_ca_ocsp_response.der +0 -0
  181. data/spec/fixtures/test_ca_subroot.cer +0 -0
  182. data/spec/fixtures/test_ca_subroot.key +0 -0
  183. data/spec/fixtures/test_ca_subroot_ocsp.cer +0 -0
  184. data/spec/fixtures/test_ca_subroot_ocsp.key +0 -0
  185. data/spec/fixtures/test_ca_subroot_ocsp_response.der +0 -0
  186. data/spec/fixtures/unknown_oid.csr +0 -0
  187. data/spec/message_digest_spec.rb +104 -84
  188. data/spec/ocsp_spec.rb +105 -105
  189. data/spec/oid_mapper_spec.rb +21 -21
  190. data/spec/private_key_spec.rb +275 -0
  191. data/spec/r509_spec.rb +35 -0
  192. data/spec/spec_helper.rb +15 -6
  193. data/spec/spki_spec.rb +221 -142
  194. data/spec/subject_spec.rb +232 -164
  195. data/spec/validity_spec.rb +91 -91
  196. metadata +79 -25
  197. data/doc/R509/Config/CaProfile.html +0 -651
  198. data/doc/R509/Crl/Administrator.html +0 -2073
  199. data/lib/r509/certificateauthority.rb +0 -290
  200. data/lib/r509/messagedigest.rb +0 -49
  201. data/lib/r509/oidmapper.rb +0 -32
  202. data/lib/r509/privatekey.rb +0 -185
  203. data/spec/privatekey_spec.rb +0 -198
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: R509::PrivateKey
8
8
 
9
- &mdash; Documentation by YARD 0.8.2.1
9
+ &mdash; Documentation by YARD 0.8.5
10
10
 
11
11
  </title>
12
12
 
@@ -98,7 +98,7 @@
98
98
 
99
99
 
100
100
  <dt class="r1 last">Defined in:</dt>
101
- <dd class="r1 last">lib/r509/privatekey.rb</dd>
101
+ <dd class="r1 last">lib/r509/private_key.rb</dd>
102
102
 
103
103
  </dl>
104
104
  <div class="clear"></div>
@@ -179,7 +179,34 @@
179
179
 
180
180
 
181
181
 
182
- <span class="summary_desc"><div class='inline'></div></span>
182
+ <span class="summary_desc"><div class='inline'>
183
+ <p>Returns the bit strength of the key.</p>
184
+ </div></span>
185
+
186
+ </li>
187
+
188
+
189
+ <li class="public ">
190
+ <span class="summary_signature">
191
+
192
+ <a href="#curve_name-instance_method" title="#curve_name (instance method)">- (String) <strong>curve_name</strong> </a>
193
+
194
+
195
+
196
+ </span>
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+ <span class="summary_desc"><div class='inline'>
207
+ <p>Returns the short name of the elliptic curve used to generate the private
208
+ key if the key is EC.</p>
209
+ </div></span>
183
210
 
184
211
  </li>
185
212
 
@@ -202,7 +229,31 @@
202
229
 
203
230
 
204
231
  <span class="summary_desc"><div class='inline'>
205
- <p>Returns whether the public key is DSA.</p>
232
+ <p>Returns whether the key is DSA.</p>
233
+ </div></span>
234
+
235
+ </li>
236
+
237
+
238
+ <li class="public ">
239
+ <span class="summary_signature">
240
+
241
+ <a href="#ec%3F-instance_method" title="#ec? (instance method)">- (Boolean) <strong>ec?</strong> </a>
242
+
243
+
244
+
245
+ </span>
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+ <span class="summary_desc"><div class='inline'>
256
+ <p>Returns whether the key is EC.</p>
206
257
  </div></span>
207
258
 
208
259
  </li>
@@ -235,7 +286,7 @@
235
286
  <li class="public ">
236
287
  <span class="summary_signature">
237
288
 
238
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (PrivateKey) <strong>initialize</strong>(opts) </a>
289
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (PrivateKey) <strong>initialize</strong>(opts = {}) </a>
239
290
 
240
291
 
241
292
 
@@ -286,7 +337,7 @@ key in the HSM (which will not show the private key, just public).</p>
286
337
  <li class="public ">
287
338
  <span class="summary_signature">
288
339
 
289
- <a href="#public_key-instance_method" title="#public_key (instance method)">- (OpenSSL::PKey::RSA, OpenSSL::PKey::DSA) <strong>public_key</strong> </a>
340
+ <a href="#public_key-instance_method" title="#public_key (instance method)">- (OpenSSL::PKey::RSA, ...) <strong>public_key</strong> </a>
290
341
 
291
342
 
292
343
 
@@ -327,7 +378,7 @@ key in the HSM (which will not show the private key, just public).</p>
327
378
 
328
379
 
329
380
  <span class="summary_desc"><div class='inline'>
330
- <p>Returns whether the public key is RSA.</p>
381
+ <p>Returns whether the key is RSA.</p>
331
382
  </div></span>
332
383
 
333
384
  </li>
@@ -497,7 +548,7 @@ key in the HSM (which will not show the private key, just public).</p>
497
548
  <div class="method_details first">
498
549
  <h3 class="signature first" id="initialize-instance_method">
499
550
 
500
- - (<tt><span class='object_link'><a href="" title="R509::PrivateKey (class)">PrivateKey</a></span></tt>) <strong>initialize</strong>(opts)
551
+ - (<tt><span class='object_link'><a href="" title="R509::PrivateKey (class)">PrivateKey</a></span></tt>) <strong>initialize</strong>(opts = {})
501
552
 
502
553
 
503
554
 
@@ -523,6 +574,8 @@ key in the HSM (which will not show the private key, just public).</p>
523
574
  <span class='type'>(<tt>Hash</tt>)</span>
524
575
 
525
576
 
577
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
578
+
526
579
 
527
580
  &mdash;
528
581
  <div class='inline'>
@@ -547,7 +600,23 @@ key in the HSM (which will not show the private key, just public).</p>
547
600
  </span>
548
601
 
549
602
  &mdash; <div class='inline'>
550
- <p>:rsa/:dsa</p>
603
+ <p>:rsa/:dsa/:ec</p>
604
+ </div>
605
+
606
+ </li>
607
+
608
+ <li>
609
+ <span class="name">:curve_name</span>
610
+ <span class="type">(<tt>String</tt>)</span>
611
+ <span class="default">
612
+
613
+ &mdash; default:
614
+ <tt>&quot;secp384r1&quot;</tt>
615
+
616
+ </span>
617
+
618
+ &mdash; <div class='inline'>
619
+ <p>Only used if :type is :ec</p>
551
620
  </div>
552
621
 
553
622
  </li>
@@ -557,8 +626,15 @@ key in the HSM (which will not show the private key, just public).</p>
557
626
  <span class="type">(<tt>Integer</tt>)</span>
558
627
  <span class="default">
559
628
 
629
+ &mdash; default:
630
+ <tt>2048</tt>
631
+
560
632
  </span>
561
633
 
634
+ &mdash; <div class='inline'>
635
+ <p>Only used if :type is :rsa or :dsa.</p>
636
+ </div>
637
+
562
638
  </li>
563
639
 
564
640
  <li>
@@ -572,7 +648,7 @@ key in the HSM (which will not show the private key, just public).</p>
572
648
 
573
649
  <li>
574
650
  <span class="name">:key</span>
575
- <span class="type">(<tt>String</tt>, <tt>OpenSSL::PKey::RSA</tt>, <tt>OpenSSL::PKey::DSA</tt>)</span>
651
+ <span class="type">(<tt>String</tt>, <tt>OpenSSL::PKey::RSA</tt>, <tt>OpenSSL::PKey::DSA</tt>, <tt><span class='object_link'>OpenSSL::PKey::EC</span></tt>)</span>
576
652
  <span class="default">
577
653
 
578
654
  </span>
@@ -610,7 +686,6 @@ key in the HSM (which will not show the private key, just public).</p>
610
686
  <pre class="lines">
611
687
 
612
688
 
613
- 16
614
689
  17
615
690
  18
616
691
  19
@@ -654,55 +729,72 @@ key in the HSM (which will not show the private key, just public).</p>
654
729
  57
655
730
  58
656
731
  59
657
- 60</pre>
732
+ 60
733
+ 61
734
+ 62
735
+ 63
736
+ 64
737
+ 65
738
+ 66
739
+ 67
740
+ 68
741
+ 69</pre>
658
742
  </td>
659
743
  <td>
660
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 16</span>
661
-
662
- <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='rparen'>)</span>
663
- <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>
664
- <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>
744
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 17</span>
745
+
746
+ <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>
747
+ <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>
748
+ <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>
749
+ <span class='kw'>end</span>
750
+
751
+ <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'>:engine</span><span class='rparen'>)</span> <span class='kw'>and</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>
752
+ <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'>You can\'t pass both :key and :engine</span><span class='tstring_end'>'</span></span>
753
+ <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'>:key_name</span><span class='rparen'>)</span> <span class='kw'>and</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'>:engine</span><span class='rparen'>)</span>
754
+ <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'>When providing a :key_name you MUST provide an :engine</span><span class='tstring_end'>'</span></span>
755
+ <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'>:engine</span><span class='rparen'>)</span> <span class='kw'>and</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'>:key_name</span><span class='rparen'>)</span>
756
+ <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'>When providing an :engine you MUST provide a :key_name</span><span class='tstring_end'>'</span></span>
757
+ <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'>:engine</span><span class='rparen'>)</span> <span class='kw'>and</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_name</span><span class='rparen'>)</span>
758
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:engine</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'>OpenSSL</span><span class='op'>::</span><span class='const'>Engine</span><span class='rparen'>)</span>
759
+ <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'>When providing an engine, it must be of type OpenSSL::Engine</span><span class='tstring_end'>'</span></span>
665
760
  <span class='kw'>end</span>
666
-
667
- <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'>:engine</span><span class='rparen'>)</span> <span class='kw'>and</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>
668
- <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'>You can\'t pass both :key and :engine</span><span class='tstring_end'>'</span></span>
669
- <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'>:key_name</span><span class='rparen'>)</span> <span class='kw'>and</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'>:engine</span><span class='rparen'>)</span>
670
- <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'>When providing a :key_name you MUST provide an :engine</span><span class='tstring_end'>'</span></span>
671
- <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'>:engine</span><span class='rparen'>)</span> <span class='kw'>and</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'>:key_name</span><span class='rparen'>)</span>
672
- <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'>When providing an :engine you MUST provide a :key_name</span><span class='tstring_end'>'</span></span>
673
- <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'>:engine</span><span class='rparen'>)</span> <span class='kw'>and</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_name</span><span class='rparen'>)</span>
674
- <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:engine</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'>OpenSSL</span><span class='op'>::</span><span class='const'>Engine</span><span class='rparen'>)</span>
675
- <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'>When providing an engine, it must be of type OpenSSL::Engine</span><span class='tstring_end'>'</span></span>
761
+ <span class='ivar'>@engine</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:engine</span><span class='rbracket'>]</span>
762
+ <span class='ivar'>@key_name</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:key_name</span><span class='rbracket'>]</span>
763
+ <span class='kw'>end</span>
764
+
765
+ <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>
766
+ <span class='id identifier rubyid_password'>password</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:password</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='kw'>nil</span>
767
+ <span class='comment'>#OpenSSL::PKey.read solves this begin/rescue garbage but is only
768
+ </span> <span class='comment'>#available to Ruby 1.9.3+ and may not solve the EC portion
769
+ </span> <span class='kw'>begin</span>
770
+ <span class='ivar'>@key</span> <span class='op'>=</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='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'>:key</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
771
+ <span class='kw'>rescue</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>RSAError</span>
772
+ <span class='kw'>begin</span>
773
+ <span class='ivar'>@key</span> <span class='op'>=</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='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'>:key</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
774
+ <span class='kw'>rescue</span>
775
+ <span class='kw'>begin</span>
776
+ <span class='ivar'>@key</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>EC</span><span class='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'>:key</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
777
+ <span class='kw'>rescue</span>
778
+ <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'>Failed to load private key. Invalid key or incorrect password.</span><span class='tstring_end'>&quot;</span></span>
676
779
  <span class='kw'>end</span>
677
- <span class='ivar'>@engine</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:engine</span><span class='rbracket'>]</span>
678
- <span class='ivar'>@key_name</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:key_name</span><span class='rbracket'>]</span>
780
+ <span class='kw'>end</span>
679
781
  <span class='kw'>end</span>
680
-
681
- <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>
682
- <span class='id identifier rubyid_password'>password</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:password</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='kw'>nil</span>
683
- <span class='comment'>#OpenSSL::PKey.read solves this begin/rescue garbage but is only
684
- </span> <span class='comment'>#available to Ruby 1.9.3+
685
- </span> <span class='kw'>begin</span>
686
- <span class='ivar'>@key</span> <span class='op'>=</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='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'>:key</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
687
- <span class='kw'>rescue</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>RSAError</span>
688
- <span class='kw'>begin</span>
689
- <span class='ivar'>@key</span> <span class='op'>=</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='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'>:key</span><span class='rbracket'>]</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
690
- <span class='kw'>rescue</span>
691
- <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'>Failed to load private key. Invalid key or incorrect password.</span><span class='tstring_end'>&quot;</span></span>
692
- <span class='kw'>end</span>
693
- <span class='kw'>end</span>
782
+ <span class='kw'>else</span>
783
+ <span class='id identifier rubyid_bit_strength'>bit_strength</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:bit_strength</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='int'>2048</span>
784
+ <span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='symbol'>:rsa</span>
785
+ <span class='kw'>case</span> <span class='id identifier rubyid_type'>type</span>
786
+ <span class='kw'>when</span> <span class='symbol'>:rsa</span>
787
+ <span class='ivar'>@key</span> <span class='op'>=</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='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_bit_strength'>bit_strength</span><span class='rparen'>)</span>
788
+ <span class='kw'>when</span> <span class='symbol'>:dsa</span>
789
+ <span class='ivar'>@key</span> <span class='op'>=</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='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_bit_strength'>bit_strength</span><span class='rparen'>)</span>
790
+ <span class='kw'>when</span> <span class='symbol'>:ec</span>
791
+ <span class='id identifier rubyid_curve_name'>curve_name</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:curve_name</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>secp384r1</span><span class='tstring_end'>&quot;</span></span>
792
+ <span class='ivar'>@key</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>EC</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_curve_name'>curve_name</span><span class='rparen'>)</span>
793
+ <span class='ivar'>@key</span><span class='period'>.</span><span class='id identifier rubyid_generate_key'>generate_key</span>
694
794
  <span class='kw'>else</span>
695
- <span class='id identifier rubyid_bit_strength'>bit_strength</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:bit_strength</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='int'>2048</span>
696
- <span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='symbol'>:rsa</span>
697
- <span class='kw'>case</span> <span class='id identifier rubyid_type'>type</span>
698
- <span class='kw'>when</span> <span class='symbol'>:rsa</span>
699
- <span class='ivar'>@key</span> <span class='op'>=</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='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_bit_strength'>bit_strength</span><span class='rparen'>)</span>
700
- <span class='kw'>when</span> <span class='symbol'>:dsa</span>
701
- <span class='ivar'>@key</span> <span class='op'>=</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='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_bit_strength'>bit_strength</span><span class='rparen'>)</span>
702
- <span class='kw'>else</span>
703
- <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 :rsa or :dsa as type when key or engine is nil</span><span class='tstring_end'>'</span></span>
704
- <span class='kw'>end</span>
795
+ <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 :rsa, :dsa , or :ec as type when key or engine is nil</span><span class='tstring_end'>'</span></span>
705
796
  <span class='kw'>end</span>
797
+ <span class='kw'>end</span>
706
798
  <span class='kw'>end</span></pre>
707
799
  </td>
708
800
  </tr>
@@ -780,12 +872,12 @@ key in the HSM (which will not show the private key, just public).</p>
780
872
  <pre class="lines">
781
873
 
782
874
 
783
- 66
784
- 67
785
- 68</pre>
875
+ 75
876
+ 76
877
+ 77</pre>
786
878
  </td>
787
879
  <td>
788
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 66</span>
880
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 75</span>
789
881
 
790
882
  <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='comma'>,</span> <span class='id identifier rubyid_password'>password</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='rparen'>)</span>
791
883
  <span class='kw'>return</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='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='comma'>,</span> <span class='symbol'>:password</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_password'>password</span> <span class='rparen'>)</span>
@@ -813,6 +905,8 @@ key in the HSM (which will not show the private key, just public).</p>
813
905
  </h3><div class="docstring">
814
906
  <div class="discussion">
815
907
 
908
+ <p>Returns the bit strength of the key</p>
909
+
816
910
 
817
911
  </div>
818
912
  </div>
@@ -838,23 +932,95 @@ key in the HSM (which will not show the private key, just public).</p>
838
932
  <pre class="lines">
839
933
 
840
934
 
841
- 72
842
- 73
843
- 74
844
- 75
845
- 76
846
- 77
847
- 78</pre>
935
+ 83
936
+ 84
937
+ 85
938
+ 86
939
+ 87
940
+ 88
941
+ 89
942
+ 90
943
+ 91</pre>
848
944
  </td>
849
945
  <td>
850
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 72</span>
946
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 83</span>
851
947
 
852
948
  <span class='kw'>def</span> <span class='id identifier rubyid_bit_strength'>bit_strength</span>
853
- <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rsa?'>rsa?</span>
854
- <span class='kw'>return</span> <span class='kw'>self</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>
855
- <span class='kw'>elsif</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_dsa?'>dsa?</span>
856
- <span class='kw'>return</span> <span class='kw'>self</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>
857
- <span class='kw'>end</span>
949
+ <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_rsa?'>rsa?</span>
950
+ <span class='kw'>return</span> <span class='kw'>self</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>
951
+ <span class='kw'>elsif</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_dsa?'>dsa?</span>
952
+ <span class='kw'>return</span> <span class='kw'>self</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>
953
+ <span class='kw'>elsif</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ec?'>ec?</span>
954
+ <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'>'</span><span class='tstring_content'>Bit strength is not available for EC at this time.</span><span class='tstring_end'>'</span></span>
955
+ <span class='kw'>end</span>
956
+ <span class='kw'>end</span></pre>
957
+ </td>
958
+ </tr>
959
+ </table>
960
+ </div>
961
+
962
+ <div class="method_details ">
963
+ <h3 class="signature " id="curve_name-instance_method">
964
+
965
+ - (<tt>String</tt>) <strong>curve_name</strong>
966
+
967
+
968
+
969
+
970
+
971
+ </h3><div class="docstring">
972
+ <div class="discussion">
973
+
974
+ <p>Returns the short name of the elliptic curve used to generate the private
975
+ key if the key is EC. If not, raises an error.</p>
976
+
977
+
978
+ </div>
979
+ </div>
980
+ <div class="tags">
981
+
982
+ <p class="tag_title">Returns:</p>
983
+ <ul class="return">
984
+
985
+ <li>
986
+
987
+
988
+ <span class='type'>(<tt>String</tt>)</span>
989
+
990
+
991
+
992
+ &mdash;
993
+ <div class='inline'>
994
+ <p>elliptic curve name</p>
995
+ </div>
996
+
997
+ </li>
998
+
999
+ </ul>
1000
+
1001
+ </div><table class="source_code">
1002
+ <tr>
1003
+ <td>
1004
+ <pre class="lines">
1005
+
1006
+
1007
+ 97
1008
+ 98
1009
+ 99
1010
+ 100
1011
+ 101
1012
+ 102
1013
+ 103</pre>
1014
+ </td>
1015
+ <td>
1016
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 97</span>
1017
+
1018
+ <span class='kw'>def</span> <span class='id identifier rubyid_curve_name'>curve_name</span>
1019
+ <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ec?'>ec?</span>
1020
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_group'>group</span><span class='period'>.</span><span class='id identifier rubyid_curve_name'>curve_name</span>
1021
+ <span class='kw'>else</span>
1022
+ <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'>'</span><span class='tstring_content'>Curve name is only available with EC private keys</span><span class='tstring_end'>'</span></span>
1023
+ <span class='kw'>end</span>
858
1024
  <span class='kw'>end</span></pre>
859
1025
  </td>
860
1026
  </tr>
@@ -873,7 +1039,7 @@ key in the HSM (which will not show the private key, just public).</p>
873
1039
  </h3><div class="docstring">
874
1040
  <div class="discussion">
875
1041
 
876
- <p>Returns whether the public key is DSA</p>
1042
+ <p>Returns whether the key is DSA</p>
877
1043
 
878
1044
 
879
1045
  </div>
@@ -892,7 +1058,7 @@ key in the HSM (which will not show the private key, just public).</p>
892
1058
 
893
1059
  &mdash;
894
1060
  <div class='inline'>
895
- <p>true if the public key is DSA, false otherwise</p>
1061
+ <p>true if the key is DSA, false otherwise</p>
896
1062
  </div>
897
1063
 
898
1064
  </li>
@@ -905,15 +1071,74 @@ key in the HSM (which will not show the private key, just public).</p>
905
1071
  <pre class="lines">
906
1072
 
907
1073
 
908
- 181
909
- 182
910
- 183</pre>
1074
+ 217
1075
+ 218
1076
+ 219</pre>
911
1077
  </td>
912
1078
  <td>
913
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 181</span>
1079
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 217</span>
914
1080
 
915
1081
  <span class='kw'>def</span> <span class='id identifier rubyid_dsa?'>dsa?</span>
916
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>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>
1082
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>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>
1083
+ <span class='kw'>end</span></pre>
1084
+ </td>
1085
+ </tr>
1086
+ </table>
1087
+ </div>
1088
+
1089
+ <div class="method_details ">
1090
+ <h3 class="signature " id="ec?-instance_method">
1091
+
1092
+ - (<tt>Boolean</tt>) <strong>ec?</strong>
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+ </h3><div class="docstring">
1099
+ <div class="discussion">
1100
+
1101
+ <p>Returns whether the key is EC</p>
1102
+
1103
+
1104
+ </div>
1105
+ </div>
1106
+ <div class="tags">
1107
+
1108
+ <p class="tag_title">Returns:</p>
1109
+ <ul class="return">
1110
+
1111
+ <li>
1112
+
1113
+
1114
+ <span class='type'>(<tt>Boolean</tt>)</span>
1115
+
1116
+
1117
+
1118
+ &mdash;
1119
+ <div class='inline'>
1120
+ <p>true if the key is EC, false otherwise</p>
1121
+ </div>
1122
+
1123
+ </li>
1124
+
1125
+ </ul>
1126
+
1127
+ </div><table class="source_code">
1128
+ <tr>
1129
+ <td>
1130
+ <pre class="lines">
1131
+
1132
+
1133
+ 224
1134
+ 225
1135
+ 226</pre>
1136
+ </td>
1137
+ <td>
1138
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 224</span>
1139
+
1140
+ <span class='kw'>def</span> <span class='id identifier rubyid_ec?'>ec?</span>
1141
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>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'>EC</span><span class='rparen'>)</span>
917
1142
  <span class='kw'>end</span></pre>
918
1143
  </td>
919
1144
  </tr>
@@ -964,23 +1189,23 @@ key in the HSM (which will not show the private key, just public).</p>
964
1189
  <pre class="lines">
965
1190
 
966
1191
 
967
- 90
968
- 91
969
- 92
970
- 93
971
- 94
972
- 95
973
- 96</pre>
1192
+ 115
1193
+ 116
1194
+ 117
1195
+ 118
1196
+ 119
1197
+ 120
1198
+ 121</pre>
974
1199
  </td>
975
1200
  <td>
976
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 90</span>
1201
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 115</span>
977
1202
 
978
1203
  <span class='kw'>def</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
979
- <span class='kw'>if</span> <span class='kw'>not</span> <span class='ivar'>@engine</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
980
- <span class='kw'>true</span>
981
- <span class='kw'>else</span>
982
- <span class='kw'>false</span>
983
- <span class='kw'>end</span>
1204
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='ivar'>@engine</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1205
+ <span class='kw'>true</span>
1206
+ <span class='kw'>else</span>
1207
+ <span class='kw'>false</span>
1208
+ <span class='kw'>end</span>
984
1209
  <span class='kw'>end</span></pre>
985
1210
  </td>
986
1211
  </tr>
@@ -1033,23 +1258,23 @@ key in the HSM (which will not show the private key, just public)</p>
1033
1258
  <pre class="lines">
1034
1259
 
1035
1260
 
1036
- 81
1037
- 82
1038
- 83
1039
- 84
1040
- 85
1041
- 86
1042
- 87</pre>
1261
+ 106
1262
+ 107
1263
+ 108
1264
+ 109
1265
+ 110
1266
+ 111
1267
+ 112</pre>
1043
1268
  </td>
1044
1269
  <td>
1045
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 81</span>
1270
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 106</span>
1046
1271
 
1047
1272
  <span class='kw'>def</span> <span class='id identifier rubyid_key'>key</span>
1048
- <span class='kw'>if</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
1049
- <span class='ivar'>@engine</span><span class='period'>.</span><span class='id identifier rubyid_load_private_key'>load_private_key</span><span class='lparen'>(</span><span class='ivar'>@key_name</span><span class='rparen'>)</span>
1050
- <span class='kw'>else</span>
1051
- <span class='ivar'>@key</span>
1052
- <span class='kw'>end</span>
1273
+ <span class='kw'>if</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
1274
+ <span class='ivar'>@engine</span><span class='period'>.</span><span class='id identifier rubyid_load_private_key'>load_private_key</span><span class='lparen'>(</span><span class='ivar'>@key_name</span><span class='rparen'>)</span>
1275
+ <span class='kw'>else</span>
1276
+ <span class='ivar'>@key</span>
1277
+ <span class='kw'>end</span>
1053
1278
  <span class='kw'>end</span></pre>
1054
1279
  </td>
1055
1280
  </tr>
@@ -1059,7 +1284,7 @@ key in the HSM (which will not show the private key, just public)</p>
1059
1284
  <div class="method_details ">
1060
1285
  <h3 class="signature " id="public_key-instance_method">
1061
1286
 
1062
- - (<tt>OpenSSL::PKey::RSA</tt>, <tt>OpenSSL::PKey::DSA</tt>) <strong>public_key</strong>
1287
+ - (<tt>OpenSSL::PKey::RSA</tt>, ...) <strong>public_key</strong>
1063
1288
 
1064
1289
 
1065
1290
 
@@ -1085,7 +1310,7 @@ key in the HSM (which will not show the private key, just public)</p>
1085
1310
  <li>
1086
1311
 
1087
1312
 
1088
- <span class='type'>(<tt>OpenSSL::PKey::RSA</tt>, <tt>OpenSSL::PKey::DSA</tt>)</span>
1313
+ <span class='type'>(<tt>OpenSSL::PKey::RSA</tt>, <tt>OpenSSL::PKey::DSA</tt>, <tt><span class='object_link'>OpenSSL::PKey::EC</span></tt>)</span>
1089
1314
 
1090
1315
 
1091
1316
 
@@ -1104,15 +1329,37 @@ key in the HSM (which will not show the private key, just public)</p>
1104
1329
  <pre class="lines">
1105
1330
 
1106
1331
 
1107
- 99
1108
- 100
1109
- 101</pre>
1332
+ 124
1333
+ 125
1334
+ 126
1335
+ 127
1336
+ 128
1337
+ 129
1338
+ 130
1339
+ 131
1340
+ 132
1341
+ 133
1342
+ 134
1343
+ 135
1344
+ 136
1345
+ 137</pre>
1110
1346
  </td>
1111
1347
  <td>
1112
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 99</span>
1348
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 124</span>
1113
1349
 
1114
1350
  <span class='kw'>def</span> <span class='id identifier rubyid_public_key'>public_key</span>
1351
+ <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_ec?'>ec?</span>
1352
+ <span class='comment'># OpenSSL::PKey::EC.public_key returns an OpenSSL::PKey::EC::Point, which isn't consistent
1353
+ </span> <span class='comment'># with the way OpenSSL::PKey::RSA/DSA do it. We could return the original PKey::EC object
1354
+ </span> <span class='comment'># but if we do that then it has the private_key as well. Here's a ghetto workaround.
1355
+ </span> <span class='comment'># We have to supply the curve name to the temporary key object or else #public_key= fails
1356
+ </span> <span class='id identifier rubyid_curve_name'>curve_name</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_group'>group</span><span class='period'>.</span><span class='id identifier rubyid_curve_name'>curve_name</span>
1357
+ <span class='id identifier rubyid_temp_key'>temp_key</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>EC</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_curve_name'>curve_name</span><span class='rparen'>)</span>
1358
+ <span class='id identifier rubyid_temp_key'>temp_key</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='op'>=</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span>
1359
+ <span class='id identifier rubyid_temp_key'>temp_key</span>
1360
+ <span class='kw'>else</span>
1115
1361
  <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span>
1362
+ <span class='kw'>end</span>
1116
1363
  <span class='kw'>end</span></pre>
1117
1364
  </td>
1118
1365
  </tr>
@@ -1131,7 +1378,7 @@ key in the HSM (which will not show the private key, just public)</p>
1131
1378
  </h3><div class="docstring">
1132
1379
  <div class="discussion">
1133
1380
 
1134
- <p>Returns whether the public key is RSA</p>
1381
+ <p>Returns whether the key is RSA</p>
1135
1382
 
1136
1383
 
1137
1384
  </div>
@@ -1150,7 +1397,7 @@ key in the HSM (which will not show the private key, just public)</p>
1150
1397
 
1151
1398
  &mdash;
1152
1399
  <div class='inline'>
1153
- <p>true if the public key is RSA, false otherwise</p>
1400
+ <p>true if the key is RSA, false otherwise</p>
1154
1401
  </div>
1155
1402
 
1156
1403
  </li>
@@ -1163,15 +1410,15 @@ key in the HSM (which will not show the private key, just public)</p>
1163
1410
  <pre class="lines">
1164
1411
 
1165
1412
 
1166
- 174
1167
- 175
1168
- 176</pre>
1413
+ 210
1414
+ 211
1415
+ 212</pre>
1169
1416
  </td>
1170
1417
  <td>
1171
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 174</span>
1418
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 210</span>
1172
1419
 
1173
1420
  <span class='kw'>def</span> <span class='id identifier rubyid_rsa?'>rsa?</span>
1174
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>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>
1421
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>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>
1175
1422
  <span class='kw'>end</span></pre>
1176
1423
  </td>
1177
1424
  </tr>
@@ -1222,21 +1469,21 @@ key in the HSM (which will not show the private key, just public)</p>
1222
1469
  <pre class="lines">
1223
1470
 
1224
1471
 
1225
- 134
1226
- 135
1227
- 136
1228
- 137
1229
- 138
1230
- 139</pre>
1472
+ 170
1473
+ 171
1474
+ 172
1475
+ 173
1476
+ 174
1477
+ 175</pre>
1231
1478
  </td>
1232
1479
  <td>
1233
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 134</span>
1480
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 170</span>
1234
1481
 
1235
1482
  <span class='kw'>def</span> <span class='id identifier rubyid_to_der'>to_der</span>
1236
- <span class='kw'>if</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
1237
- <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'>This method cannot be called when using keys in hardware</span><span class='tstring_end'>&quot;</span></span>
1238
- <span class='kw'>end</span>
1239
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span>
1483
+ <span class='kw'>if</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
1484
+ <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'>This method cannot be called when using keys in hardware</span><span class='tstring_end'>&quot;</span></span>
1485
+ <span class='kw'>end</span>
1486
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span>
1240
1487
  <span class='kw'>end</span></pre>
1241
1488
  </td>
1242
1489
  </tr>
@@ -1326,23 +1573,23 @@ key in the HSM (which will not show the private key, just public)</p>
1326
1573
  <pre class="lines">
1327
1574
 
1328
1575
 
1329
- 122
1330
- 123
1331
- 124
1332
- 125
1333
- 126
1334
- 127
1335
- 128</pre>
1576
+ 158
1577
+ 159
1578
+ 160
1579
+ 161
1580
+ 162
1581
+ 163
1582
+ 164</pre>
1336
1583
  </td>
1337
1584
  <td>
1338
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 122</span>
1585
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 158</span>
1339
1586
 
1340
1587
  <span class='kw'>def</span> <span class='id identifier rubyid_to_encrypted_pem'>to_encrypted_pem</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher'>cipher</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
1341
- <span class='kw'>if</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
1342
- <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'>This method cannot be called when using keys in hardware</span><span class='tstring_end'>&quot;</span></span>
1343
- <span class='kw'>end</span>
1344
- <span class='id identifier rubyid_cipher'>cipher</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>Cipher</span><span class='op'>::</span><span class='const'>Cipher</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher'>cipher</span><span class='rparen'>)</span>
1345
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher'>cipher</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
1588
+ <span class='kw'>if</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
1589
+ <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'>This method cannot be called when using keys in hardware</span><span class='tstring_end'>&quot;</span></span>
1590
+ <span class='kw'>end</span>
1591
+ <span class='id identifier rubyid_cipher'>cipher</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>Cipher</span><span class='op'>::</span><span class='const'>Cipher</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher'>cipher</span><span class='rparen'>)</span>
1592
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher'>cipher</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
1346
1593
  <span class='kw'>end</span></pre>
1347
1594
  </td>
1348
1595
  </tr>
@@ -1393,21 +1640,21 @@ key in the HSM (which will not show the private key, just public)</p>
1393
1640
  <pre class="lines">
1394
1641
 
1395
1642
 
1396
- 108
1397
- 109
1398
- 110
1399
- 111
1400
- 112
1401
- 113</pre>
1643
+ 144
1644
+ 145
1645
+ 146
1646
+ 147
1647
+ 148
1648
+ 149</pre>
1402
1649
  </td>
1403
1650
  <td>
1404
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 108</span>
1651
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 144</span>
1405
1652
 
1406
1653
  <span class='kw'>def</span> <span class='id identifier rubyid_to_pem'>to_pem</span>
1407
- <span class='kw'>if</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
1408
- <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'>This method cannot be called when using keys in hardware</span><span class='tstring_end'>&quot;</span></span>
1409
- <span class='kw'>end</span>
1410
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span>
1654
+ <span class='kw'>if</span> <span class='id identifier rubyid_in_hardware?'>in_hardware?</span>
1655
+ <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'>This method cannot be called when using keys in hardware</span><span class='tstring_end'>&quot;</span></span>
1656
+ <span class='kw'>end</span>
1657
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span>
1411
1658
  <span class='kw'>end</span></pre>
1412
1659
  </td>
1413
1660
  </tr>
@@ -1461,15 +1708,15 @@ IO-like object.</p>
1461
1708
  <pre class="lines">
1462
1709
 
1463
1710
 
1464
- 166
1465
- 167
1466
- 168</pre>
1711
+ 202
1712
+ 203
1713
+ 204</pre>
1467
1714
  </td>
1468
1715
  <td>
1469
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 166</span>
1716
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 202</span>
1470
1717
 
1471
1718
  <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>
1472
- <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='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span><span class='rparen'>)</span>
1719
+ <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='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span><span class='rparen'>)</span>
1473
1720
  <span class='kw'>end</span></pre>
1474
1721
  </td>
1475
1722
  </tr>
@@ -1558,15 +1805,15 @@ IO-like object.</p>
1558
1805
  <pre class="lines">
1559
1806
 
1560
1807
 
1561
- 158
1562
- 159
1563
- 160</pre>
1808
+ 194
1809
+ 195
1810
+ 196</pre>
1564
1811
  </td>
1565
1812
  <td>
1566
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 158</span>
1813
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 194</span>
1567
1814
 
1568
1815
  <span class='kw'>def</span> <span class='id identifier rubyid_write_encrypted_pem'>write_encrypted_pem</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_cipher'>cipher</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span>
1569
- <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_to_encrypted_pem'>to_encrypted_pem</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher'>cipher</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span><span class='rparen'>)</span>
1816
+ <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_to_encrypted_pem'>to_encrypted_pem</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher'>cipher</span><span class='comma'>,</span><span class='id identifier rubyid_password'>password</span><span class='rparen'>)</span><span class='rparen'>)</span>
1570
1817
  <span class='kw'>end</span></pre>
1571
1818
  </td>
1572
1819
  </tr>
@@ -1620,15 +1867,15 @@ IO-like object.</p>
1620
1867
  <pre class="lines">
1621
1868
 
1622
1869
 
1623
- 145
1624
- 146
1625
- 147</pre>
1870
+ 181
1871
+ 182
1872
+ 183</pre>
1626
1873
  </td>
1627
1874
  <td>
1628
- <pre class="code"><span class="info file"># File 'lib/r509/privatekey.rb', line 145</span>
1875
+ <pre class="code"><span class="info file"># File 'lib/r509/private_key.rb', line 181</span>
1629
1876
 
1630
1877
  <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>
1631
- <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='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span><span class='rparen'>)</span>
1878
+ <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='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span><span class='rparen'>)</span>
1632
1879
  <span class='kw'>end</span></pre>
1633
1880
  </td>
1634
1881
  </tr>
@@ -1640,9 +1887,9 @@ IO-like object.</p>
1640
1887
  </div>
1641
1888
 
1642
1889
  <div id="footer">
1643
- Generated on Thu Nov 8 14:19:27 2012 by
1890
+ Generated on Tue Apr 16 10:49:57 2013 by
1644
1891
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1645
- 0.8.2.1 (ruby-1.9.3).
1892
+ 0.8.5 (ruby-1.9.3).
1646
1893
  </div>
1647
1894
 
1648
1895
  </body>