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
@@ -4,9 +4,9 @@
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
6
  <title>
7
- Class: R509::Crl::Parser
7
+ Class: R509::CRL::SignedList
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
 
@@ -31,10 +31,10 @@
31
31
  <div id="header">
32
32
  <div id="menu">
33
33
 
34
- <a href="../../_index.html">Index (P)</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="../Crl.html" title="R509::Crl (module)">Crl</a></span></span>
34
+ <a href="../../_index.html">Index (S)</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="../CRL.html" title="R509::CRL (module)">CRL</a></span></span>
36
36
  &raquo;
37
- <span class="title">Parser</span>
37
+ <span class="title">SignedList</span>
38
38
 
39
39
 
40
40
  <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
@@ -63,7 +63,7 @@
63
63
 
64
64
  <iframe id="search_frame"></iframe>
65
65
 
66
- <div id="content"><h1>Class: R509::Crl::Parser
66
+ <div id="content"><h1>Class: R509::CRL::SignedList
67
67
 
68
68
 
69
69
 
@@ -78,7 +78,7 @@
78
78
  <ul class="fullTree">
79
79
  <li>Object</li>
80
80
 
81
- <li class="next">R509::Crl::Parser</li>
81
+ <li class="next">R509::CRL::SignedList</li>
82
82
 
83
83
  </ul>
84
84
  <a href="#" class="inheritanceTree">show all</a>
@@ -90,16 +90,31 @@
90
90
 
91
91
 
92
92
 
93
+ <dt class="r2">Includes:</dt>
94
+ <dd class="r2"><span class='object_link'><a href="../IOHelpers.html" title="R509::IOHelpers (module)">IOHelpers</a></span></dd>
95
+
96
+
93
97
 
94
98
 
95
99
 
96
- <dt class="r2 last">Defined in:</dt>
97
- <dd class="r2 last">lib/r509/crl.rb</dd>
100
+ <dt class="r1 last">Defined in:</dt>
101
+ <dd class="r1 last">lib/r509/crl.rb</dd>
98
102
 
99
103
  </dl>
100
104
  <div class="clear"></div>
101
105
 
106
+ <h2>Overview</h2><div class="docstring">
107
+ <div class="discussion">
108
+
109
+ <p>Parses CRLs</p>
110
+
111
+
112
+ </div>
113
+ </div>
114
+ <div class="tags">
115
+
102
116
 
117
+ </div>
103
118
 
104
119
 
105
120
 
@@ -132,6 +147,35 @@
132
147
  <p>Returns the value of attribute crl.</p>
133
148
  </div></span>
134
149
 
150
+ </li>
151
+
152
+
153
+ <li class="public ">
154
+ <span class="summary_signature">
155
+
156
+ <a href="#issuer-instance_method" title="#issuer (instance method)">- (Object) <strong>issuer</strong> </a>
157
+
158
+
159
+
160
+ </span>
161
+
162
+
163
+
164
+
165
+ <span class="note title readonly">readonly</span>
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+ <span class="summary_desc"><div class='inline'>
176
+ <p>Returns the value of attribute issuer.</p>
177
+ </div></span>
178
+
135
179
  </li>
136
180
 
137
181
 
@@ -151,7 +195,7 @@
151
195
  <li class="public ">
152
196
  <span class="summary_signature">
153
197
 
154
- <a href="#load_from_file-class_method" title="load_from_file (class method)">+ (R509::Crl::Parser) <strong>load_from_file</strong>(filename) </a>
198
+ <a href="#load_from_file-class_method" title="load_from_file (class method)">+ (R509::CRL::SignedList) <strong>load_from_file</strong>(filename) </a>
155
199
 
156
200
 
157
201
 
@@ -184,7 +228,7 @@
184
228
  <li class="public ">
185
229
  <span class="summary_signature">
186
230
 
187
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (Parser) <strong>initialize</strong>(crl) </a>
231
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (SignedList) <strong>initialize</strong>(crl) </a>
188
232
 
189
233
 
190
234
 
@@ -201,7 +245,7 @@
201
245
 
202
246
 
203
247
  <span class="summary_desc"><div class='inline'>
204
- <p>A new instance of Parser.</p>
248
+ <p>A new instance of SignedList.</p>
205
249
  </div></span>
206
250
 
207
251
  </li>
@@ -210,7 +254,7 @@
210
254
  <li class="public ">
211
255
  <span class="summary_signature">
212
256
 
213
- <a href="#issuer-instance_method" title="#issuer (instance method)">- (OpenSSL::X509::Name) <strong>issuer</strong> </a>
257
+ <a href="#last_update-instance_method" title="#last_update (instance method)">- (Time) <strong>last_update</strong> </a>
214
258
 
215
259
 
216
260
 
@@ -224,7 +268,9 @@
224
268
 
225
269
 
226
270
 
227
- <span class="summary_desc"><div class='inline'></div></span>
271
+ <span class="summary_desc"><div class='inline'>
272
+ <p>Returns the signing time of the CRL.</p>
273
+ </div></span>
228
274
 
229
275
  </li>
230
276
 
@@ -232,7 +278,7 @@
232
278
  <li class="public ">
233
279
  <span class="summary_signature">
234
280
 
235
- <a href="#issuer_cn-instance_method" title="#issuer_cn (instance method)">- (String) <strong>issuer_cn</strong> </a>
281
+ <a href="#next_update-instance_method" title="#next_update (instance method)">- (Time) <strong>next_update</strong> </a>
236
282
 
237
283
 
238
284
 
@@ -247,7 +293,7 @@
247
293
 
248
294
 
249
295
  <span class="summary_desc"><div class='inline'>
250
- <p>The common name (CN) component of the issuer.</p>
296
+ <p>Returns the next update time for the CRL.</p>
251
297
  </div></span>
252
298
 
253
299
  </li>
@@ -256,7 +302,7 @@
256
302
  <li class="public ">
257
303
  <span class="summary_signature">
258
304
 
259
- <a href="#last_update-instance_method" title="#last_update (instance method)">- (Time) <strong>last_update</strong> </a>
305
+ <a href="#revoked-instance_method" title="#revoked (instance method)">- (Hash) <strong>revoked</strong> </a>
260
306
 
261
307
 
262
308
 
@@ -270,7 +316,9 @@
270
316
 
271
317
 
272
318
 
