blackbox 3.2.0 → 3.3.0

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.
@@ -115,7 +115,7 @@
115
115
  <dt id="VERSION-constant" class="">VERSION =
116
116
 
117
117
  </dt>
118
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>3.2.0</span><span class='tstring_end'>&#39;</span></span></pre></dd>
118
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>3.3.0</span><span class='tstring_end'>&#39;</span></span></pre></dd>
119
119
 
120
120
  </dl>
121
121
 
@@ -131,7 +131,7 @@
131
131
  </div>
132
132
 
133
133
  <div id="footer">
134
- Generated on Mon Jun 13 02:13:50 2016 by
134
+ Generated on Sat Jul 30 17:08:30 2016 by
135
135
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
136
136
  0.8.7.6 (ruby-2.3.1).
137
137
  </div>
@@ -95,7 +95,17 @@
95
95
  <div class="tags">
96
96
 
97
97
 
98
- </div>
98
+ </div><h2>Defined Under Namespace</h2>
99
+ <p class="children">
100
+
101
+
102
+
103
+
104
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Crypto/ControlToken.html" title="BB::Crypto::ControlToken (class)">ControlToken</a></span>
105
+
106
+
107
+ </p>
108
+
99
109
 
100
110
 
101
111
 
@@ -379,7 +389,6 @@
379
389
  <pre class="lines">
380
390
 
381
391
 
382
- 37
383
392
  38
384
393
  39
385
394
  40
@@ -390,10 +399,11 @@
390
399
  45
391
400
  46
392
401
  47
393
- 48</pre>
402
+ 48
403
+ 49</pre>
394
404
  </td>
395
405
  <td>
396
- <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 37</span>
406
+ <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 38</span>
397
407
 
