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::Cert::Extensions::BasicConstraints
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
 
@@ -119,7 +119,18 @@ provide access to the components and meaning of the extension's contents.</p>
119
119
  <dl class="constants">
120
120
 
121
121
  <dt id="OID-constant" class="">OID =
122
-
122
+ <div class="docstring">
123
+ <div class="discussion">
124
+
125
+ <p>friendly name for BasicConstraints OID</p>
126
+
127
+
128
+ </div>
129
+ </div>
130
+ <div class="tags">
131
+
132
+
133
+ </div>
123
134
  </dt>
124
135
  <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>basicConstraints</span><span class='tstring_end'>&quot;</span></span></pre></dd>
125
136
 
@@ -192,8 +203,8 @@ provide access to the components and meaning of the extension's contents.</p>
192
203
 
193
204
 
194
205
  <span class="summary_desc"><div class='inline'>
195
- <p>Returns true if the path length allows this certificate to be used to sign
196
- CA certificates.</p>
206
+ <p>Returns true if the path length allows this certificate to be used to
207
+ create subordinate signing certificates beneath it.</p>
197
208
  </div></span>
198
209
 
199
210
  </li>
@@ -280,23 +291,47 @@ CA certificates.</p>
280
291
  <pre class="lines">
281
292
 
282
293
 
294
+ 33
283
295
  34
284
296
  35
285
297
  36
286
298
  37
287
299
  38
288
300
  39
289
- 40</pre>
301
+ 40
302
+ 41
303
+ 42
304
+ 43
305
+ 44
306
+ 45
307
+ 46
308
+ 47
309
+ 48
310
+ 49
311
+ 50
312
+ 51</pre>
290
313
  </td>
291
314
  <td>
292
- <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 34</span>
315
+ <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 33</span>
293
316
 
294
317
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
295
318
  <span class='kw'>super</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
296
319
 
297
- <span class='ivar'>@is_ca</span> <span class='op'>=</span> <span class='op'>!</span> <span class='lparen'>(</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>CA:TRUE</span><span class='regexp_end'>/</span></span> <span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
298
- <span class='id identifier rubyid_pathlen_match'>pathlen_match</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>pathlen:(\d+)</span><span class='regexp_end'>/</span></span> <span class='rparen'>)</span>
299
- <span class='ivar'>@path_length</span> <span class='op'>=</span> <span class='id identifier rubyid_pathlen_match'>pathlen_match</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='kw'>unless</span> <span class='id identifier rubyid_pathlen_match'>pathlen_match</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
320
+ <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>ASN1</span><span class='period'>.</span><span class='id identifier rubyid_get_extension_payload'>get_extension_payload</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
321
+ <span class='ivar'>@is_ca</span> <span class='op'>=</span> <span class='kw'>false</span>
322
+ <span class='comment'># BasicConstraints ::= SEQUENCE {
323
+ </span> <span class='comment'># cA BOOLEAN DEFAULT FALSE,
324
+ </span> <span class='comment'># pathLenConstraint INTEGER (0..MAX) OPTIONAL }
325
+ </span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_entries'>entries</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_entry'>entry</span><span class='op'>|</span>
326
+ <span class='kw'>if</span> <span class='id identifier rubyid_entry'>entry</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'>ASN1</span><span class='op'>::</span><span class='const'>Boolean</span><span class='rparen'>)</span>
327
+ <span class='comment'># since the boolean is optional it may not be present
328
+ </span> <span class='ivar'>@is_ca</span> <span class='op'>=</span> <span class='id identifier rubyid_entry'>entry</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
329
+ <span class='kw'>else</span>
330
+ <span class='comment'># There are only two kinds of entries permitted so anything
331
+ </span> <span class='comment'># else is an integer pathlength
332
+ </span> <span class='ivar'>@path_length</span> <span class='op'>=</span> <span class='id identifier rubyid_entry'>entry</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
333
+ <span class='kw'>end</span>
334
+ <span class='kw'>end</span>
300
335
  <span class='kw'>end</span></pre>
301
336
  </td>
302
337
  </tr>
@@ -336,12 +371,12 @@ CA certificates.</p>
336
371
  <pre class="lines">
337
372
 
338
373
 
374
+ 30
339
375
  31
340
- 32
341
- 33</pre>
376
+ 32</pre>
342
377
  </td>
343
378
  <td>
344
- <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 31</span>
379
+ <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 30</span>
345
380
 
346
381
  <span class='kw'>def</span> <span class='id identifier rubyid_path_length'>path_length</span>
347
382
  <span class='ivar'>@path_length</span>
@@ -370,8 +405,9 @@ CA certificates.</p>
370
405
  </h3><div class="docstring">
371
406
  <div class="discussion">
372
407
 
373
- <p>Returns true if the path length allows this certificate to be used to sign
374
- CA certificates.</p>
408
+ <p>Returns true if the path length allows this certificate to be used to
409
+ create subordinate signing certificates beneath it. Does not check if there
410
+ is a pathlen restriction in the cert chain above the current cert</p>
375
411
 