273
- <span class="summary_desc"><div class='inline'></div></span>
319
+ <span class="summary_desc"><div class='inline'>
320
+ <p>Hash of serial =&gt; { :time, :reason } hashes.</p>
321
+ </div></span>
274
322
 
275
323
  </li>
276
324
 
@@ -278,7 +326,7 @@
278
326
  <li class="public ">
279
327
  <span class="summary_signature">
280
328
 
281
- <a href="#next_update-instance_method" title="#next_update (instance method)">- (Time) <strong>next_update</strong> </a>
329
+ <a href="#revoked%3F-instance_method" title="#revoked? (instance method)">- (Boolean) <strong>revoked?</strong>(serial) </a>
282
330
 
283
331
 
284
332
 
@@ -300,7 +348,7 @@
300
348
  <li class="public ">
301
349
  <span class="summary_signature">
302
350
 
303
- <a href="#revoked-instance_method" title="#revoked (instance method)">- (Hash) <strong>revoked</strong> </a>
351
+ <a href="#revoked_cert-instance_method" title="#revoked_cert (instance method)">- (Hash) <strong>revoked_cert</strong>(serial) </a>
304
352
 
305
353
 
306
354
 
@@ -315,7 +363,7 @@
315
363
 
316
364
 
317
365
  <span class="summary_desc"><div class='inline'>
318
- <p>Hash of serial =&gt; { :time, :reason } hashes.</p>
366
+ <p>Hash with :time and :reason.</p>
319
367
  </div></span>
320
368
 
321
369
  </li>
@@ -324,7 +372,7 @@
324
372
  <li class="public ">
325
373
  <span class="summary_signature">
326
374
 
327
- <a href="#revoked%3F-instance_method" title="#revoked? (instance method)">- (Boolean) <strong>revoked?</strong>(serial) </a>
375
+ <a href="#signature_algorithm-instance_method" title="#signature_algorithm (instance method)">- (String) <strong>signature_algorithm</strong> </a>
328
376
 
329
377
 
330
378
 
@@ -346,7 +394,7 @@
346
394
  <li class="public ">
347
395
  <span class="summary_signature">
348
396
 
349
- <a href="#revoked_cert-instance_method" title="#revoked_cert (instance method)">- (Hash) <strong>revoked_cert</strong>(serial) </a>
397
+ <a href="#to_der-instance_method" title="#to_der (instance method)">- (String) <strong>to_der</strong> </a>
350
398
 
351
399
 
352
400
 
@@ -361,7 +409,7 @@
361
409
 
362
410
 
363
411
  <span class="summary_desc"><div class='inline'>
364
- <p>Hash with :time and :reason.</p>
412
+ <p>Returns the CRL in DER format.</p>
365
413
  </div></span>
366
414
 
367
415
  </li>
@@ -370,10 +418,12 @@
370
418
  <li class="public ">
371
419
  <span class="summary_signature">
372
420
 
373
- <a href="#signature_algorithm-instance_method" title="#signature_algorithm (instance method)">- (String) <strong>signature_algorithm</strong> </a>
421
+ <a href="#to_pem-instance_method" title="#to_pem (instance method)">- (String) <strong>to_pem</strong> </a>
374
422
 
375
423
 
376
424
 
