r509-validity-cadb 0.0.1

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.
@@ -0,0 +1,140 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: R509::Validity::CADB
8
+
9
+ &mdash; Documentation by YARD 0.8.7.6
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" 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#!R509/Validity/CADB.html";
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="../Validity.html" title="R509::Validity (module)">Validity</a></span></span>
36
+ &raquo;
37
+ <span class="title">CADB</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Module: R509::Validity::CADB
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+ <dt class="r1 last">Defined in:</dt>
82
+ <dd class="r1 last">lib/r509/validity/cadb/checker.rb<span class="defines">,<br />
83
+ lib/r509/validity/cadb/version.rb,<br /> lib/r509/validity/cadb.rb</span>
84
+ </dd>
85
+
86
+ </dl>
87
+ <div class="clear"></div>
88
+
89
+ <h2>Overview</h2><div class="docstring">
90
+ <div class="discussion">
91
+
92
+ <p>container module for the CADB checker</p>
93
+
94
+
95
+ </div>
96
+ </div>
97
+ <div class="tags">
98
+
99
+
100
+ </div><h2>Defined Under Namespace</h2>
101
+ <p class="children">
102
+
103
+
104
+
105
+
106
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="CADB/Checker.html" title="R509::Validity::CADB::Checker (class)">Checker</a></span>
107
+
108
+
109
+ </p>
110
+
111
+ <h2>Constant Summary</h2>
112
+
113
+ <dl class="constants">
114
+
115
+ <dt id="VERSION-constant" class="">VERSION =
116
+
117
+ </dt>
118
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.0.1</span><span class='tstring_end'>&quot;</span></span></pre></dd>
119
+
120
+ </dl>
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+ </div>
132
+
133
+ <div id="footer">
134
+ Generated on Tue Nov 11 07:52:49 2014 by
135
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
136
+ 0.8.7.6 (ruby-2.0.0).
137
+ </div>
138
+
139
+ </body>
140
+ </html>
@@ -0,0 +1,619 @@
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::Validity::CADB::Checker
8
+
9
+ &mdash; Documentation by YARD 0.8.7.6
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../../css/common.css" type="text/css" 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#!R509/Validity/CADB/Checker.html";
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="../../Validity.html" title="R509::Validity (module)">Validity</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../CADB.html" title="R509::Validity::CADB (module)">CADB</a></span></span>
36
+ &raquo;
37
+ <span class="title">Checker</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::Validity::CADB::Checker
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">R509::Validity::Checker</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">R509::Validity::Checker</li>
82
+
83
+ <li class="next">R509::Validity::CADB::Checker</li>
84
+
85
+ </ul>
86
+ <a href="#" class="inheritanceTree">show all</a>
87
+
88
+ </dd>
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dt class="r2">Includes:</dt>
96
+ <dd class="r2">Dependo::Mixin</dd>
97
+
98
+
99
+
100
+
101
+
102
+ <dt class="r1 last">Defined in:</dt>
103
+ <dd class="r1 last">lib/r509/validity/cadb/checker.rb</dd>
104
+
105
+ </dl>
106
+ <div class="clear"></div>
107
+
108
+ <h2>Overview</h2><div class="docstring">
109
+ <div class="discussion">
110
+
111
+ <p>implements the R509::Validity interface for OpenSSL ca database (index)
112
+ checking</p>
113
+
114
+
115
+ </div>
116
+ </div>
117
+ <div class="tags">
118
+
119
+
120
+ </div>
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+ <h2>
129
+ Instance Method Summary
130
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
131
+ </h2>
132
+
133
+ <ul class="summary">
134
+
135
+ <li class="public ">
136
+ <span class="summary_signature">
137
+
138
+ <a href="#check-instance_method" title="#check (instance method)">- (R509::Validity::Status) <strong>check</strong>(issuer, serial) </a>
139
+
140
+
141
+
142
+ </span>
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+ <span class="summary_desc"><div class='inline'></div></span>
153
+
154
+ </li>
155
+
156
+
157
+ <li class="public ">
158
+ <span class="summary_signature">
159
+
160
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Checker) <strong>initialize</strong>(cadb_file_path) </a>
161
+
162
+
163
+
164
+ </span>
165
+
166
+
167
+ <span class="note title constructor">constructor</span>
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+ <span class="summary_desc"><div class='inline'>
177
+ <p>A new instance of Checker.</p>
178
+ </div></span>
179
+
180
+ </li>
181
+
182
+
183
+ <li class="public ">
184
+ <span class="summary_signature">
185
+
186
+ <a href="#is_available%3F-instance_method" title="#is_available? (instance method)">- (Boolean) <strong>is_available?</strong> </a>
187
+
188
+
189
+
190
+ </span>
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+ <span class="summary_desc"><div class='inline'></div></span>
201
+
202
+ </li>
203
+
204
+
205
+ <li class="public ">
206
+ <span class="summary_signature">
207
+
208
+ <a href="#load_db-instance_method" title="#load_db (instance method)">- (Object) <strong>load_db</strong> </a>
209
+
210
+
211
+
212
+ </span>
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+ <span class="summary_desc"><div class='inline'>
223
+ <p>openssl ca database format: <a
224
+ href="http://pki-tutorial.readthedocs.org/en/latest/cadb.html">pki-tutorial.readthedocs.org/en/latest/cadb.html</a>
225
+ this can get memory intensive so we don&#39;t store fields we don&#39;t
226
+ need.</p>
227
+ </div></span>
228
+
229
+ </li>
230
+
231
+
232
+ <li class="public ">
233
+ <span class="summary_signature">
234
+
235
+ <a href="#parse_time-instance_method" title="#parse_time (instance method)">- (Object) <strong>parse_time</strong>(time_string) </a>
236
+
237
+
238
+
239
+ </span>
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+ <span class="summary_desc"><div class='inline'>
250
+ <p>parse OpenSSL CA DB format dates into epoch.</p>
251
+ </div></span>
252
+
253
+ </li>
254
+
255
+
256
+ </ul>
257
+
258
+
259
+
260
+
261
+ <div id="constructor_details" class="method_details_list">
262
+ <h2>Constructor Details</h2>
263
+
264
+ <div class="method_details first">
265
+ <h3 class="signature first" id="initialize-instance_method">
266
+
267
+ - (<tt><span class='object_link'><a href="" title="R509::Validity::CADB::Checker (class)">Checker</a></span></tt>) <strong>initialize</strong>(cadb_file_path)
268
+
269
+
270
+
271
+
272
+
273
+ </h3><div class="docstring">
274
+ <div class="discussion">
275
+
276
+ <p>Returns a new instance of Checker</p>
277
+
278
+
279
+ </div>
280
+ </div>
281
+ <div class="tags">
282
+
283
+
284
+ </div><table class="source_code">
285
+ <tr>
286
+ <td>
287
+ <pre class="lines">
288
+
289
+
290
+ 12
291
+ 13
292
+ 14
293
+ 15
294
+ 16
295
+ 17
296
+ 18
297
+ 19
298
+ 20
299
+ 21
300
+ 22
301
+ 23
302
+ 24</pre>
303
+ </td>
304
+ <td>
305
+ <pre class="code"><span class="info file"># File 'lib/r509/validity/cadb/checker.rb', line 12</span>
306
+
307
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_cadb_file_path'>cadb_file_path</span><span class='rparen'>)</span>
308
+ <span class='ivar'>@cadb_file</span> <span class='op'>=</span> <span class='id identifier rubyid_cadb_file_path'>cadb_file_path</span>
309
+ <span class='id identifier rubyid_load_db'>load_db</span>
310
+
311
+ <span class='ivar'>@scheduler</span> <span class='op'>=</span> <span class='const'>Rufus</span><span class='op'>::</span><span class='const'>Scheduler</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
312
+
313
+ <span class='ivar'>@scheduler</span><span class='period'>.</span><span class='id identifier rubyid_every'>every</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>10s</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>do</span>
314
+ <span class='kw'>if</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_stat'>stat</span><span class='lparen'>(</span><span class='ivar'>@cadb_file</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_mtime'>mtime</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>&gt;</span> <span class='ivar'>@cadb_last_refresh</span>
315
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Change detected in &#39;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@cadb_file</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39;, reloading.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
316
+ <span class='id identifier rubyid_load_db'>load_db</span>
317
+ <span class='kw'>end</span>
318
+ <span class='kw'>end</span>
319
+ <span class='kw'>end</span></pre>
320
+ </td>
321
+ </tr>
322
+ </table>
323
+ </div>
324
+
325
+ </div>
326
+
327
+
328
+ <div id="instance_method_details" class="method_details_list">
329
+ <h2>Instance Method Details</h2>
330
+
331
+
332
+ <div class="method_details first">
333
+ <h3 class="signature first" id="check-instance_method">
334
+
335
+ - (<tt>R509::Validity::Status</tt>) <strong>check</strong>(issuer, serial)
336
+
337
+
338
+
339
+
340
+
341
+ </h3><div class="docstring">
342
+ <div class="discussion">
343
+
344
+
345
+ </div>
346
+ </div>
347
+ <div class="tags">
348
+
349
+ <p class="tag_title">Returns:</p>
350
+ <ul class="return">
351
+
352
+ <li>
353
+
354
+
355
+ <span class='type'>(<tt>R509::Validity::Status</tt>)</span>
356
+
357
+
358
+
359
+ </li>
360
+
361
+ </ul>
362
+ <p class="tag_title">Raises:</p>
363
+ <ul class="raise">
364
+
365
+ <li>
366
+
367
+
368
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
369
+
370
+
371
+
372
+ </li>
373
+
374
+ </ul>
375
+
376
+ </div><table class="source_code">
377
+ <tr>
378
+ <td>
379
+ <pre class="lines">
380
+
381
+
382
+ 27
383
+ 28
384
+ 29
385
+ 30
386
+ 31
387
+ 32
388
+ 33
389
+ 34
390
+ 35
391
+ 36
392
+ 37
393
+ 38
394
+ 39
395
+ 40
396
+ 41
397
+ 42
398
+ 43
399
+ 44
400
+ 45
401
+ 46
402
+ 47</pre>
403
+ </td>
404
+ <td>
405
+ <pre class="code"><span class="info file"># File 'lib/r509/validity/cadb/checker.rb', line 27</span>
406
+
407
+ <span class='kw'>def</span> <span class='id identifier rubyid_check'>check</span><span class='lparen'>(</span><span class='id identifier rubyid_issuer'>issuer</span><span class='comma'>,</span><span class='id identifier rubyid_serial'>serial</span><span class='rparen'>)</span>
408
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Serial must be provided</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_serial'>serial</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
409
+
410
+ <span class='id identifier rubyid_cert_data'>cert_data</span> <span class='op'>=</span> <span class='ivar'>@cadb</span><span class='lbracket'>[</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>
411
+ <span class='kw'>if</span> <span class='id identifier rubyid_cert_data'>cert_data</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
412
+ <span class='kw'>return</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>Status</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='label'>status:</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>UNKNOWN</span><span class='rparen'>)</span>
413
+ <span class='kw'>end</span>
414
+
415
+ <span class='kw'>case</span> <span class='id identifier rubyid_cert_data'>cert_data</span><span class='lbracket'>[</span><span class='symbol'>:status</span><span class='rbracket'>]</span>
416
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>R</span><span class='tstring_end'>&#39;</span></span>
417
+ <span class='kw'>return</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>Status</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span>
418
+ <span class='label'>status:</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>REVOKED</span><span class='comma'>,</span>
419
+ <span class='label'>revocation_time:</span> <span class='id identifier rubyid_cert_data'>cert_data</span><span class='lbracket'>[</span><span class='symbol'>:revocation_date</span><span class='rbracket'>]</span><span class='comma'>,</span>
420
+ <span class='label'>revocation_reason:</span> <span class='id identifier rubyid_cert_data'>cert_data</span><span class='lbracket'>[</span><span class='symbol'>:revocation_reason</span><span class='rbracket'>]</span>
421
+ <span class='rparen'>)</span>
422
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>V</span><span class='tstring_end'>&#39;</span></span>
423
+ <span class='kw'>return</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>Status</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:status</span> <span class='op'>=&gt;</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>VALID</span><span class='rparen'>)</span>
424
+ <span class='kw'>else</span>
425
+ <span class='kw'>return</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>Status</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='label'>status:</span> <span class='const'>R509</span><span class='op'>::</span><span class='const'>Validity</span><span class='op'>::</span><span class='const'>UNKNOWN</span><span class='rparen'>)</span>
426
+ <span class='kw'>end</span>
427
+ <span class='kw'>end</span></pre>
428
+ </td>
429
+ </tr>
430
+ </table>
431
+ </div>
432
+
433
+ <div class="method_details ">
434
+ <h3 class="signature " id="is_available?-instance_method">
435
+
436
+ - (<tt>Boolean</tt>) <strong>is_available?</strong>
437
+
438
+
439
+
440
+
441
+
442
+ </h3><div class="docstring">
443
+ <div class="discussion">
444
+
445
+
446
+ </div>
447
+ </div>
448
+ <div class="tags">
449
+
450
+ <p class="tag_title">Returns:</p>
451
+ <ul class="return">
452
+
453
+ <li>
454
+
455
+
456
+ <span class='type'>(<tt>Boolean</tt>)</span>
457
+
458
+
459
+
460
+ </li>
461
+
462
+ </ul>
463
+
464
+ </div><table class="source_code">
465
+ <tr>
466
+ <td>
467
+ <pre class="lines">
468
+
469
+
470
+ 79
471
+ 80
472
+ 81</pre>
473
+ </td>
474
+ <td>
475
+ <pre class="code"><span class="info file"># File 'lib/r509/validity/cadb/checker.rb', line 79</span>
476
+
477
+ <span class='kw'>def</span> <span class='id identifier rubyid_is_available?'>is_available?</span>
478
+ <span class='kw'>true</span>
479
+ <span class='kw'>end</span></pre>
480
+ </td>
481
+ </tr>
482
+ </table>
483
+ </div>
484
+
485
+ <div class="method_details ">
486
+ <h3 class="signature " id="load_db-instance_method">
487
+
488
+ - (<tt>Object</tt>) <strong>load_db</strong>
489
+
490
+
491
+
492
+
493
+
494
+ </h3><div class="docstring">
495
+ <div class="discussion">
496
+
497
+ <p>openssl ca database format: <a
498
+ href="http://pki-tutorial.readthedocs.org/en/latest/cadb.html">pki-tutorial.readthedocs.org/en/latest/cadb.html</a>
499
+ this can get memory intensive so we don&#39;t store fields we don&#39;t
500
+ need.</p>
501
+
502
+
503
+ </div>
504
+ </div>
505
+ <div class="tags">
506
+
507
+
508
+ </div><table class="source_code">
509
+ <tr>
510
+ <td>
511
+ <pre class="lines">
512
+
513
+
514
+ 51
515
+ 52
516
+ 53
517
+ 54
518
+ 55
519
+ 56
520
+ 57
521
+ 58
522
+ 59
523
+ 60
524
+ 61
525
+ 62
526
+ 63
527
+ 64
528
+ 65
529
+ 66
530
+ 67
531
+ 68
532
+ 69
533
+ 70
534
+ 71
535
+ 72</pre>
536
+ </td>
537
+ <td>
538
+ <pre class="code"><span class="info file"># File 'lib/r509/validity/cadb/checker.rb', line 51</span>
539
+
540
+ <span class='kw'>def</span> <span class='id identifier rubyid_load_db'>load_db</span>
541
+ <span class='ivar'>@cadb</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
542
+ <span class='ivar'>@cadb_last_refresh</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_stat'>stat</span><span class='lparen'>(</span><span class='ivar'>@cadb_file</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_mtime'>mtime</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
543
+
544
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='ivar'>@cadb_file</span><span class='rparen'>)</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_line'>line</span><span class='op'>|</span>
545
+ <span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='id identifier rubyid_expiration_date'>expiration_date</span><span class='comma'>,</span> <span class='id identifier rubyid_revocation_info'>revocation_info</span><span class='comma'>,</span> <span class='id identifier rubyid_serial'>serial</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span> <span class='op'>=</span> <span class='id identifier rubyid_line'>line</span><span class='period'>.</span><span class='id identifier rubyid_chomp'>chomp</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\t</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
546
+ <span class='id identifier rubyid_serial'>serial</span> <span class='op'>=</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='lparen'>(</span><span class='int'>16</span><span class='rparen'>)</span> <span class='comment'># hex to decimal
547
+ </span>
548
+ <span class='ivar'>@cadb</span><span class='lbracket'>[</span><span class='id identifier rubyid_serial'>serial</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbrace'>{</span>
549
+ <span class='label'>status:</span> <span class='id identifier rubyid_status'>status</span><span class='comma'>,</span>
550
+ <span class='label'>expiration_date:</span> <span class='id identifier rubyid_parse_time'>parse_time</span><span class='lparen'>(</span><span class='id identifier rubyid_expiration_date'>expiration_date</span><span class='rparen'>)</span>
551
+ <span class='rbrace'>}</span>
552
+ <span class='kw'>unless</span> <span class='id identifier rubyid_revocation_info'>revocation_info</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
553
+ <span class='comment'># revocation_info field (if not blank) format is: YYMMDDHHMMSSZ[,reason]
554
+ </span> <span class='id identifier rubyid_revocation_date'>revocation_date</span><span class='comma'>,</span> <span class='id identifier rubyid_reason'>reason</span> <span class='op'>=</span> <span class='id identifier rubyid_revocation_info'>revocation_info</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>,</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
555
+ <span class='id identifier rubyid_reason'>reason</span> <span class='op'>=</span> <span class='id identifier rubyid_reason'>reason</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>OCSP</span><span class='op'>::</span><span class='const'>REVOKED_STATUS_NOSTATUS</span> <span class='op'>:</span> <span class='id identifier rubyid_reason'>reason</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
556
+
557
+ <span class='ivar'>@cadb</span><span class='lbracket'>[</span><span class='id identifier rubyid_serial'>serial</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:revocation_date</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_time'>parse_time</span><span class='lparen'>(</span><span class='id identifier rubyid_revocation_date'>revocation_date</span><span class='rparen'>)</span>
558
+ <span class='ivar'>@cadb</span><span class='lbracket'>[</span><span class='id identifier rubyid_serial'>serial</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='symbol'>:revocation_reason</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_reason'>reason</span>
559
+ <span class='kw'>end</span>
560
+ <span class='kw'>end</span>
561
+ <span class='kw'>end</span></pre>
562
+ </td>
563
+ </tr>
564
+ </table>
565
+ </div>
566
+
567
+ <div class="method_details ">
568
+ <h3 class="signature " id="parse_time-instance_method">
569
+
570
+ - (<tt>Object</tt>) <strong>parse_time</strong>(time_string)
571
+
572
+
573
+
574
+
575
+
576
+ </h3><div class="docstring">
577
+ <div class="discussion">
578
+
579
+ <p>parse OpenSSL CA DB format dates into epoch. format: YYMMDDHHMMSSZ</p>
580
+
581
+
582
+ </div>
583
+ </div>
584
+ <div class="tags">
585
+
586
+
587
+ </div><table class="source_code">
588
+ <tr>
589
+ <td>
590
+ <pre class="lines">
591
+
592
+
593
+ 75
594
+ 76
595
+ 77</pre>
596
+ </td>
597
+ <td>
598
+ <pre class="code"><span class="info file"># File 'lib/r509/validity/cadb/checker.rb', line 75</span>
599
+
600
+ <span class='kw'>def</span> <span class='id identifier rubyid_parse_time'>parse_time</span><span class='lparen'>(</span><span class='id identifier rubyid_time_string'>time_string</span><span class='rparen'>)</span>
601
+ <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_time_string'>time_string</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>%y%m%d%H%M%S%Z</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
602
+ <span class='kw'>end</span></pre>
603
+ </td>
604
+ </tr>
605
+ </table>
606
+ </div>
607
+
608
+ </div>
609
+
610
+ </div>
611
+
612
+ <div id="footer">
613
+ Generated on Tue Nov 11 07:52:49 2014 by
614
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
615
+ 0.8.7.6 (ruby-2.0.0).
616
+ </div>
617
+
618
+ </body>
619
+ </html>