398
408
  <span class='kw'>def</span> <span class='id identifier rubyid_decrypt'>decrypt</span><span class='lparen'>(</span><span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>aes-256-cbc</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
399
409
  <span class='id identifier rubyid_cipher'>cipher</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>Cipher</span><span class='op'>::</span><span class='const'>Cipher</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher_type'>cipher_type</span><span class='rparen'>)</span>
@@ -528,12 +538,12 @@
528
538
  <pre class="lines">
529
539
 
530
540
 
531
- 69
532
541
  70
533
- 71</pre>
542
+ 71
543
+ 72</pre>
534
544
  </td>
535
545
  <td>
536
- <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 69</span>
546
+ <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 70</span>
537
547
 
538
548
  <span class='kw'>def</span> <span class='id identifier rubyid_decrypt_base64'>decrypt_base64</span><span class='lparen'>(</span><span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>aes-256-cbc</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
539
549
  <span class='id identifier rubyid_decrypt'>decrypt</span><span class='lparen'>(</span><span class='const'>Base64</span><span class='period'>.</span><span class='id identifier rubyid_decode64'>decode64</span><span class='lparen'>(</span><span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span><span class='rparen'>)</span>
@@ -659,12 +669,12 @@
659
669
  <pre class="lines">
660
670
 
661
671
 
662
- 92
663
672
  93
664
- 94</pre>
673
+ 94
674
+ 95</pre>
665
675
  </td>
666
676
  <td>
667
- <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 92</span>
677
+ <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 93</span>
668
678
 
669
679
  <span class='kw'>def</span> <span class='id identifier rubyid_decrypt_urlsafe_base64'>decrypt_urlsafe_base64</span><span class='lparen'>(</span><span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>aes-256-cbc</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
670
680
  <span class='id identifier rubyid_decrypt'>decrypt</span><span class='lparen'>(</span><span class='const'>Base64</span><span class='period'>.</span><span class='id identifier rubyid_urlsafe_decode64'>urlsafe_decode64</span><span class='lparen'>(</span><span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span><span class='rparen'>)</span>
@@ -804,7 +814,6 @@
804
814
  <pre class="lines">
805
815
 
806
816
 
807
- 17
808
817
  18
809
818
  19
810
819
  20
@@ -815,10 +824,11 @@
815
824
  25
816
825
  26
817
826
  27
818
- 28</pre>
827
+ 28
828
+ 29</pre>
819
829
  </td>
820
830
  <td>
821
- <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 17</span>
831
+ <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 18</span>
822
832
 
823
833
  <span class='kw'>def</span> <span class='id identifier rubyid_encrypt'>encrypt</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>aes-256-cbc</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
824
834
  <span class='id identifier rubyid_cipher'>cipher</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>Cipher</span><span class='op'>::</span><span class='const'>Cipher</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_cipher_type'>cipher_type</span><span class='rparen'>)</span>
@@ -967,12 +977,12 @@
967
977
  <pre class="lines">
968
978
 
969
979
 
970
- 58
971
980
  59
972
- 60</pre>
981
+ 60
982
+ 61</pre>
973
983
  </td>
974
984
  <td>
975
- <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 58</span>
985
+ <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 59</span>
976
986
 
977
987
  <span class='kw'>def</span> <span class='id identifier rubyid_encrypt_base64'>encrypt_base64</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>aes-256-cbc</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
978
988
  <span class='const'>Base64</span><span class='period'>.</span><span class='id identifier rubyid_strict_encode64'>strict_encode64</span><span class='lparen'>(</span><span class='id identifier rubyid_encrypt'>encrypt</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span><span class='rparen'>)</span><span class='rparen'>)</span>
@@ -1112,12 +1122,12 @@
1112
1122
  <pre class="lines">
1113
1123
 
1114
1124
 
1115
- 81
1116
1125
  82
1117
- 83</pre>
1126
+ 83
1127
+ 84</pre>
1118
1128
  </td>
1119
1129
  <td>
1120
- <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 81</span>
1130
+ <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 82</span>
1121
1131
 
1122
1132
  <span class='kw'>def</span> <span class='id identifier rubyid_encrypt_urlsafe_base64'>encrypt_urlsafe_base64</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>aes-256-cbc</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1123
1133
  <span class='const'>Base64</span><span class='period'>.</span><span class='id identifier rubyid_urlsafe_encode64'>urlsafe_encode64</span><span class='lparen'>(</span><span class='id identifier rubyid_encrypt'>encrypt</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span><span class='comma'>,</span> <span class='id identifier rubyid_iv'>iv</span><span class='rparen'>)</span><span class='rparen'>)</span>
@@ -1132,7 +1142,7 @@
1132
1142
  </div>
1133
1143
 
1134
1144
  <div id="footer">
1135
- Generated on Mon Jun 13 02:13:50 2016 by
1145
+ Generated on Sat Jul 30 17:08:31 2016 by
1136
1146
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1137
1147
  0.8.7.6 (ruby-2.3.1).
1138
1148
  </div>
@@ -0,0 +1,529 @@
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: BB::Crypto::ControlToken
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#!BB/Crypto/ControlToken.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="../../BB.html" title="BB (module)">BB</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Crypto.html" title="BB::Crypto (module)">Crypto</a></span></span>
36
+ &raquo;
37
+ <span class="title">ControlToken</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: BB::Crypto::ControlToken
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Object</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">BB::Crypto::ControlToken</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ <dt class="r2 last">Defined in:</dt>
97
+ <dd class="r2 last">lib/blackbox/crypto.rb</dd>
98
+
99
+ </dl>
100
+ <div class="clear"></div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+
105
+ <p>Secure Control Token.</p>
106
+
107
+
108
+ </div>
109
+ </div>
110
+ <div class="tags">
111
+
112
+
113
+ </div>
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+ <h2>
122
+ Class Method Summary
123
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
124
+ </h2>
125
+
126
+ <ul class="summary">
127
+
128
+ <li class="public ">
129
+ <span class="summary_signature">
130
+
131
+ <a href="#create-class_method" title="create (class method)">+ (String) <strong>create</strong>(op, args, expire_in = 900, key = ENV[&#39;CONTROLTOKEN_SECRET&#39;], cipher_type = &#39;aes-256-cbc&#39;) </a>
132
+
133
+
134
+
135
+ </span>
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ <span class="summary_desc"><div class='inline'>
146
+ <p>Encode and encrypt an urlsafe ControlToken.</p>
147
+ </div></span>
148
+
149
+ </li>
150
+
151
+
152
+ <li class="public ">
153
+ <span class="summary_signature">
154
+
155
+ <a href="#parse-class_method" title="parse (class method)">+ (Hash) <strong>parse</strong>(token, key = ENV[&#39;CONTROLTOKEN_SECRET&#39;], force = false, cipher_type = &#39;aes-256-cbc&#39;) </a>
156
+
157
+
158
+
159
+ </span>
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+ <span class="summary_desc"><div class='inline'>
170
+ <p>Decrypt and parse an urlsafe ControlToken.</p>
171
+ </div></span>
172
+
173
+ </li>
174
+
175
+
176
+ </ul>
177
+
178
+
179
+
180
+
181
+ <div id="class_method_details" class="method_details_list">
182
+ <h2>Class Method Details</h2>
183
+
184
+
185
+ <div class="method_details first">
186
+ <h3 class="signature first" id="create-class_method">
187
+
188
+ + (<tt><span class='object_link'><a href="../String.html" title="BB::String (module)">String</a></span></tt>) <strong>create</strong>(op, args, expire_in = 900, key = ENV[&#39;CONTROLTOKEN_SECRET&#39;], cipher_type = &#39;aes-256-cbc&#39;)
189
+
190
+
191
+
192
+
193
+
194
+ </h3><div class="docstring">
195
+ <div class="discussion">
196
+
197
+ <p>Encode and encrypt an urlsafe ControlToken.</p>
198
+
199
+
200
+ </div>
201
+ </div>
202
+ <div class="tags">
203
+ <p class="tag_title">Parameters:</p>
204
+ <ul class="param">
205
+
206
+ <li>
207
+
208
+ <span class='name'>op</span>
209
+
210
+
211
+ <span class='type'>(<tt><span class='object_link'><a href="../String.html" title="BB::String (module)">String</a></span></tt>)</span>
212
+
213
+
214
+
215
+ &mdash;
216
+ <div class='inline'>
217
+ <p>Operation id</p>
218
+ </div>
219
+
220
+ </li>
221
+
222
+ <li>
223
+
224
+ <span class='name'>args</span>
225
+
226
+
227
+ <span class='type'>(<tt>Array</tt>)</span>
228
+
229
+
230
+
231
+ &mdash;
232
+ <div class='inline'>
233
+ <p>Arguments (Strings)</p>
234
+ </div>
235
+
236
+ </li>
237
+
238
+ <li>
239
+
240
+ <span class='name'>expire_in</span>
241
+
242
+
243
+ <span class='type'>(<tt>Fixnum</tt>)</span>
244
+
245
+
246
+ <em class="default">(defaults to: <tt>900</tt>)</em>
247
+
248
+
249
+ </li>
250
+
251
+ <li>
252
+
253
+ <span class='name'>key</span>
254
+
255
+
256
+ <span class='type'>(<tt><span class='object_link'><a href="../String.html" title="BB::String (module)">String</a></span></tt>)</span>
257
+
258
+
259
+ <em class="default">(defaults to: <tt>ENV[&#39;CONTROLTOKEN_SECRET&#39;]</tt>)</em>
260
+
261
+
262
+ &mdash;
263
+ <div class='inline'>
264
+ <p>Encryption key</p>
265
+ </div>
266
+
267
+ </li>
268
+
269
+ <li>
270
+
271
+ <span class='name'>cipher_type</span>
272
+
273
+
274
+ <span class='type'>(<tt><span class='object_link'><a href="../String.html" title="BB::String (module)">String</a></span></tt>)</span>
275
+
276
+
277
+ <em class="default">(defaults to: <tt>&#39;aes-256-cbc&#39;</tt>)</em>
278
+
279
+
280
+ &mdash;
281
+ <div class='inline'>
282
+ <p>OpenSSL cipher</p>
283
+ </div>
284
+
285
+ </li>
286
+
287
+ </ul>
288
+
289
+ <p class="tag_title">Returns:</p>
290
+ <ul class="return">
291
+
292
+ <li>
293
+
294
+
295
+ <span class='type'>(<tt><span class='object_link'><a href="../String.html" title="BB::String (module)">String</a></span></tt>)</span>
296
+
297
+
298
+
299
+ &mdash;
300
+ <div class='inline'>
301
+ <p>ControlToken (urlsafe base64)</p>
302
+ </div>
303
+
304
+ </li>
305
+
306
+ </ul>
307
+ <p class="tag_title">Raises:</p>
308
+ <ul class="raise">
309
+
310
+ <li>
311
+
312
+
313
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
314
+
315
+
316
+
317
+ </li>
318
+
319
+ </ul>
320
+
321
+ </div><table class="source_code">
322
+ <tr>
323
+ <td>
324
+ <pre class="lines">
325
+
326
+
327
+ 109
328
+ 110
329
+ 111
330
+ 112
331
+ 113
332
+ 114
333
+ 115</pre>
334
+ </td>
335
+ <td>
336
+ <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 109</span>
337
+
338
+ <span class='kw'>def</span> <span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_op'>op</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_expire_in'>expire_in</span> <span class='op'>=</span> <span class='int'>900</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>CONTROLTOKEN_SECRET</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>aes-256-cbc</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
339
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>key can not be blank</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
340
+ <span class='comment'># If you&#39;re reading this in the year 2038: Hi there! :-)
341
+ </span> <span class='lbracket'>[</span><span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>+</span> <span class='id identifier rubyid_expire_in'>expire_in</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_pack'>pack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>l&lt;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
342
+ <span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='lbracket'>[</span><span class='lbracket'>[</span><span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>+</span> <span class='id identifier rubyid_expire_in'>expire_in</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_pack'>pack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>l&lt;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_op'>op</span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\x00</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
343
+ <span class='const'>BB</span><span class='op'>::</span><span class='const'>Crypto</span><span class='period'>.</span><span class='id identifier rubyid_encrypt_urlsafe_base64'>encrypt_urlsafe_base64</span><span class='lparen'>(</span><span class='id identifier rubyid_body'>body</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span><span class='rparen'>)</span>
344
+ <span class='kw'>end</span></pre>
345
+ </td>
346
+ </tr>
347
+ </table>
348
+ </div>
349
+
350
+ <div class="method_details ">
351
+ <h3 class="signature " id="parse-class_method">
352
+
353
+ + (<tt><span class='object_link'><a href="../Hash.html" title="BB::Hash (module)">Hash</a></span></tt>) <strong>parse</strong>(token, key = ENV[&#39;CONTROLTOKEN_SECRET&#39;], force = false, cipher_type = &#39;aes-256-cbc&#39;)
354
+
355
+
356
+
357
+
358
+
359
+ </h3><div class="docstring">
360
+ <div class="discussion">
361
+
362
+ <p>Decrypt and parse an urlsafe ControlToken.</p>
363
+
364
+
365
+ </div>
366
+ </div>
367
+ <div class="tags">
368
+ <p class="tag_title">Parameters:</p>
369
+ <ul class="param">
370
+
371
+ <li>
372
+
373
+ <span class='name'>token</span>
374
+
375
+
376
+ <span class='type'>(<tt><span class='object_link'><a href="../String.html" title="BB::String (module)">String</a></span></tt>)</span>
377
+
378
+
379
+
380
+ &mdash;
381
+ <div class='inline'>
382
+ <p>Input String (urlsafe base64)</p>
383
+ </div>
384
+
385
+ </li>
386
+
387
+ <li>
388
+
389
+ <span class='name'>key</span>
390
+
391
+
392
+ <span class='type'>(<tt><span class='object_link'><a href="../String.html" title="BB::String (module)">String</a></span></tt>)</span>
393
+
394
+
395
+ <em class="default">(defaults to: <tt>ENV[&#39;CONTROLTOKEN_SECRET&#39;]</tt>)</em>
396
+
397
+
398
+ &mdash;
399
+ <div class='inline'>
400
+ <p>Encryption key</p>
401
+ </div>
402
+
403
+ </li>
404
+
405
+ <li>
406
+
407
+ <span class='name'>force</span>
408
+
409
+
410
+ <span class='type'>(<tt>Boolean</tt>)</span>
411
+
412
+
413
+ <em class="default">(defaults to: <tt>false</tt>)</em>
414
+
415
+
416
+ &mdash;
417
+ <div class='inline'>
418
+ <p>Decode expired token (suppress ArgumentError)</p>
419
+ </div>
420
+
421
+ </li>
422
+
423
+ <li>
424
+
425
+ <span class='name'>cipher_type</span>
426
+
427
+
428
+ <span class='type'>(<tt><span class='object_link'><a href="../String.html" title="BB::String (module)">String</a></span></tt>)</span>
429
+
430
+
431
+ <em class="default">(defaults to: <tt>&#39;aes-256-cbc&#39;</tt>)</em>
432
+
433
+
434
+ &mdash;
435
+ <div class='inline'>
436
+ <p>OpenSSL cipher</p>
437
+ </div>
438
+
439
+ </li>
440
+
441
+ </ul>
442
+
443
+ <p class="tag_title">Returns:</p>
444
+ <ul class="return">
445
+
446
+ <li>
447
+
448
+
449
+ <span class='type'>(<tt><span class='object_link'><a href="../Hash.html" title="BB::Hash (module)">Hash</a></span></tt>)</span>
450
+
451
+
452
+
453
+ &mdash;
454
+ <div class='inline'>
455
+ <p>Token payload</p>
456
+ </div>
457
+
458
+ </li>
459
+
460
+ </ul>
461
+ <p class="tag_title">Raises:</p>
462
+ <ul class="raise">
463
+
464
+ <li>
465
+
466
+
467
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
468
+
469
+
470
+
471
+ </li>
472
+
473
+ </ul>
474
+
475
+ </div><table class="source_code">
476
+ <tr>
477
+ <td>
478
+ <pre class="lines">
479
+
480
+
481
+ 124
482
+ 125
483
+ 126
484
+ 127
485
+ 128
486
+ 129
487
+ 130
488
+ 131
489
+ 132
490
+ 133
491
+ 134
492
+ 135
493
+ 136
494
+ 137</pre>
495
+ </td>
496
+ <td>
497
+ <pre class="code"><span class="info file"># File 'lib/blackbox/crypto.rb', line 124</span>
498
+
499
+ <span class='kw'>def</span> <span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_token'>token</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>CONTROLTOKEN_SECRET</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>aes-256-cbc</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
500
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>key can not be blank</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
501
+ <span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='const'>BB</span><span class='op'>::</span><span class='const'>Crypto</span><span class='period'>.</span><span class='id identifier rubyid_decrypt_urlsafe_base64'>decrypt_urlsafe_base64</span><span class='lparen'>(</span><span class='id identifier rubyid_token'>token</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_cipher_type'>cipher_type</span><span class='rparen'>)</span>
502
+ <span class='id identifier rubyid_valid_until'>valid_until</span><span class='comma'>,</span> <span class='id identifier rubyid_op'>op</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\x00</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
503
+ <span class='id identifier rubyid_valid_until'>valid_until</span> <span class='op'>=</span> <span class='id identifier rubyid_valid_until'>valid_until</span><span class='period'>.</span><span class='id identifier rubyid_unpack'>unpack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>l&lt;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
504
+ <span class='id identifier rubyid_expired'>expired</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_valid_until'>valid_until</span>
505
+ <span class='kw'>if</span> <span class='id identifier rubyid_expired'>expired</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_force'>force</span>
506
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Token expired at </span><span class='embexpr_beg'>#{</span><span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_valid_until'>valid_until</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'> (</span><span class='embexpr_beg'>#{</span><span class='const'>ChronicDuration</span><span class='period'>.</span><span class='id identifier rubyid_output'>output</span><span class='lparen'>(</span><span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>-</span> <span class='id identifier rubyid_valid_until'>valid_until</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'> ago)</span><span class='tstring_end'>&quot;</span></span>
507
+ <span class='kw'>end</span>
508
+ <span class='lbrace'>{</span> <span class='label'>valid_until:</span> <span class='id identifier rubyid_valid_until'>valid_until</span><span class='comma'>,</span>
509
+ <span class='label'>op:</span> <span class='id identifier rubyid_op'>op</span><span class='comma'>,</span>
510
+ <span class='label'>args:</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span>
511
+ <span class='label'>expired:</span> <span class='id identifier rubyid_expired'>expired</span> <span class='rbrace'>}</span>
512
+ <span class='kw'>end</span></pre>
513
+ </td>
514
+ </tr>
515
+ </table>
516
+ </div>
517
+
518
+ </div>
519
+
520
+ </div>
521
+
522
+ <div id="footer">
523
+ Generated on Sat Jul 30 17:08:31 2016 by
524
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
525
+ 0.8.7.6 (ruby-2.3.1).
526
+ </div>
527
+
528
+ </body>
529
+ </html>