425
+ (also: #to_s)
426
+
377
427
  </span>
378
428
 
379
429
 
@@ -384,7 +434,9 @@
384
434
 
385
435
 
386
436
 
387
- <span class="summary_desc"><div class='inline'></div></span>
437
+ <span class="summary_desc"><div class='inline'>
438
+ <p>Returns the CRL in PEM format.</p>
439
+ </div></span>
388
440
 
389
441
  </li>
390
442
 
@@ -411,19 +463,78 @@
411
463
  certificate (call cert.public_key on that object).</p>
412
464
  </div></span>
413
465
 
466
+ </li>
467
+
468
+
469
+ <li class="public ">
470
+ <span class="summary_signature">
471
+
472
+ <a href="#write_der-instance_method" title="#write_der (instance method)">- (Object) <strong>write_der</strong>(filename_or_io) </a>
473
+
474
+
475
+
476
+ </span>
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+ <span class="summary_desc"><div class='inline'>
487
+ <p>Writes the CRL into the PEM format.</p>
488
+ </div></span>
489
+
490
+ </li>
491
+
492
+
493
+ <li class="public ">
494
+ <span class="summary_signature">
495
+
496
+ <a href="#write_pem-instance_method" title="#write_pem (instance method)">- (Object) <strong>write_pem</strong>(filename_or_io) </a>
497
+
498
+
499
+
500
+ </span>
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+ <span class="summary_desc"><div class='inline'>
511
+ <p>Writes the CRL into the PEM format.</p>
512
+ </div></span>
513
+
414
514
  </li>
415
515
 
416
516
 
417
517
  </ul>
418
518
 
419
519
 
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../IOHelpers.html" title="R509::IOHelpers (module)">IOHelpers</a></span></h3>
530
+ <p class="inherited"><span class='object_link'><a href="../IOHelpers.html#read_data-instance_method" title="R509::IOHelpers#read_data (method)">#read_data</a></span>, <span class='object_link'><a href="../IOHelpers.html#read_data-class_method" title="R509::IOHelpers.read_data (method)">read_data</a></span>, <span class='object_link'><a href="../IOHelpers.html#write_data-instance_method" title="R509::IOHelpers#write_data (method)">#write_data</a></span>, <span class='object_link'><a href="../IOHelpers.html#write_data-class_method" title="R509::IOHelpers.write_data (method)">write_data</a></span></p>
420
531
  <div id="constructor_details" class="method_details_list">
421
532
  <h2>Constructor Details</h2>
422
533
 
423
534
  <div class="method_details first">
424
535
  <h3 class="signature first" id="initialize-instance_method">
425
536
 
426
- - (<tt><span class='object_link'><a href="" title="R509::Crl::Parser (class)">Parser</a></span></tt>) <strong>initialize</strong>(crl)
537
+ - (<tt><span class='object_link'><a href="" title="R509::CRL::SignedList (class)">SignedList</a></span></tt>) <strong>initialize</strong>(crl)
427
538
 
428
539
 
429
540
 
@@ -432,7 +543,7 @@ certificate (call cert.public_key on that object).</p>
432
543
  </h3><div class="docstring">
433
544
  <div class="discussion">
434
545
 
435
- <p>A new instance of Parser</p>
546
+ <p>A new instance of SignedList</p>
436
547
 
437
548
 
438
549
  </div>
@@ -461,15 +572,17 @@ certificate (call cert.public_key on that object).</p>
461
572
  <pre class="lines">
462
573
 
463
574
 
464
- 14
465
- 15
466
- 16</pre>
575
+ 16
576
+ 17
577
+ 18
578
+ 19</pre>
467
579
  </td>
468
580
  <td>
469
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 14</span>
581
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 16</span>
470
582
 
471
583
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_crl'>crl</span><span class='rparen'>)</span>
472
- <span class='ivar'>@crl</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>CRL</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_crl'>crl</span><span class='rparen'>)</span>
584
+ <span class='ivar'>@crl</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>CRL</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_crl'>crl</span><span class='rparen'>)</span>
585
+ <span class='ivar'>@issuer</span> <span class='op'>=</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Subject</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_issuer'>issuer</span><span class='rparen'>)</span>
473
586
  <span class='kw'>end</span></pre>
474
587
  </td>
475
588
  </tr>
@@ -509,12 +622,12 @@ certificate (call cert.public_key on that object).</p>
509
622
  <pre class="lines">
510
623
 
511
624
 
512
- 11
513
- 12
514
- 13</pre>
625
+ 13
626
+ 14
627
+ 15</pre>
515
628
  </td>
516
629
  <td>
517
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 11</span>
630
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 13</span>
518
631
 
519
632
  <span class='kw'>def</span> <span class='id identifier rubyid_crl'>crl</span>
520
633
  <span class='ivar'>@crl</span>
@@ -524,6 +637,49 @@ certificate (call cert.public_key on that object).</p>
524
637
  </table>
525
638
  </div>
526
639
 
640
+
641
+ <span id=""></span>
642
+ <div class="method_details ">
643
+ <h3 class="signature " id="issuer-instance_method">
644
+
645
+ - (<tt>Object</tt>) <strong>issuer</strong> <span class="extras">(readonly)</span>
646
+
647
+
648
+
649
+
650
+
651
+ </h3><div class="docstring">
652
+ <div class="discussion">
653
+
654
+ <p>Returns the value of attribute issuer</p>
655
+
656
+
657
+ </div>
658
+ </div>
659
+ <div class="tags">
660
+
661
+
662
+ </div><table class="source_code">
663
+ <tr>
664
+ <td>
665
+ <pre class="lines">
666
+
667
+
668
+ 13
669
+ 14
670
+ 15</pre>
671
+ </td>
672
+ <td>
673
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 13</span>
674
+
675
+ <span class='kw'>def</span> <span class='id identifier rubyid_issuer'>issuer</span>
676
+ <span class='ivar'>@issuer</span>
677
+ <span class='kw'>end</span></pre>
678
+ </td>
679
+ </tr>
680
+ </table>
681
+ </div>
682
+
527
683
  </div>
528
684
 
529
685
 
@@ -534,7 +690,7 @@ certificate (call cert.public_key on that object).</p>
534
690
  <div class="method_details first">
535
691
  <h3 class="signature first" id="load_from_file-class_method">
536
692
 
537
- + (<tt><span class='object_link'><a href="" title="R509::Crl::Parser (class)">R509::Crl::Parser</a></span></tt>) <strong>load_from_file</strong>(filename)
693
+ + (<tt><span class='object_link'><a href="" title="R509::CRL::SignedList (class)">R509::CRL::SignedList</a></span></tt>) <strong>load_from_file</strong>(filename)
538
694
 
539
695
 
540
696
 
@@ -576,7 +732,7 @@ certificate (call cert.public_key on that object).</p>
576
732
  <li>
577
733
 
578
734
 
579
- <span class='type'>(<tt><span class='object_link'><a href="" title="R509::Crl::Parser (class)">R509::Crl::Parser</a></span></tt>)</span>
735
+ <span class='type'>(<tt><span class='object_link'><a href="" title="R509::CRL::SignedList (class)">R509::CRL::SignedList</a></span></tt>)</span>
580
736
 
581
737
 
582
738
 
@@ -595,15 +751,15 @@ certificate (call cert.public_key on that object).</p>
595
751
  <pre class="lines">
596
752
 
597
753
 
598
- 22
599
- 23
600
- 24</pre>
754
+ 25
755
+ 26
756
+ 27</pre>
601
757
  </td>
602
758
  <td>
603
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 22</span>
759
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 25</span>
604
760
 
605
761
  <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load_from_file'>load_from_file</span><span class='lparen'>(</span> <span class='id identifier rubyid_filename'>filename</span> <span class='rparen'>)</span>
606
- <span class='kw'>return</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Crl</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='const'>IOHelpers</span><span class='period'>.</span><span class='id identifier rubyid_read_data'>read_data</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span> <span class='rparen'>)</span>
762
+ <span class='kw'>return</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>CRL</span><span class='op'>::</span><span class='const'>SignedList</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='const'>IOHelpers</span><span class='period'>.</span><span class='id identifier rubyid_read_data'>read_data</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span> <span class='rparen'>)</span>
607
763
  <span class='kw'>end</span></pre>
608
764
  </td>
609
765
  </tr>
@@ -617,9 +773,9 @@ certificate (call cert.public_key on that object).</p>
617
773
 
618
774
 
619
775
  <div class="method_details first">
620
- <h3 class="signature first" id="issuer-instance_method">
776
+ <h3 class="signature first" id="last_update-instance_method">
621
777
 
622
- - (<tt>OpenSSL::X509::Name</tt>) <strong>issuer</strong>
778
+ - (<tt>Time</tt>) <strong>last_update</strong>
623
779
 
624
780
 
625
781
 
@@ -628,6 +784,8 @@ certificate (call cert.public_key on that object).</p>
628
784
  </h3><div class="docstring">
629
785
  <div class="discussion">
630
786
 
787
+ <p>Returns the signing time of the CRL</p>
788
+
631
789
 
632
790
  </div>
633
791
  </div>
@@ -639,9 +797,14 @@ certificate (call cert.public_key on that object).</p>
639
797
  <li>
640
798
 
641
799
 
642
- <span class='type'>(<tt>OpenSSL::X509::Name</tt>)</span>
800
+ <span class='type'>(<tt>Time</tt>)</span>
801
+
643
802
 
644
803
 
804
+ &mdash;
805
+ <div class='inline'>
806
+ <p>when the CRL was signed</p>
807
+ </div>
645
808
 
646
809
  </li>