376
412
 
377
413
  </div>
@@ -398,13 +434,13 @@ CA certificates.</p>
398
434
  <pre class="lines">
399
435
 
400
436
 
401
- 48
402
- 49
403
- 50
404
- 51</pre>
437
+ 60
438
+ 61
439
+ 62
440
+ 63</pre>
405
441
  </td>
406
442
  <td>
407
- <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 48</span>
443
+ <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 60</span>
408
444
 
409
445
  <span class='kw'>def</span> <span class='id identifier rubyid_allows_sub_ca?'>allows_sub_ca?</span><span class='lparen'>(</span><span class='rparen'>)</span>
410
446
  <span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>if</span> <span class='ivar'>@path_length</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
@@ -452,12 +488,12 @@ CA certificates.</p>
452
488
  <pre class="lines">
453
489
 
454
490
 
455
- 42
456
- 43
457
- 44</pre>
491
+ 53
492
+ 54
493
+ 55</pre>
458
494
  </td>
459
495
  <td>
460
- <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 42</span>
496
+ <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 53</span>
461
497
 
462
498
  <span class='kw'>def</span> <span class='id identifier rubyid_is_ca?'>is_ca?</span><span class='lparen'>(</span><span class='rparen'>)</span>
463
499
  <span class='kw'>return</span> <span class='ivar'>@is_ca</span> <span class='op'>==</span> <span class='kw'>true</span>
@@ -472,9 +508,9 @@ CA certificates.</p>
472
508
  </div>
473
509
 
474
510
  <div id="footer">
475
- Generated on Thu Nov 8 14:19:28 2012 by
511
+ Generated on Tue Apr 16 10:49:57 2013 by
476
512
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
477
- 0.8.2.1 (ruby-1.9.3).
513
+ 0.8.5 (ruby-1.9.3).
478
514
  </div>
479
515
 
480
516
  </body>