647
810
 
@@ -653,15 +816,15 @@ certificate (call cert.public_key on that object).</p>
653
816
  <pre class="lines">
654
817
 
655
818
 
656
- 27
657
- 28
658
- 29</pre>
819
+ 53
820
+ 54
821
+ 55</pre>
659
822
  </td>
660
823
  <td>
661
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 27</span>
824
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 53</span>
662
825
 
663
- <span class='kw'>def</span> <span class='id identifier rubyid_issuer'>issuer</span>
664
- <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_issuer'>issuer</span>
826
+ <span class='kw'>def</span> <span class='id identifier rubyid_last_update'>last_update</span>
827
+ <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_last_update'>last_update</span>
665
828
  <span class='kw'>end</span></pre>
666
829
  </td>
667
830
  </tr>
@@ -669,9 +832,9 @@ certificate (call cert.public_key on that object).</p>
669
832
  </div>
670
833
 
671
834
  <div class="method_details ">
672
- <h3 class="signature " id="issuer_cn-instance_method">
835
+ <h3 class="signature " id="next_update-instance_method">
673
836
 
674
- - (<tt>String</tt>) <strong>issuer_cn</strong>
837
+ - (<tt>Time</tt>) <strong>next_update</strong>
675
838
 
676
839
 
677
840
 
@@ -680,7 +843,7 @@ certificate (call cert.public_key on that object).</p>
680
843
  </h3><div class="docstring">
681
844
  <div class="discussion">
682
845
 
683
- <p>The common name (CN) component of the issuer</p>
846
+ <p>Returns the next update time for the CRL</p>
684
847
 
685
848
 
686
849
  </div>
@@ -693,13 +856,13 @@ certificate (call cert.public_key on that object).</p>
693
856
  <li>
694
857
 
695
858
 
696
- <span class='type'>(<tt>String</tt>)</span>
859
+ <span class='type'>(<tt>Time</tt>)</span>
697
860
 
698
861
 
699
862
 
700
863
  &mdash;
701
864
  <div class='inline'>
702
- <p>The common name (CN) component of the issuer</p>
865
+ <p>when it will be updated next</p>
703
866
  </div>
704
867
 
705
868
  </li>
@@ -712,29 +875,15 @@ certificate (call cert.public_key on that object).</p>
712
875
  <pre class="lines">
713
876
 
714
877
 
715
- 32
716
- 33
717
- 34
718
- 35
719
- 36
720
- 37
721
- 38
722
- 39
723
- 40
724
- 41</pre>
878
+ 60
879
+ 61
880
+ 62</pre>
725
881
  </td>
726
882
  <td>
727
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 32</span>
728
-
729
- <span class='kw'>def</span> <span class='id identifier rubyid_issuer_cn'>issuer_cn</span>
730
- <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_issuer'>issuer</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
731
-
732
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_issuer'>issuer</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_part'>part</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_length'>length</span><span class='op'>|</span>
733
- <span class='kw'>return</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_part'>part</span><span class='period'>.</span><span class='id identifier rubyid_upcase'>upcase</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>CN</span><span class='tstring_end'>'</span></span>
734
- <span class='kw'>end</span>
883
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 60</span>
735
884
 
736
- <span class='comment'># return nil if we didn't find a CN part
737
- </span> <span class='kw'>return</span> <span class='kw'>nil</span>
885
+ <span class='kw'>def</span> <span class='id identifier rubyid_next_update'>next_update</span>
886
+ <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_next_update'>next_update</span>
738
887
  <span class='kw'>end</span></pre>
739
888
  </td>
740
889
  </tr>
@@ -742,9 +891,9 @@ certificate (call cert.public_key on that object).</p>
742
891
  </div>
743
892
 
744
893
  <div class="method_details ">
745
- <h3 class="signature " id="last_update-instance_method">
894
+ <h3 class="signature " id="revoked-instance_method">
746
895
 
747
- - (<tt>Time</tt>) <strong>last_update</strong>
896
+ - (<tt>Hash</tt>) <strong>revoked</strong>
748
897
 
749
898
 
750
899
 
@@ -753,6 +902,8 @@ certificate (call cert.public_key on that object).</p>
753
902
  </h3><div class="docstring">
754
903
  <div class="discussion">
755
904
 
905
+ <p>Hash of serial =&gt; { :time, :reason } hashes</p>
906
+
756
907
 
757
908
  </div>
758
909
  </div>
@@ -764,9 +915,14 @@ certificate (call cert.public_key on that object).</p>
764
915
  <li>
765
916
 
766
917
 
767
- <span class='type'>(<tt>Time</tt>)</span>
918
+ <span class='type'>(<tt>Hash</tt>)</span>
919
+
768
920
 
769
921
 
922
+ &mdash;
923
+ <div class='inline'>
924
+ <p>hash of serial =&gt; { :time, :reason } hashes</p>
925
+ </div>
770
926
 
771
927
  </li>
772
928
 
@@ -778,15 +934,27 @@ certificate (call cert.public_key on that object).</p>
778
934
  <pre class="lines">
779
935
 
780
936
 
781
- 44
782
- 45
783
- 46</pre>
937
+ 99
938
+ 100
939
+ 101
940
+ 102
941
+ 103
942
+ 104
943
+ 105
944
+ 106
945
+ 107</pre>
784
946
  </td>
785
947
  <td>
786
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 44</span>
948
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 99</span>
787
949
 