@@ -0,0 +1,354 @@
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::Extensions::CRLDistributionPoints
8
+
9
+ &mdash; Documentation by YARD 0.8.5
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> &raquo; <span class='title'><span class='object_link'><a href="../../Cert.html" title="R509::Cert (class)">Cert</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Extensions.html" title="R509::Cert::Extensions (module)">Extensions</a></span></span>
36
+ &raquo;
37
+ <span class="title">CRLDistributionPoints</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::Extensions::CRLDistributionPoints
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">OpenSSL::X509::Extension</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">OpenSSL::X509::Extension</li>
82
+
83
+ <li class="next">R509::Cert::Extensions::CRLDistributionPoints</li>
84
+
85
+ </ul>
86
+ <a href="#" class="inheritanceTree">show all</a>
87
+
88
+ </dd>
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+ <dt class="r2 last">Defined in:</dt>
99
+ <dd class="r2 last">lib/r509/cert/extensions.rb</dd>
100
+
101
+ </dl>
102
+ <div class="clear"></div>
103
+
104
+ <h2>Overview</h2><div class="docstring">
105
+ <div class="discussion">
106
+
107
+ <p>Implements the CRLDistributionPoints certificate extension, with methods to
108
+ provide access to the components and meaning of the extension's contents.</p>
109
+
110
+
111
+ </div>
112
+ </div>
113
+ <div class="tags">
114
+
115
+
116
+ </div>
117
+ <h2>Constant Summary</h2>
118
+
119
+ <dl class="constants">
120
+
121
+ <dt id="OID-constant" class="">OID =
122
+ <div class="docstring">
123
+ <div class="discussion">
124
+
125
+ <p>friendly name for CDP OID</p>
126
+
127
+
128
+ </div>
129
+ </div>
130
+ <div class="tags">
131
+
132
+
133
+ </div>
134
+ </dt>
135
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>crlDistributionPoints</span><span class='tstring_end'>&quot;</span></span></pre></dd>
136
+
137
+ </dl>
138
+
139
+
140
+
141
+
142
+
143
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
144
+ <ul class="summary">
145
+
146
+ <li class="public ">
147
+ <span class="summary_signature">
148
+
149
+ <a href="#crl-instance_method" title="#crl (instance method)">- (Object) <strong>crl</strong> </a>
150
+
151
+
152
+
153
+ </span>
154
+
155
+
156
+
157
+
158
+ <span class="note title readonly">readonly</span>
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+ <span class="summary_desc"><div class='inline'>
169
+ <p>An array of the CRL URIs, if any.</p>
170
+ </div></span>
171
+
172
+ </li>
173
+
174
+
175
+ </ul>
176
+
177
+
178
+
179
+
180
+
181
+ <h2>
182
+ Instance Method Summary
183
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
184
+ </h2>
185
+
186
+ <ul class="summary">
187
+
188
+ <li class="public ">
189
+ <span class="summary_signature">
190
+
191
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (CRLDistributionPoints) <strong>initialize</strong>(*args) </a>
192
+
193
+
194
+
195
+ </span>
196
+
197
+
198
+ <span class="note title constructor">constructor</span>
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+ <span class="summary_desc"><div class='inline'>
208
+ <p>See OpenSSL::X509::Extension#initialize.</p>
209
+ </div></span>
210
+
211
+ </li>
212
+
213
+
214
+ </ul>
215
+
216
+
217
+
218
+ <div id="constructor_details" class="method_details_list">
219
+ <h2>Constructor Details</h2>
220
+
221
+ <div class="method_details first">
222
+ <h3 class="signature first" id="initialize-instance_method">
223
+
224
+ - (<tt><span class='object_link'><a href="" title="R509::Cert::Extensions::CRLDistributionPoints (class)">CRLDistributionPoints</a></span></tt>) <strong>initialize</strong>(*args)
225
+
226
+
227
+
228
+
229
+
230
+ </h3><div class="docstring">
231
+ <div class="discussion">
232
+
233
+ <p>See OpenSSL::X509::Extension#initialize</p>
234
+
235
+
236
+ </div>
237
+ </div>
238
+ <div class="tags">
239
+
240
+
241
+ </div><table class="source_code">
242
+ <tr>
243
+ <td>
244
+ <pre class="lines">
245
+
246
+
247
+ 474
248
+ 475
249
+ 476
250
+ 477
251
+ 478
252
+ 479
253
+ 480
254
+ 481
255
+ 482
256
+ 483
257
+ 484
258
+ 485
259
+ 486
260
+ 487
261
+ 488
262
+ 489
263
+ 490
264
+ 491
265
+ 492</pre>
266
+ </td>
267
+ <td>
268
+ <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 474</span>
269
+
270
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
271
+ <span class='kw'>super</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
272
+
273
+ <span class='ivar'>@crl</span><span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>ASN1</span><span class='op'>::</span><span class='const'>GeneralNames</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
274
+ <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>ASN1</span><span class='period'>.</span><span class='id identifier rubyid_get_extension_payload'>get_extension_payload</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
275
+ <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_entries'>entries</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_distribution_point'>distribution_point</span><span class='op'>|</span>
276
+ <span class='comment'># DistributionPoint ::= SEQUENCE {
277
+ </span> <span class='comment'># distributionPoint [0] DistributionPointName OPTIONAL,
278
+ </span> <span class='comment'># reasons [1] ReasonFlags OPTIONAL,
279
+ </span> <span class='comment'># cRLIssuer [2] GeneralNames OPTIONAL }
280
+ </span> <span class='comment'># DistributionPointName ::= CHOICE {
281
+ </span> <span class='comment'># fullName [0] GeneralNames,
282
+ </span> <span class='comment'># nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
283
+ </span> <span class='comment'># We're only going to handle DistributionPointName [0] for now
284
+ </span> <span class='comment'># so grab entries[0] and then get the fullName with value[0]
285
+ </span> <span class='comment'># and the value of that ASN1Data with value[0] again
286
+ </span> <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_add_item'>add_item</span><span class='lparen'>(</span><span class='id identifier rubyid_distribution_point'>distribution_point</span><span class='period'>.</span><span class='id identifier rubyid_entries'>entries</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rparen'>)</span>
287
+ <span class='kw'>end</span>
288
+ <span class='kw'>end</span></pre>
289
+ </td>
290
+ </tr>
291
+ </table>
292
+ </div>
293
+
294
+ </div>
295
+
296
+ <div id="instance_attr_details" class="attr_details">
297
+ <h2>Instance Attribute Details</h2>
298
+
299
+
300
+ <span id=""></span>
301
+ <div class="method_details first">
302
+ <h3 class="signature first" id="crl-instance_method">
303
+
304
+ - (<tt>Object</tt>) <strong>crl</strong> <span class="extras">(readonly)</span>
305
+
306
+
307
+
308
+
309
+
310
+ </h3><div class="docstring">
311
+ <div class="discussion">
312
+
313
+ <p>An array of the CRL URIs, if any</p>
314
+
315
+
316
+ </div>
317
+ </div>
318
+ <div class="tags">
319
+
320
+
321
+ </div><table class="source_code">
322
+ <tr>
323
+ <td>
324
+ <pre class="lines">
325
+
326
+
327
+ 471
328
+ 472
329
+ 473</pre>
330
+ </td>
331
+ <td>
332
+ <pre class="code"><span class="info file"># File 'lib/r509/cert/extensions.rb', line 471</span>
333
+
334
+ <span class='kw'>def</span> <span class='id identifier rubyid_crl'>crl</span>
335
+ <span class='ivar'>@crl</span>
336
+ <span class='kw'>end</span></pre>
337
+ </td>
338
+ </tr>
339
+ </table>
340
+ </div>
341
+
342
+ </div>
343
+
344
+
345
+ </div>
346
+
347
+ <div id="footer">
348
+ Generated on Tue Apr 16 10:49:58 2013 by
349
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
350
+ 0.8.5 (ruby-1.9.3).
351
+ </div>
352
+
353
+ </body>
354
+ </html>