788
- <span class='kw'>def</span> <span class='id identifier rubyid_last_update'>last_update</span>
789
- <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_last_update'>last_update</span>
950
+ <span class='kw'>def</span> <span class='id identifier rubyid_revoked'>revoked</span>
951
+ <span class='id identifier rubyid_revoked_list'>revoked_list</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
952
+ <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_revoked'>revoked</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_revoked'>revoked</span><span class='op'>|</span>
953
+ <span class='id identifier rubyid_reason'>reason</span> <span class='op'>=</span> <span class='id identifier rubyid_get_reason'>get_reason</span><span class='lparen'>(</span><span class='id identifier rubyid_revoked'>revoked</span><span class='rparen'>)</span>
954
+ <span class='id identifier rubyid_revoked_list'>revoked_list</span><span class='lbracket'>[</span><span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_serial'>serial</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:time</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_time'>time</span><span class='comma'>,</span> <span class='symbol'>:reason</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_reason'>reason</span> <span class='rbrace'>}</span>
955
+ <span class='kw'>end</span>
956
+
957
+ <span class='id identifier rubyid_revoked_list'>revoked_list</span>
790
958
  <span class='kw'>end</span></pre>
791
959
  </td>
792
960
  </tr>
@@ -794,9 +962,9 @@ certificate (call cert.public_key on that object).</p>
794
962
  </div>
795
963
 
796
964
  <div class="method_details ">
797
- <h3 class="signature " id="next_update-instance_method">
965
+ <h3 class="signature " id="revoked?-instance_method">
798
966
 
799
- - (<tt>Time</tt>) <strong>next_update</strong>
967
+ - (<tt>Boolean</tt>) <strong>revoked?</strong>(serial)
800
968
 
801
969
 
802
970
 
@@ -809,14 +977,34 @@ certificate (call cert.public_key on that object).</p>
809
977
  </div>
810
978
  </div>
811
979
  <div class="tags">
980
+ <p class="tag_title">Parameters:</p>
981
+ <ul class="param">
982
+
983
+ <li>
984
+
985
+ <span class='name'>serial</span>
986
+
987
+
988
+ <span class='type'>(<tt>Integer</tt>)</span>
989
+
990
+
991
+
992
+ &mdash;
993
+ <div class='inline'>
994
+ <p>number</p>
995
+ </div>
996
+
997
+ </li>
812
998
 
999
+ </ul>
1000
+
813
1001
  <p class="tag_title">Returns:</p>
814
1002
  <ul class="return">
815
1003
 
816
1004
  <li>
817
1005
 
818
1006
 
819
- <span class='type'>(<tt>Time</tt>)</span>
1007
+ <span class='type'>(<tt>Boolean</tt>)</span>
820
1008
 
821
1009
 
822
1010
 
@@ -830,15 +1018,23 @@ certificate (call cert.public_key on that object).</p>
830
1018
  <pre class="lines">
831
1019
 
832
1020
 
833
- 49
834
- 50
835
- 51</pre>
1021
+ 74
1022
+ 75
1023
+ 76
1024
+ 77
1025
+ 78
1026
+ 79
1027
+ 80</pre>
836
1028
  </td>
837
1029
  <td>
838
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 49</span>
1030
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 74</span>
839
1031
 
840
- <span class='kw'>def</span> <span class='id identifier rubyid_next_update'>next_update</span>
841
- <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_next_update'>next_update</span>
1032
+ <span class='kw'>def</span> <span class='id identifier rubyid_revoked?'>revoked?</span><span class='lparen'>(</span><span class='id identifier rubyid_serial'>serial</span><span class='rparen'>)</span>
1033
+ <span class='kw'>if</span> <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_revoked'>revoked</span><span class='op'>|</span> <span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_serial'>serial</span> <span class='op'>==</span> <span class='id identifier rubyid_serial'>serial</span> <span class='rbrace'>}</span>
1034
+ <span class='kw'>true</span>
1035
+ <span class='kw'>else</span>
1036
+ <span class='kw'>false</span>
1037
+ <span class='kw'>end</span>
842
1038
  <span class='kw'>end</span></pre>
843
1039
  </td>
844
1040
  </tr>
@@ -846,9 +1042,9 @@ certificate (call cert.public_key on that object).</p>
846
1042
  </div>
847
1043
 
848
1044
  <div class="method_details ">
849
- <h3 class="signature " id="revoked-instance_method">
1045
+ <h3 class="signature " id="revoked_cert-instance_method">
850
1046
 
851
- - (<tt>Hash</tt>) <strong>revoked</strong>
1047
+ - (<tt>Hash</tt>) <strong>revoked_cert</strong>(serial)
852
1048
 
853
1049
 
854
1050
 
@@ -857,13 +1053,33 @@ certificate (call cert.public_key on that object).</p>
857
1053
  </h3><div class="docstring">
858
1054
  <div class="discussion">
859
1055
 
860
- <p>Hash of serial =&gt; { :time, :reason } hashes</p>
1056
+ <p>Hash with :time and :reason</p>
861
1057
 
862
1058
 
863
1059
  </div>
864
1060
  </div>
865
1061
  <div class="tags">
1062
+ <p class="tag_title">Parameters:</p>
1063
+ <ul class="param">
866
1064
 
1065
+ <li>
1066
+
1067
+ <span class='name'>serial</span>
1068
+
1069
+
1070
+ <span class='type'>(<tt>Integer</tt>)</span>
1071
+
1072
+
1073
+
1074
+ &mdash;
1075
+ <div class='inline'>
1076
+ <p>number</p>
1077
+ </div>
1078
+
1079
+ </li>
1080
+
1081
+ </ul>
1082
+
867
1083
  <p class="tag_title">Returns:</p>
868
1084
  <ul class="return">
869
1085
 
@@ -876,7 +1092,7 @@ certificate (call cert.public_key on that object).</p>
876
1092
 
877
1093
  &mdash;
878
1094
  <div class='inline'>
879
- <p>hash of serial =&gt; { :time, :reason } hashes</p>
1095
+ <p>hash with :time and :reason</p>
880
1096
  </div>
881
1097
 
882
1098
  </li>
@@ -889,27 +1105,27 @@ certificate (call cert.public_key on that object).</p>
889
1105
  <pre class="lines">
890
1106
 
891
1107
 
892
- 77
893
- 78
894
- 79
895
- 80
896
- 81
897
- 82
898
- 83
899
- 84
900
- 85</pre>
1108
+ 111
1109
+ 112
1110
+ 113
1111
+ 114
1112
+ 115
1113
+ 116
1114
+ 117
1115
+ 118
1116
+ 119</pre>
901
1117
  </td>
902
1118
  <td>
903
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 77</span>
904
-
905
- <span class='kw'>def</span> <span class='id identifier rubyid_revoked'>revoked</span>
906
- <span class='id identifier rubyid_revoked_list'>revoked_list</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
907
- <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_revoked'>revoked</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_revoked'>revoked</span><span class='op'>|</span>
908
- <span class='id identifier rubyid_reason'>reason</span> <span class='op'>=</span> <span class='id identifier rubyid_get_reason'>get_reason</span><span class='lparen'>(</span><span class='id identifier rubyid_revoked'>revoked</span><span class='rparen'>)</span>
909
- <span class='id identifier rubyid_revoked_list'>revoked_list</span><span class='lbracket'>[</span><span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_serial'>serial</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='symbol'>:time</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_time'>time</span><span class='comma'>,</span> <span class='symbol'>:reason</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_reason'>reason</span> <span class='rbrace'>}</span>
910
- <span class='kw'>end</span>
1119
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 111</span>
911
1120
 
912
- <span class='id identifier rubyid_revoked_list'>revoked_list</span>
1121
+ <span class='kw'>def</span> <span class='id identifier rubyid_revoked_cert'>revoked_cert</span><span class='lparen'>(</span><span class='id identifier rubyid_serial'>serial</span><span class='rparen'>)</span>
1122
+ <span class='id identifier rubyid_revoked'>revoked</span> <span class='op'>=</span> <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_revoked'>revoked</span><span class='op'>|</span> <span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_serial'>serial</span> <span class='op'>==</span> <span class='id identifier rubyid_serial'>serial</span> <span class='rbrace'>}</span>
1123
+ <span class='kw'>if</span> <span class='id identifier rubyid_revoked'>revoked</span>
1124
+ <span class='id identifier rubyid_reason'>reason</span> <span class='op'>=</span> <span class='id identifier rubyid_get_reason'>get_reason</span><span class='lparen'>(</span><span class='id identifier rubyid_revoked'>revoked</span><span class='rparen'>)</span>
1125
+ <span class='lbrace'>{</span> <span class='symbol'>:time</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_time'>time</span><span class='comma'>,</span> <span class='symbol'>:reason</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_reason'>reason</span> <span class='rbrace'>}</span>
1126
+ <span class='kw'>else</span>
1127
+ <span class='kw'>nil</span>
1128
+ <span class='kw'>end</span>
913
1129
  <span class='kw'>end</span></pre>
914
1130
  </td>
915
1131
  </tr>
@@ -917,9 +1133,9 @@ certificate (call cert.public_key on that object).</p>
917
1133
  </div>
918
1134
 
919
1135
  <div class="method_details ">
920
- <h3 class="signature " id="revoked?-instance_method">
1136
+ <h3 class="signature " id="signature_algorithm-instance_method">
921
1137
 
922
- - (<tt>Boolean</tt>) <strong>revoked?</strong>(serial)
1138
+ - (<tt>String</tt>) <strong>signature_algorithm</strong>
923
1139
 
924
1140
 
925
1141
 
@@ -932,34 +1148,14 @@ certificate (call cert.public_key on that object).</p>
932
1148
  </div>
933
1149
  </div>
934
1150
  <div class="tags">
935
- <p class="tag_title">Parameters:</p>
936
- <ul class="param">
937
-
938
- <li>
939
-
940
- <span class='name'>serial</span>
941
-
942
-
943
- <span class='type'>(<tt>Integer</tt>)</span>
944
-
945
-
946
-
947
- &mdash;
948
- <div class='inline'>
949
- <p>number</p>
950
- </div>
951
-
952
- </li>
953
1151
 
954
- </ul>
955
-
956
1152
  <p class="tag_title">Returns:</p>
957
1153
  <ul class="return">
958
1154
 
959
1155
  <li>
960
1156
 
961
1157
 
962
- <span class='type'>(<tt>Boolean</tt>)</span>
1158
+ <span class='type'>(<tt>String</tt>)</span>
963
1159
 
964
1160
 
965
1161
 
@@ -973,23 +1169,15 @@ certificate (call cert.public_key on that object).</p>
973
1169
  <pre class="lines">
974
1170
 
975
1171
 
976
- 68
977
- 69
978
- 70
979
- 71
980
- 72
981
- 73
982
- 74</pre>
1172
+ 30
1173
+ 31
1174
+ 32</pre>
983
1175
  </td>
984
1176
  <td>
985
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 68</span>
1177
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 30</span>
986
1178
 
987
- <span class='kw'>def</span> <span class='id identifier rubyid_revoked?'>revoked?</span><span class='lparen'>(</span><span class='id identifier rubyid_serial'>serial</span><span class='rparen'>)</span>
988
- <span class='kw'>if</span> <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_revoked'>revoked</span><span class='op'>|</span> <span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_serial'>serial</span> <span class='op'>==</span> <span class='id identifier rubyid_serial'>serial</span> <span class='rbrace'>}</span>
989
- <span class='kw'>true</span>
990
- <span class='kw'>else</span>
991
- <span class='kw'>false</span>
992
- <span class='kw'>end</span>
1179
+ <span class='kw'>def</span> <span class='id identifier rubyid_signature_algorithm'>signature_algorithm</span>
1180
+ <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_signature_algorithm'>signature_algorithm</span>
993
1181
  <span class='kw'>end</span></pre>
994
1182
  </td>
995
1183
  </tr>
@@ -997,9 +1185,9 @@ certificate (call cert.public_key on that object).</p>
997
1185
  </div>
998
1186
 
999
1187
  <div class="method_details ">
1000
- <h3 class="signature " id="revoked_cert-instance_method">
1188
+ <h3 class="signature " id="to_der-instance_method">
1001
1189
 
1002
- - (<tt>Hash</tt>) <strong>revoked_cert</strong>(serial)
1190
+ - (<tt>String</tt>) <strong>to_der</strong>
1003
1191
 
1004
1192
 
1005
1193
 
@@ -1008,46 +1196,89 @@ certificate (call cert.public_key on that object).</p>
1008
1196
  </h3><div class="docstring">
1009
1197
  <div class="discussion">
1010
1198
 
1011
- <p>Hash with :time and :reason</p>
1199
+ <p>Returns the CRL in DER format</p>
1012
1200
 
1013
1201
 
1014
1202
  </div>
1015
1203
  </div>
1016
1204
  <div class="tags">
1017
- <p class="tag_title">Parameters:</p>
1018
- <ul class="param">
1205
+
1206
+ <p class="tag_title">Returns:</p>
1207
+ <ul class="return">
1019
1208
 
1020
1209
  <li>
1021
1210
 
1022
- <span class='name'>serial</span>
1023
-
1024
1211
 
1025
- <span class='type'>(<tt>Integer</tt>)</span>
1212
+ <span class='type'>(<tt>String</tt>)</span>
1026
1213
 
1027
1214
 
1028
1215
 
1029
1216
  &mdash;
1030
1217
  <div class='inline'>
1031
- <p>number</p>
1218
+ <p>the CRL in DER format</p>
1032
1219
  </div>
1033
1220
 
1034
1221
  </li>
1035
1222
 
1036
1223
  </ul>
1037
1224
 
1225
+ </div><table class="source_code">
1226
+ <tr>
1227
+ <td>
1228
+ <pre class="lines">
1229
+
1230
+
1231
+ 94
1232
+ 95
1233
+ 96</pre>
1234
+ </td>
1235
+ <td>
1236
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 94</span>
1237
+
1238
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_der'>to_der</span>
1239
+ <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span>
1240
+ <span class='kw'>end</span></pre>
1241
+ </td>
1242
+ </tr>
1243
+ </table>
1244
+ </div>
1245
+
1246
+ <div class="method_details ">
1247
+ <h3 class="signature " id="to_pem-instance_method">
1248
+
1249
+ - (<tt>String</tt>) <strong>to_pem</strong>
1250
+
1251
+
1252
+
1253
+ <span class="aliases">Also known as:
1254
+ <span class="names"><span id='to_s-instance_method'>to_s</span></span>
1255
+ </span>
1256
+
1257
+
1258
+
1259
+ </h3><div class="docstring">
1260
+ <div class="discussion">
1261
+
1262
+ <p>Returns the CRL in PEM format</p>
1263
+
1264
+
1265
+ </div>
1266
+ </div>
1267
+ <div class="tags">
1268
+
1038
1269
  <p class="tag_title">Returns:</p>
1039
1270
  <ul class="return">
1040
1271
 
1041
1272
  <li>
1042
1273
 
1043
1274
 
1044
- <span class='type'>(<tt>Hash</tt>)</span>
1275
+ <span class='type'>(<tt>String</tt>)</span>
1045
1276
 
1046
1277
 
1047
1278
 
1048
1279
  &mdash;
1049
1280
  <div class='inline'>
1050
- <p>hash with :time and :reason</p>
1281
+ <p>the CRL in PEM format</p>
1051
1282
  </div>
1052
1283
 
1053
1284
  </li>
@@ -1060,27 +1291,15 @@ certificate (call cert.public_key on that object).</p>
1060
1291
  <pre class="lines">
1061
1292
 
1062
1293
 
1063
- 89
1064
- 90
1065
- 91
1066
- 92
1067
- 93
1068
- 94
1069
- 95
1070
- 96
1071
- 97</pre>
1294
+ 85
1295
+ 86
1296
+ 87</pre>
1072
1297
  </td>
1073
1298
  <td>
1074
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 89</span>
1299
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 85</span>
1075
1300
 
1076
- <span class='kw'>def</span> <span class='id identifier rubyid_revoked_cert'>revoked_cert</span><span class='lparen'>(</span><span class='id identifier rubyid_serial'>serial</span><span class='rparen'>)</span>
1077
- <span class='id identifier rubyid_revoked'>revoked</span> <span class='op'>=</span> <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_revoked'>revoked</span><span class='op'>|</span> <span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_serial'>serial</span> <span class='op'>==</span> <span class='id identifier rubyid_serial'>serial</span> <span class='rbrace'>}</span>
1078
- <span class='kw'>if</span> <span class='id identifier rubyid_revoked'>revoked</span>
1079
- <span class='id identifier rubyid_reason'>reason</span> <span class='op'>=</span> <span class='id identifier rubyid_get_reason'>get_reason</span><span class='lparen'>(</span><span class='id identifier rubyid_revoked'>revoked</span><span class='rparen'>)</span>
1080
- <span class='lbrace'>{</span> <span class='symbol'>:time</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_revoked'>revoked</span><span class='period'>.</span><span class='id identifier rubyid_time'>time</span><span class='comma'>,</span> <span class='symbol'>:reason</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_reason'>reason</span> <span class='rbrace'>}</span>
1081
- <span class='kw'>else</span>
1082
- <span class='kw'>nil</span>
1083
- <span class='kw'>end</span>
1301
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_pem'>to_pem</span>
1302
+ <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span>
1084
1303
  <span class='kw'>end</span></pre>
1085
1304
  </td>
1086
1305
  </tr>
@@ -1088,9 +1307,9 @@ certificate (call cert.public_key on that object).</p>
1088
1307
  </div>
1089
1308
 
1090
1309
  <div class="method_details ">
1091
- <h3 class="signature " id="signature_algorithm-instance_method">
1310
+ <h3 class="signature " id="verify-instance_method">
1092
1311
 
1093
- - (<tt>String</tt>) <strong>signature_algorithm</strong>
1312
+ - (<tt>Boolean</tt>) <strong>verify</strong>(public_key)
1094
1313
 
1095
1314
 
1096
1315
 
@@ -1099,18 +1318,36 @@ certificate (call cert.public_key on that object).</p>
1099
1318
  </h3><div class="docstring">
1100
1319
  <div class="discussion">
1101
1320
 
1321
+ <p>Pass a public key to verify that the CRL is signed by a specific
1322
+ certificate (call cert.public_key on that object)</p>
1323
+
1102
1324
 
1103
1325
  </div>
1104
1326
  </div>
1105
1327
  <div class="tags">
1328
+ <p class="tag_title">Parameters:</p>
1329
+ <ul class="param">
1330
+
1331
+ <li>
1332
+
1333
+ <span class='name'>public_key</span>
1334
+
1335
+
1336
+ <span class='type'>(<tt>OpenSSL::PKey::PKey</tt>)</span>
1337
+
1338
+
1339
+
1340
+ </li>
1106
1341
 
1342
+ </ul>
1343
+
1107
1344
  <p class="tag_title">Returns:</p>
1108
1345
  <ul class="return">
1109
1346
 
1110
1347
  <li>
1111
1348
 
1112
1349
 
1113
- <span class='type'>(<tt>String</tt>)</span>
1350
+ <span class='type'>(<tt>Boolean</tt>)</span>
1114
1351
 
1115
1352
 
1116
1353
 
@@ -1124,15 +1361,15 @@ certificate (call cert.public_key on that object).</p>
1124
1361
  <pre class="lines">
1125
1362
 
1126
1363
 
1127
- 54
1128
- 55
1129
- 56</pre>
1364
+ 68
1365
+ 69
1366
+ 70</pre>
1130
1367
  </td>
1131
1368
  <td>
1132
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 54</span>
1369
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 68</span>
1133
1370
 
1134
- <span class='kw'>def</span> <span class='id identifier rubyid_signature_algorithm'>signature_algorithm</span>
1135
- <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_signature_algorithm'>signature_algorithm</span>
1371
+ <span class='kw'>def</span> <span class='id identifier rubyid_verify'>verify</span><span class='lparen'>(</span><span class='id identifier rubyid_public_key'>public_key</span><span class='rparen'>)</span>
1372
+ <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_verify'>verify</span><span class='lparen'>(</span><span class='id identifier rubyid_public_key'>public_key</span><span class='rparen'>)</span>
1136
1373
  <span class='kw'>end</span></pre>
1137
1374
  </td>
1138
1375
  </tr>
@@ -1140,9 +1377,9 @@ certificate (call cert.public_key on that object).</p>
1140
1377
  </div>
1141
1378
 
1142
1379
  <div class="method_details ">
1143
- <h3 class="signature " id="verify-instance_method">
1380
+ <h3 class="signature " id="write_der-instance_method">
1144
1381
 
1145
- - (<tt>Boolean</tt>) <strong>verify</strong>(public_key)
1382
+ - (<tt>Object</tt>) <strong>write_der</strong>(filename_or_io)
1146
1383
 
1147
1384
 
1148
1385
 
@@ -1151,8 +1388,7 @@ certificate (call cert.public_key on that object).</p>
1151
1388
  </h3><div class="docstring">
1152
1389
  <div class="discussion">
1153
1390
 
1154
- <p>Pass a public key to verify that the CRL is signed by a specific
1155
- certificate (call cert.public_key on that object)</p>
1391
+ <p>Writes the CRL into the PEM format</p>
1156
1392
 
1157
1393
 
1158
1394
  </div>
@@ -1163,46 +1399,101 @@ certificate (call cert.public_key on that object)</p>
1163
1399
 
1164
1400
  <li>
1165
1401
 
1166
- <span class='name'>public_key</span>
1402
+ <span class='name'>filename_or_io</span>
1167
1403
 
1168
1404
 
1169
- <span class='type'>(<tt>OpenSSL::PKey::PKey</tt>)</span>
1405
+ <span class='type'>(<tt>String</tt>, <tt>#write</tt>)</span>
1406
+
1170
1407
 
1171
1408
 
1409
+ &mdash;
1410
+ <div class='inline'>
1411
+ <p>Either a string of the path for the file that you'd like to write, or an
1412
+ IO-like object.</p>
1413
+ </div>
1172
1414
 
1173
1415
  </li>
1174
1416
 
1175
1417
  </ul>
1176
1418
 
1177
- <p class="tag_title">Returns:</p>
1178
- <ul class="return">
1419
+
1420
+ </div><table class="source_code">
1421
+ <tr>
1422
+ <td>
1423
+ <pre class="lines">
1424
+
1425
+
1426
+ 46
1427
+ 47
1428
+ 48</pre>
1429
+ </td>
1430
+ <td>
1431
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 46</span>
1432
+
1433
+ <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>
1434
+ <span class='id identifier rubyid_write_data'>write_data</span><span class='lparen'>(</span><span class='id identifier rubyid_filename_or_io'>filename_or_io</span><span class='comma'>,</span> <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span><span class='rparen'>)</span>
1435
+ <span class='kw'>end</span></pre>
1436
+ </td>
1437
+ </tr>
1438
+ </table>
1439
+ </div>
1440
+
1441
+ <div class="method_details ">
1442
+ <h3 class="signature " id="write_pem-instance_method">
1443
+
1444
+ - (<tt>Object</tt>) <strong>write_pem</strong>(filename_or_io)
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+ </h3><div class="docstring">
1451
+ <div class="discussion">
1452
+
1453
+ <p>Writes the CRL into the PEM format</p>
1454
+
1455
+
1456
+ </div>
1457
+ </div>
1458
+ <div class="tags">
1459
+ <p class="tag_title">Parameters:</p>
1460
+ <ul class="param">
1179
1461
 
1180
1462
  <li>
1181
1463
 
1464
+ <span class='name'>filename_or_io</span>
1182
1465
 
1183
- <span class='type'>(<tt>Boolean</tt>)</span>
1184
1466
 
1467
+ <span class='type'>(<tt>String</tt>, <tt>#write</tt>)</span>
1185
1468
 
1186
1469
 
1470
+
1471
+ &mdash;
1472
+ <div class='inline'>
1473
+ <p>Either a string of the path for the file that you'd like to write, or an
1474
+ IO-like object.</p>
1475
+ </div>
1476
+
1187
1477
  </li>
1188
1478
 
1189
1479
  </ul>
1190
1480
 
1481
+
1191
1482
  </div><table class="source_code">
1192
1483
  <tr>
1193
1484
  <td>
1194
1485
  <pre class="lines">
1195
1486
 
1196
1487
 
1197
- 62
1198
- 63
1199
- 64</pre>
1488
+ 38
1489
+ 39
1490
+ 40</pre>
1200
1491
  </td>
1201
1492
  <td>
1202
- <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 62</span>
1493
+ <pre class="code"><span class="info file"># File 'lib/r509/crl.rb', line 38</span>
1203
1494
 
1204
- <span class='kw'>def</span> <span class='id identifier rubyid_verify'>verify</span><span class='lparen'>(</span><span class='id identifier rubyid_public_key'>public_key</span><span class='rparen'>)</span>
1205
- <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_verify'>verify</span><span class='lparen'>(</span><span class='id identifier rubyid_public_key'>public_key</span><span class='rparen'>)</span>
1495
+ <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>
1496
+ <span class='id identifier rubyid_write_data'>write_data</span><span class='lparen'>(</span><span class='id identifier rubyid_filename_or_io'>filename_or_io</span><span class='comma'>,</span> <span class='ivar'>@crl</span><span class='period'>.</span><span class='id identifier rubyid_to_pem'>to_pem</span><span class='rparen'>)</span>
1206
1497
  <span class='kw'>end</span></pre>
1207
1498
  </td>
1208
1499
  </tr>
@@ -1214,9 +1505,9 @@ certificate (call cert.public_key on that object)</p>
1214
1505
  </div>
1215
1506
 
1216
1507
  <div id="footer">
1217
- Generated on Thu Nov 8 14:19:25 2012 by
1508
+ Generated on Tue Apr 16 10:49:56 2013 by
1218
1509
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1219
- 0.8.2.1 (ruby-1.9.3).
1510
+ 0.8.5 (ruby-1.9.3).
1220
1511
  </div>
1221
1512
 
1222
1513
  </body>