akero 1.0.4 → 1.1.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.
- checksums.yaml +7 -0
- data/.gitattributes +3 -0
- data/.gitignore +0 -2
- data/.rubocop.yml +43 -0
- data/.travis.yml +3 -7
- data/Gemfile +1 -0
- data/Guardfile +4 -3
- data/Makefile +26 -0
- data/README.md +28 -10
- data/Rakefile +8 -17
- data/akero.gemspec +17 -10
- data/bin/akero +6 -0
- data/coverage/.last_run.json +5 -0
- data/coverage/.resultset.json +367 -0
- data/coverage/.resultset.json.lock +0 -0
- data/coverage/assets/0.10.0/application.css +799 -0
- data/coverage/assets/0.10.0/application.js +1707 -0
- data/coverage/assets/0.10.0/colorbox/border.png +0 -0
- data/coverage/assets/0.10.0/colorbox/controls.png +0 -0
- data/coverage/assets/0.10.0/colorbox/loading.gif +0 -0
- data/coverage/assets/0.10.0/colorbox/loading_background.png +0 -0
- data/coverage/assets/0.10.0/favicon_green.png +0 -0
- data/coverage/assets/0.10.0/favicon_red.png +0 -0
- data/coverage/assets/0.10.0/favicon_yellow.png +0 -0
- data/coverage/assets/0.10.0/loading.gif +0 -0
- data/coverage/assets/0.10.0/magnify.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/assets/0.7.1/application.css +1110 -0
- data/coverage/assets/0.7.1/application.js +626 -0
- data/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
- data/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
- data/coverage/assets/0.7.1/favicon_green.png +0 -0
- data/coverage/assets/0.7.1/favicon_red.png +0 -0
- data/coverage/assets/0.7.1/favicon_yellow.png +0 -0
- data/coverage/assets/0.7.1/loading.gif +0 -0
- data/coverage/assets/0.7.1/magnify.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/index.html +2248 -0
- data/doc/Akero/Message.html +475 -0
- data/doc/Akero.html +1148 -0
- data/doc/_index.html +125 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +338 -0
- data/doc/file.README.html +186 -0
- data/doc/file_list.html +55 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +186 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +148 -0
- data/doc/top-level-namespace.html +112 -0
- data/lib/akero/benchmark.rb +21 -20
- data/lib/akero/cli.rb +74 -0
- data/lib/akero/version.rb +2 -1
- data/lib/akero.rb +92 -90
- data/spec/akero_spec.rb +66 -65
- data/spec/spec_helper.rb +1 -0
- metadata +164 -52
data/doc/Akero.html
ADDED
|
@@ -0,0 +1,1148 @@
|
|
|
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: Akero
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.8.5.2
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
|
19
|
+
relpath = '';
|
|
20
|
+
framesUrl = "frames.html#!" + escape(window.location.href);
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
|
25
|
+
|
|
26
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
</head>
|
|
30
|
+
<body>
|
|
31
|
+
<div id="header">
|
|
32
|
+
<div id="menu">
|
|
33
|
+
|
|
34
|
+
<a href="_index.html">Index (A)</a> »
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
<span class="title">Akero</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: Akero
|
|
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">Akero</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/akero.rb<span class="defines">,<br />
|
|
98
|
+
lib/akero.rb,<br /> lib/akero/version.rb,<br /> lib/akero/benchmark.rb</span>
|
|
99
|
+
</dd>
|
|
100
|
+
|
|
101
|
+
</dl>
|
|
102
|
+
<div class="clear"></div>
|
|
103
|
+
|
|
104
|
+
<h2>Overview</h2><div class="docstring">
|
|
105
|
+
<div class="discussion">
|
|
106
|
+
Akero is an easy-to-use library for peer-to-peer public key cryptography.
|
|
107
|
+
|
|
108
|
+
Tested on: MRI 1.8.7, MRI 1.9.2, MRI 1.9.3, RBX 1.8, RBX 1.9
|
|
109
|
+
(JRuby may be added in the future but is currently NOT supported)
|
|
110
|
+
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="tags">
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
</div><h2>Defined Under Namespace</h2>
|
|
117
|
+
<p class="children">
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Akero/Message.html" title="Akero::Message (class)">Message</a></span>
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
</p>
|
|
126
|
+
|
|
127
|
+
<h2>Constant Summary</h2>
|
|
128
|
+
|
|
129
|
+
<dl class="constants">
|
|
130
|
+
|
|
131
|
+
<dt id="DEFAULT_RSA_BITS-constant" class="">DEFAULT_RSA_BITS =
|
|
132
|
+
|
|
133
|
+
</dt>
|
|
134
|
+
<dd><pre class="code"><span class='int'>2048</span></pre></dd>
|
|
135
|
+
|
|
136
|
+
<dt id="DEFAULT_DIGEST-constant" class="">DEFAULT_DIGEST =
|
|
137
|
+
|
|
138
|
+
</dt>
|
|
139
|
+
<dd><pre class="code"><span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA512</span></pre></dd>
|
|
140
|
+
|
|
141
|
+
<dt id="VERSION-constant" class="">VERSION =
|
|
142
|
+
|
|
143
|
+
</dt>
|
|
144
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1.0.4</span><span class='tstring_end'>"</span></span></pre></dd>
|
|
145
|
+
|
|
146
|
+
</dl>
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
<h2>
|
|
157
|
+
Class Method Summary
|
|
158
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
159
|
+
</h2>
|
|
160
|
+
|
|
161
|
+
<ul class="summary">
|
|
162
|
+
|
|
163
|
+
<li class="public ">
|
|
164
|
+
<span class="summary_signature">
|
|
165
|
+
|
|
166
|
+
<a href="#load-class_method" title="load (class method)">+ (Akero) <strong>load</strong>(private_key) </a>
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
</span>
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
<span class="summary_desc"><div class='inline'>Load an Akero identity.</div></span>
|
|
181
|
+
|
|
182
|
+
</li>
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
</ul>
|
|
186
|
+
|
|
187
|
+
<h2>
|
|
188
|
+
Instance Method Summary
|
|
189
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
|
190
|
+
</h2>
|
|
191
|
+
|
|
192
|
+
<ul class="summary">
|
|
193
|
+
|
|
194
|
+
<li class="public ">
|
|
195
|
+
<span class="summary_signature">
|
|
196
|
+
|
|
197
|
+
<a href="#encrypt-instance_method" title="#encrypt (instance method)">- (String) <strong>encrypt</strong>(to, plaintext, ascii_armor = true) </a>
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
</span>
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
<span class="summary_desc"><div class='inline'>Sign->encrypt->sign a message for 1 or more recipients.</div></span>
|
|
212
|
+
|
|
213
|
+
</li>
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
<li class="public ">
|
|
217
|
+
<span class="summary_signature">
|
|
218
|
+
|
|
219
|
+
<a href="#id-instance_method" title="#id (instance method)">- (String) <strong>id</strong> </a>
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
</span>
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
<span class="summary_desc"><div class='inline'>Unique fingerprint of this Akero keypair.</div></span>
|
|
234
|
+
|
|
235
|
+
</li>
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
<li class="public ">
|
|
239
|
+
<span class="summary_signature">
|
|
240
|
+
|
|
241
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Akero) <strong>initialize</strong>(rsa_bits = DEFAULT_RSA_BITS, digest = DEFAULT_DIGEST) </a>
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
</span>
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
<span class="note title constructor">constructor</span>
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
<span class="summary_desc"><div class='inline'>Create a new Akero instance.</div></span>
|
|
258
|
+
|
|
259
|
+
</li>
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
<li class="public ">
|
|
263
|
+
<span class="summary_signature">
|
|
264
|
+
|
|
265
|
+
<a href="#private_key-instance_method" title="#private_key (instance method)">- (String) <strong>private_key</strong> </a>
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
</span>
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
<span class="summary_desc"><div class='inline'>Private key (do not share this with anyone!).</div></span>
|
|
280
|
+
|
|
281
|
+
</li>
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
<li class="public ">
|
|
285
|
+
<span class="summary_signature">
|
|
286
|
+
|
|
287
|
+
<a href="#public_key-instance_method" title="#public_key (instance method)">- (String) <strong>public_key</strong> </a>
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
</span>
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
<span class="summary_desc"><div class='inline'>Akero public key.</div></span>
|
|
302
|
+
|
|
303
|
+
</li>
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
<li class="public ">
|
|
307
|
+
<span class="summary_signature">
|
|
308
|
+
|
|
309
|
+
<a href="#receive-instance_method" title="#receive (instance method)">- (Akero::Message) <strong>receive</strong>(ciphertext) </a>
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
</span>
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
<span class="summary_desc"><div class='inline'>Receive an Akero message.</div></span>
|
|
324
|
+
|
|
325
|
+
</li>
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
<li class="public ">
|
|
329
|
+
<span class="summary_signature">
|
|
330
|
+
|
|
331
|
+
<a href="#sign-instance_method" title="#sign (instance method)">- (String) <strong>sign</strong>(plaintext, ascii_armor = true) </a>
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
</span>
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
<span class="summary_desc"><div class='inline'>Sign a message.</div></span>
|
|
346
|
+
|
|
347
|
+
</li>
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
</ul>
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
<div id="constructor_details" class="method_details_list">
|
|
354
|
+
<h2>Constructor Details</h2>
|
|
355
|
+
|
|
356
|
+
<div class="method_details first">
|
|
357
|
+
<h3 class="signature first" id="initialize-instance_method">
|
|
358
|
+
|
|
359
|
+
- (<tt><span class='object_link'><a href="" title="Akero (class)">Akero</a></span></tt>) <strong>initialize</strong>(rsa_bits = DEFAULT_RSA_BITS, digest = DEFAULT_DIGEST)
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
</h3><div class="docstring">
|
|
366
|
+
<div class="discussion">
|
|
367
|
+
Create a new Akero instance.
|
|
368
|
+
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
<div class="tags">
|
|
372
|
+
|
|
373
|
+
<div class="examples">
|
|
374
|
+
<p class="tag_title">Examples:</p>
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
<p class="example_title"><div class='inline'>Create new Akero instance with default settings</div></p>
|
|
378
|
+
|
|
379
|
+
<pre class="example code"><code><span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span></code></pre>
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
<p class="example_title"><div class='inline'>Create new Akero instance with a 4096-bit key</div></p>
|
|
383
|
+
|
|
384
|
+
<pre class="example code"><code><span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='int'>4096</span><span class='rparen'>)</span></code></pre>
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
<p class="example_title"><div class='inline'>Create new Akero instance with a 4096-bit key and SHA512 digest</div></p>
|
|
388
|
+
|
|
389
|
+
<pre class="example code"><code><span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='int'>4096</span><span class='comma'>,</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA512</span><span class='rparen'>)</span></code></pre>
|
|
390
|
+
|
|
391
|
+
</div>
|
|
392
|
+
<p class="tag_title">Parameters:</p>
|
|
393
|
+
<ul class="param">
|
|
394
|
+
|
|
395
|
+
<li>
|
|
396
|
+
|
|
397
|
+
<span class='name'>rsa_bits</span>
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
<em class="default">(defaults to: <tt>DEFAULT_RSA_BITS</tt>)</em>
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
—
|
|
407
|
+
<div class='inline'>RSA key length</div>
|
|
408
|
+
|
|
409
|
+
</li>
|
|
410
|
+
|
|
411
|
+
<li>
|
|
412
|
+
|
|
413
|
+
<span class='name'>digest</span>
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
<span class='type'>(<tt>OpenSSL::Digest</tt>)</span>
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
<em class="default">(defaults to: <tt>DEFAULT_DIGEST</tt>)</em>
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
—
|
|
423
|
+
<div class='inline'>Signature digest</div>
|
|
424
|
+
|
|
425
|
+
</li>
|
|
426
|
+
|
|
427
|
+
</ul>
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
</div><table class="source_code">
|
|
431
|
+
<tr>
|
|
432
|
+
<td>
|
|
433
|
+
<pre class="lines">
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
107
|
|
437
|
+
108
|
|
438
|
+
109</pre>
|
|
439
|
+
</td>
|
|
440
|
+
<td>
|
|
441
|
+
<pre class="code"><span class="info file"># File 'lib/akero.rb', line 107</span>
|
|
442
|
+
|
|
443
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_rsa_bits'>rsa_bits</span><span class='op'>=</span><span class='const'>DEFAULT_RSA_BITS</span><span class='comma'>,</span> <span class='id identifier rubyid_digest'>digest</span><span class='op'>=</span><span class='const'>DEFAULT_DIGEST</span><span class='rparen'>)</span>
|
|
444
|
+
<span class='ivar'>@key</span><span class='comma'>,</span> <span class='ivar'>@cert</span> <span class='op'>=</span> <span class='id identifier rubyid_generate_keypair'>generate_keypair</span><span class='lparen'>(</span><span class='id identifier rubyid_rsa_bits'>rsa_bits</span><span class='comma'>,</span> <span class='id identifier rubyid_digest'>digest</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_rsa_bits'>rsa_bits</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
|
445
|
+
<span class='kw'>end</span></pre>
|
|
446
|
+
</td>
|
|
447
|
+
</tr>
|
|
448
|
+
</table>
|
|
449
|
+
</div>
|
|
450
|
+
|
|
451
|
+
</div>
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
<div id="class_method_details" class="method_details_list">
|
|
455
|
+
<h2>Class Method Details</h2>
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
<div class="method_details first">
|
|
459
|
+
<h3 class="signature first" id="load-class_method">
|
|
460
|
+
|
|
461
|
+
+ (<tt><span class='object_link'><a href="" title="Akero (class)">Akero</a></span></tt>) <strong>load</strong>(private_key)
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
</h3><div class="docstring">
|
|
468
|
+
<div class="discussion">
|
|
469
|
+
Load an Akero identity.
|
|
470
|
+
|
|
471
|
+
</div>
|
|
472
|
+
</div>
|
|
473
|
+
<div class="tags">
|
|
474
|
+
|
|
475
|
+
<div class="examples">
|
|
476
|
+
<p class="tag_title">Examples:</p>
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
<p class="example_title"><div class='inline'>Load previously stored private key</div></p>
|
|
480
|
+
|
|
481
|
+
<pre class="example code"><code><span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/alice.akr</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='rparen'>)</span></code></pre>
|
|
482
|
+
|
|
483
|
+
</div>
|
|
484
|
+
<p class="tag_title">Parameters:</p>
|
|
485
|
+
<ul class="param">
|
|
486
|
+
|
|
487
|
+
<li>
|
|
488
|
+
|
|
489
|
+
<span class='name'>private_key</span>
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
—
|
|
497
|
+
<div class='inline'>Akero private key</div>
|
|
498
|
+
|
|
499
|
+
</li>
|
|
500
|
+
|
|
501
|
+
</ul>
|
|
502
|
+
|
|
503
|
+
<p class="tag_title">Returns:</p>
|
|
504
|
+
<ul class="return">
|
|
505
|
+
|
|
506
|
+
<li>
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Akero (class)">Akero</a></span></tt>)</span>
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
—
|
|
514
|
+
<div class='inline'>New Akero instance</div>
|
|
515
|
+
|
|
516
|
+
</li>
|
|
517
|
+
|
|
518
|
+
</ul>
|
|
519
|
+
|
|
520
|
+
</div><table class="source_code">
|
|
521
|
+
<tr>
|
|
522
|
+
<td>
|
|
523
|
+
<pre class="lines">
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
118
|
|
527
|
+
119
|
|
528
|
+
120
|
|
529
|
+
121
|
|
530
|
+
122
|
|
531
|
+
123
|
|
532
|
+
124
|
|
533
|
+
125
|
|
534
|
+
126
|
|
535
|
+
127
|
|
536
|
+
128</pre>
|
|
537
|
+
</td>
|
|
538
|
+
<td>
|
|
539
|
+
<pre class="code"><span class="info file"># File 'lib/akero.rb', line 118</span>
|
|
540
|
+
|
|
541
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='id identifier rubyid_private_key'>private_key</span><span class='rparen'>)</span>
|
|
542
|
+
<span class='id identifier rubyid_inner'>inner</span> <span class='op'>=</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_private_key'>private_key</span><span class='lbracket'>[</span><span class='const'>PKEY_HEADER</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='op'>..</span><span class='id identifier rubyid_private_key'>private_key</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='op'>-</span><span class='const'>PKEY_FOOTER</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
|
543
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_inner'>inner</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='int'>63</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA512</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_inner'>inner</span><span class='lbracket'>[</span><span class='int'>64</span><span class='op'>..</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_digest'>digest</span>
|
|
544
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>RuntimeError</span><span class='comma'>,</span> <span class='const'>ERR_PKEY_CORRUPT</span>
|
|
545
|
+
<span class='kw'>end</span>
|
|
546
|
+
<span class='id identifier rubyid_cert_len'>cert_len</span> <span class='op'>=</span> <span class='id identifier rubyid_inner'>inner</span><span class='lbracket'>[</span><span class='int'>64</span><span class='op'>..</span><span class='int'>65</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_unpack'>unpack</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>S</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
|
547
|
+
<span class='id identifier rubyid_akero'>akero</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
|
548
|
+
<span class='id identifier rubyid_akero'>akero</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_set'>instance_variable_set</span><span class='lparen'>(</span><span class='symbol'>:@cert</span><span class='comma'>,</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>Certificate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_inner'>inner</span><span class='lbracket'>[</span><span class='int'>66</span><span class='op'>..</span><span class='int'>66</span><span class='op'>+</span><span class='id identifier rubyid_cert_len'>cert_len</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
549
|
+
<span class='id identifier rubyid_akero'>akero</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_set'>instance_variable_set</span><span class='lparen'>(</span><span class='symbol'>:@key</span><span class='comma'>,</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>RSA</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_inner'>inner</span><span class='lbracket'>[</span><span class='int'>66</span><span class='op'>+</span><span class='id identifier rubyid_cert_len'>cert_len</span><span class='op'>..</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
550
|
+
<span class='id identifier rubyid_akero'>akero</span>
|
|
551
|
+
<span class='kw'>end</span></pre>
|
|
552
|
+
</td>
|
|
553
|
+
</tr>
|
|
554
|
+
</table>
|
|
555
|
+
</div>
|
|
556
|
+
|
|
557
|
+
</div>
|
|
558
|
+
|
|
559
|
+
<div id="instance_method_details" class="method_details_list">
|
|
560
|
+
<h2>Instance Method Details</h2>
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
<div class="method_details first">
|
|
564
|
+
<h3 class="signature first" id="encrypt-instance_method">
|
|
565
|
+
|
|
566
|
+
- (<tt>String</tt>) <strong>encrypt</strong>(to, plaintext, ascii_armor = true)
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
</h3><div class="docstring">
|
|
573
|
+
<div class="discussion">
|
|
574
|
+
Sign->encrypt->sign a message for 1 or more recipients.
|
|
575
|
+
|
|
576
|
+
Only the listed recipients can decrypt the message-body
|
|
577
|
+
but anyone can extract the sender's public key.
|
|
578
|
+
|
|
579
|
+
</div>
|
|
580
|
+
</div>
|
|
581
|
+
<div class="tags">
|
|
582
|
+
|
|
583
|
+
<div class="examples">
|
|
584
|
+
<p class="tag_title">Examples:</p>
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
<p class="example_title"><div class='inline'>Alice encrypts a message to Bob</div></p>
|
|
588
|
+
|
|
589
|
+
<pre class="example code"><code><span class='id identifier rubyid_alice'>alice</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
590
|
+
<span class='id identifier rubyid_bob'>bob</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
591
|
+
<span class='id identifier rubyid_ciphertext'>ciphertext</span> <span class='op'>=</span> <span class='id identifier rubyid_alice'>alice</span><span class='period'>.</span><span class='id identifier rubyid_encrypt'>encrypt</span><span class='lparen'>(</span><span class='id identifier rubyid_bob'>bob</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Hello Bob!</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span></code></pre>
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
<p class="example_title"><div class='inline'>Alice encrypts a message to Bob and Charlie</div></p>
|
|
595
|
+
|
|
596
|
+
<pre class="example code"><code><span class='id identifier rubyid_alice'>alice</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
597
|
+
<span class='id identifier rubyid_bob'>bob</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
598
|
+
<span class='id identifier rubyid_charlie'>charlie</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
599
|
+
<span class='id identifier rubyid_ciphertext'>ciphertext</span> <span class='op'>=</span> <span class='id identifier rubyid_alice'>alice</span><span class='period'>.</span><span class='id identifier rubyid_encrypt'>encrypt</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_bob'>bob</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='comma'>,</span> <span class='id identifier rubyid_charlie'>charlie</span><span class='period'>.</span><span class='id identifier rubyid_public_key'>public_key</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Hello Bob and Charlie!</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span></code></pre>
|
|
600
|
+
|
|
601
|
+
</div>
|
|
602
|
+
<p class="tag_title">Parameters:</p>
|
|
603
|
+
<ul class="param">
|
|
604
|
+
|
|
605
|
+
<li>
|
|
606
|
+
|
|
607
|
+
<span class='name'>to</span>
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
—
|
|
615
|
+
<div class='inline'>Akero public keys of recipients</div>
|
|
616
|
+
|
|
617
|
+
</li>
|
|
618
|
+
|
|
619
|
+
<li>
|
|
620
|
+
|
|
621
|
+
<span class='name'>plaintext</span>
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
—
|
|
629
|
+
<div class='inline'>The message to encrypt (binary safe)</div>
|
|
630
|
+
|
|
631
|
+
</li>
|
|
632
|
+
|
|
633
|
+
<li>
|
|
634
|
+
|
|
635
|
+
<span class='name'>ascii_armor</span>
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
<em class="default">(defaults to: <tt>true</tt>)</em>
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
—
|
|
645
|
+
<div class='inline'>Convert the output to base64?</div>
|
|
646
|
+
|
|
647
|
+
</li>
|
|
648
|
+
|
|
649
|
+
</ul>
|
|
650
|
+
|
|
651
|
+
<p class="tag_title">Returns:</p>
|
|
652
|
+
<ul class="return">
|
|
653
|
+
|
|
654
|
+
<li>
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
—
|
|
662
|
+
<div class='inline'>Akero secret message</div>
|
|
663
|
+
|
|
664
|
+
</li>
|
|
665
|
+
|
|
666
|
+
</ul>
|
|
667
|
+
|
|
668
|
+
</div><table class="source_code">
|
|
669
|
+
<tr>
|
|
670
|
+
<td>
|
|
671
|
+
<pre class="lines">
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
192
|
|
675
|
+
193
|
|
676
|
+
194
|
|
677
|
+
195
|
|
678
|
+
196
|
|
679
|
+
197
|
|
680
|
+
198
|
|
681
|
+
199
|
|
682
|
+
200
|
|
683
|
+
201
|
|
684
|
+
202
|
|
685
|
+
203
|
|
686
|
+
204
|
|
687
|
+
205
|
|
688
|
+
206
|
|
689
|
+
207
|
|
690
|
+
208</pre>
|
|
691
|
+
</td>
|
|
692
|
+
<td>
|
|
693
|
+
<pre class="code"><span class="info file"># File 'lib/akero.rb', line 192</span>
|
|
694
|
+
|
|
695
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_encrypt'>encrypt</span><span class='lparen'>(</span><span class='id identifier rubyid_to'>to</span><span class='comma'>,</span> <span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_ascii_armor'>ascii_armor</span><span class='op'>=</span><span class='kw'>true</span><span class='rparen'>)</span>
|
|
696
|
+
<span class='id identifier rubyid_to'>to</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_to'>to</span><span class='rbracket'>]</span> <span class='kw'>unless</span> <span class='id identifier rubyid_to'>to</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Array</span>
|
|
697
|
+
<span class='id identifier rubyid_to'>to</span> <span class='op'>=</span> <span class='id identifier rubyid_to'>to</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span>
|
|
698
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_e'>e</span>
|
|
699
|
+
<span class='kw'>when</span> <span class='const'>String</span>
|
|
700
|
+
<span class='kw'>begin</span>
|
|
701
|
+
<span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>Certificate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_replate'>replate</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='comma'>,</span> <span class='const'>Akero</span><span class='op'>::</span><span class='const'>PLATE_CERT</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
702
|
+
<span class='kw'>rescue</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>CertificateError</span>
|
|
703
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>RuntimeError</span><span class='comma'>,</span> <span class='const'>ERR_INVALID_RECIPIENT_CERT</span>
|
|
704
|
+
<span class='kw'>end</span>
|
|
705
|
+
<span class='kw'>else</span>
|
|
706
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>RuntimeError</span><span class='comma'>,</span> <span class='const'>ERR_INVALID_RECIPIENT</span>
|
|
707
|
+
<span class='kw'>end</span>
|
|
708
|
+
<span class='rbrace'>}</span>
|
|
709
|
+
<span class='id identifier rubyid_out'>out</span> <span class='op'>=</span> <span class='id identifier rubyid__sign'>_sign</span><span class='lparen'>(</span><span class='id identifier rubyid__encrypt'>_encrypt</span><span class='lparen'>(</span><span class='id identifier rubyid_to'>to</span><span class='comma'>,</span> <span class='id identifier rubyid__sign'>_sign</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='kw'>false</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
710
|
+
<span class='id identifier rubyid_ascii_armor'>ascii_armor</span> <span class='op'>?</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_replate'>replate</span><span class='lparen'>(</span><span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span> <span class='const'>PLATE_CRYPTED</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span>
|
|
711
|
+
<span class='kw'>end</span></pre>
|
|
712
|
+
</td>
|
|
713
|
+
</tr>
|
|
714
|
+
</table>
|
|
715
|
+
</div>
|
|
716
|
+
|
|
717
|
+
<div class="method_details ">
|
|
718
|
+
<h3 class="signature " id="id-instance_method">
|
|
719
|
+
|
|
720
|
+
- (<tt>String</tt>) <strong>id</strong>
|
|
721
|
+
|
|
722
|
+
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
|
|
726
|
+
</h3><div class="docstring">
|
|
727
|
+
<div class="discussion">
|
|
728
|
+
Unique fingerprint of this Akero keypair.
|
|
729
|
+
|
|
730
|
+
</div>
|
|
731
|
+
</div>
|
|
732
|
+
<div class="tags">
|
|
733
|
+
|
|
734
|
+
<p class="tag_title">Returns:</p>
|
|
735
|
+
<ul class="return">
|
|
736
|
+
|
|
737
|
+
<li>
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
—
|
|
745
|
+
<div class='inline'>Akero fingerprint</div>
|
|
746
|
+
|
|
747
|
+
</li>
|
|
748
|
+
|
|
749
|
+
</ul>
|
|
750
|
+
|
|
751
|
+
</div><table class="source_code">
|
|
752
|
+
<tr>
|
|
753
|
+
<td>
|
|
754
|
+
<pre class="lines">
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
89
|
|
758
|
+
90
|
|
759
|
+
91</pre>
|
|
760
|
+
</td>
|
|
761
|
+
<td>
|
|
762
|
+
<pre class="code"><span class="info file"># File 'lib/akero.rb', line 89</span>
|
|
763
|
+
|
|
764
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_id'>id</span>
|
|
765
|
+
<span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_fingerprint_from_cert'>fingerprint_from_cert</span><span class='lparen'>(</span><span class='ivar'>@cert</span><span class='rparen'>)</span>
|
|
766
|
+
<span class='kw'>end</span></pre>
|
|
767
|
+
</td>
|
|
768
|
+
</tr>
|
|
769
|
+
</table>
|
|
770
|
+
</div>
|
|
771
|
+
|
|
772
|
+
<div class="method_details ">
|
|
773
|
+
<h3 class="signature " id="private_key-instance_method">
|
|
774
|
+
|
|
775
|
+
- (<tt>String</tt>) <strong>private_key</strong>
|
|
776
|
+
|
|
777
|
+
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
|
|
781
|
+
</h3><div class="docstring">
|
|
782
|
+
<div class="discussion">
|
|
783
|
+
Private key (do not share this with anyone!)
|
|
784
|
+
|
|
785
|
+
</div>
|
|
786
|
+
</div>
|
|
787
|
+
<div class="tags">
|
|
788
|
+
|
|
789
|
+
<div class="examples">
|
|
790
|
+
<p class="tag_title">Examples:</p>
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
<p class="example_title"><div class='inline'>Save and load an Akero identity</div></p>
|
|
794
|
+
|
|
795
|
+
<pre class="example code"><code><span class='id identifier rubyid_alice'>alice</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
|
|
796
|
+
<span class='comment'># Save
|
|
797
|
+
</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/alice.akr</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>w</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='id identifier rubyid_alice'>alice</span><span class='period'>.</span><span class='id identifier rubyid_private_key'>private_key</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
|
798
|
+
<span class='comment'># Load
|
|
799
|
+
</span><span class='id identifier rubyid_new_alice'>new_alice</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/tmp/alice.akr</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='rparen'>)</span></code></pre>
|
|
800
|
+
|
|
801
|
+
</div>
|
|
802
|
+
|
|
803
|
+
<p class="tag_title">Returns:</p>
|
|
804
|
+
<ul class="return">
|
|
805
|
+
|
|
806
|
+
<li>
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
810
|
+
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
—
|
|
814
|
+
<div class='inline'>Private key (ascii armored)</div>
|
|
815
|
+
|
|
816
|
+
</li>
|
|
817
|
+
|
|
818
|
+
</ul>
|
|
819
|
+
|
|
820
|
+
<p class="tag_title">See Also:</p>
|
|
821
|
+
<ul class="see">
|
|
822
|
+
|
|
823
|
+
<li>#load</li>
|
|
824
|
+
|
|
825
|
+
</ul>
|
|
826
|
+
|
|
827
|
+
</div><table class="source_code">
|
|
828
|
+
<tr>
|
|
829
|
+
<td>
|
|
830
|
+
<pre class="lines">
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
151
|
|
834
|
+
152
|
|
835
|
+
153
|
|
836
|
+
154
|
|
837
|
+
155
|
|
838
|
+
156
|
|
839
|
+
157
|
|
840
|
+
158
|
|
841
|
+
159
|
|
842
|
+
160</pre>
|
|
843
|
+
</td>
|
|
844
|
+
<td>
|
|
845
|
+
<pre class="code"><span class="info file"># File 'lib/akero.rb', line 151</span>
|
|
846
|
+
|
|
847
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_private_key'>private_key</span>
|
|
848
|
+
<span class='comment'># We do not use PKCS#12 ("PFX") for serialization here
|
|
849
|
+
</span> <span class='comment'># because of http://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html
|
|
850
|
+
</span> <span class='id identifier rubyid_cert_der'>cert_der</span> <span class='op'>=</span> <span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span>
|
|
851
|
+
<span class='id identifier rubyid_out'>out</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_cert_der'>cert_der</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</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'>'</span><span class='tstring_content'>S</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
|
852
|
+
<span class='id identifier rubyid_out'>out</span> <span class='op'><<</span> <span class='id identifier rubyid_cert_der'>cert_der</span>
|
|
853
|
+
<span class='id identifier rubyid_out'>out</span> <span class='op'><<</span> <span class='ivar'>@key</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span>
|
|
854
|
+
<span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_insert'>insert</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA512</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_out'>out</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_digest'>digest</span><span class='rparen'>)</span>
|
|
855
|
+
<span class='const'>PKEY_HEADER</span><span class='op'>+</span><span class='const'>Base64</span><span class='period'>.</span><span class='id identifier rubyid_encode64'>encode64</span><span class='lparen'>(</span><span class='id identifier rubyid_out'>out</span><span class='rparen'>)</span><span class='op'>+</span><span class='const'>PKEY_FOOTER</span>
|
|
856
|
+
<span class='kw'>end</span></pre>
|
|
857
|
+
</td>
|
|
858
|
+
</tr>
|
|
859
|
+
</table>
|
|
860
|
+
</div>
|
|
861
|
+
|
|
862
|
+
<div class="method_details ">
|
|
863
|
+
<h3 class="signature " id="public_key-instance_method">
|
|
864
|
+
|
|
865
|
+
- (<tt>String</tt>) <strong>public_key</strong>
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
</h3><div class="docstring">
|
|
872
|
+
<div class="discussion">
|
|
873
|
+
Akero public key.
|
|
874
|
+
|
|
875
|
+
Share this with other Akero instances that you
|
|
876
|
+
wish to receive encrypted messages from.
|
|
877
|
+
|
|
878
|
+
</div>
|
|
879
|
+
</div>
|
|
880
|
+
<div class="tags">
|
|
881
|
+
|
|
882
|
+
<p class="tag_title">Returns:</p>
|
|
883
|
+
<ul class="return">
|
|
884
|
+
|
|
885
|
+
<li>
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
—
|
|
893
|
+
<div class='inline'>Public key (ascii armored)</div>
|
|
894
|
+
|
|
895
|
+
</li>
|
|
896
|
+
|
|
897
|
+
</ul>
|
|
898
|
+
|
|
899
|
+
</div><table class="source_code">
|
|
900
|
+
<tr>
|
|
901
|
+
<td>
|
|
902
|
+
<pre class="lines">
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
136
|
|
906
|
+
137
|
|
907
|
+
138</pre>
|
|
908
|
+
</td>
|
|
909
|
+
<td>
|
|
910
|
+
<pre class="code"><span class="info file"># File 'lib/akero.rb', line 136</span>
|
|
911
|
+
|
|
912
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_public_key'>public_key</span>
|
|
913
|
+
<span class='const'>Akero</span><span class='op'>::</span><span class='id identifier rubyid_replate'>replate</span><span class='lparen'>(</span><span class='ivar'>@cert</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span> <span class='const'>Akero</span><span class='op'>::</span><span class='const'>PLATE_CERT</span><span class='rparen'>)</span>
|
|
914
|
+
<span class='kw'>end</span></pre>
|
|
915
|
+
</td>
|
|
916
|
+
</tr>
|
|
917
|
+
</table>
|
|
918
|
+
</div>
|
|
919
|
+
|
|
920
|
+
<div class="method_details ">
|
|
921
|
+
<h3 class="signature " id="receive-instance_method">
|
|
922
|
+
|
|
923
|
+
- (<tt><span class='object_link'><a href="Akero/Message.html" title="Akero::Message (class)">Akero::Message</a></span></tt>) <strong>receive</strong>(ciphertext)
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
</h3><div class="docstring">
|
|
930
|
+
<div class="discussion">
|
|
931
|
+
Receive an Akero message.
|
|
932
|
+
|
|
933
|
+
</div>
|
|
934
|
+
</div>
|
|
935
|
+
<div class="tags">
|
|
936
|
+
<p class="tag_title">Parameters:</p>
|
|
937
|
+
<ul class="param">
|
|
938
|
+
|
|
939
|
+
<li>
|
|
940
|
+
|
|
941
|
+
<span class='name'>ciphertext</span>
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
|
|
948
|
+
—
|
|
949
|
+
<div class='inline'>Akero Message</div>
|
|
950
|
+
|
|
951
|
+
</li>
|
|
952
|
+
|
|
953
|
+
</ul>
|
|
954
|
+
|
|
955
|
+
<p class="tag_title">Returns:</p>
|
|
956
|
+
<ul class="return">
|
|
957
|
+
|
|
958
|
+
<li>
|
|
959
|
+
|
|
960
|
+
|
|
961
|
+
<span class='type'>(<tt><span class='object_link'><a href="Akero/Message.html" title="Akero::Message (class)">Akero::Message</a></span></tt>)</span>
|
|
962
|
+
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
—
|
|
966
|
+
<div class='inline'>Message_body, signer_certificate, body_type</div>
|
|
967
|
+
|
|
968
|
+
</li>
|
|
969
|
+
|
|
970
|
+
</ul>
|
|
971
|
+
<p class="tag_title">Raises:</p>
|
|
972
|
+
<ul class="raise">
|
|
973
|
+
|
|
974
|
+
<li>
|
|
975
|
+
|
|
976
|
+
|
|
977
|
+
<span class='type'>(<tt>RuntimeError</tt>)</span>
|
|
978
|
+
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
</li>
|
|
982
|
+
|
|
983
|
+
</ul>
|
|
984
|
+
|
|
985
|
+
</div><table class="source_code">
|
|
986
|
+
<tr>
|
|
987
|
+
<td>
|
|
988
|
+
<pre class="lines">
|
|
989
|
+
|
|
990
|
+
|
|
991
|
+
214
|
|
992
|
+
215
|
|
993
|
+
216
|
|
994
|
+
217
|
|
995
|
+
218
|
|
996
|
+
219
|
|
997
|
+
220
|
|
998
|
+
221
|
|
999
|
+
222
|
|
1000
|
+
223
|
|
1001
|
+
224
|
|
1002
|
+
225
|
|
1003
|
+
226
|
|
1004
|
+
227
|
|
1005
|
+
228
|
|
1006
|
+
229
|
|
1007
|
+
230
|
|
1008
|
+
231
|
|
1009
|
+
232
|
|
1010
|
+
233
|
|
1011
|
+
234
|
|
1012
|
+
235
|
|
1013
|
+
236</pre>
|
|
1014
|
+
</td>
|
|
1015
|
+
<td>
|
|
1016
|
+
<pre class="code"><span class="info file"># File 'lib/akero.rb', line 214</span>
|
|
1017
|
+
|
|
1018
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_receive'>receive</span><span class='lparen'>(</span><span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='rparen'>)</span>
|
|
1019
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='period'>.</span><span class='id identifier rubyid_start_with?'>start_with?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>-----BEGIN </span><span class='tstring_end'>'</span></span>
|
|
1020
|
+
<span class='id identifier rubyid_ciphertext'>ciphertext</span> <span class='op'>=</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_replate'>replate</span><span class='lparen'>(</span><span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='comma'>,</span> <span class='const'>Akero</span><span class='op'>::</span><span class='const'>PLATE_CRYPTED</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
|
1021
|
+
<span class='kw'>end</span>
|
|
1022
|
+
<span class='kw'>begin</span>
|
|
1023
|
+
<span class='id identifier rubyid_body'>body</span><span class='comma'>,</span> <span class='id identifier rubyid_signer_cert'>signer_cert</span><span class='comma'>,</span> <span class='id identifier rubyid_body_type'>body_type</span> <span class='op'>=</span> <span class='id identifier rubyid_verify'>verify</span><span class='lparen'>(</span><span class='id identifier rubyid_ciphertext'>ciphertext</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
|
1024
|
+
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
|
1025
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>RuntimeError</span><span class='comma'>,</span> <span class='const'>ERR_MSG_MALFORMED_ENV</span>
|
|
1026
|
+
<span class='kw'>end</span>
|
|
1027
|
+
|
|
1028
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_body_type'>body_type</span><span class='period'>.</span><span class='id identifier rubyid_ord'>ord</span>
|
|
1029
|
+
<span class='kw'>when</span> <span class='int'>0x00</span>
|
|
1030
|
+
<span class='comment'># public message (signed)
|
|
1031
|
+
</span> <span class='kw'>return</span> <span class='const'>Message</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_body'>body</span><span class='comma'>,</span> <span class='id identifier rubyid_signer_cert'>signer_cert</span><span class='comma'>,</span> <span class='symbol'>:signed</span><span class='rparen'>)</span>
|
|
1032
|
+
<span class='kw'>when</span> <span class='int'>0x01</span>
|
|
1033
|
+
<span class='comment'># private message (signed, crypted, signed)
|
|
1034
|
+
</span> <span class='id identifier rubyid_signed_plaintext'>signed_plaintext</span> <span class='op'>=</span> <span class='id identifier rubyid__decrypt'>_decrypt</span><span class='lparen'>(</span><span class='id identifier rubyid_body'>body</span><span class='rparen'>)</span>
|
|
1035
|
+
<span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_verified_cert'>verified_cert</span><span class='comma'>,</span> <span class='id identifier rubyid_body_type'>body_type</span> <span class='op'>=</span> <span class='id identifier rubyid_verify'>verify</span><span class='lparen'>(</span><span class='id identifier rubyid_signed_plaintext'>signed_plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_signer_cert'>signer_cert</span><span class='rparen'>)</span>
|
|
1036
|
+
<span class='id identifier rubyid_msg'>msg</span> <span class='op'>=</span> <span class='const'>Message</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_signer_cert'>signer_cert</span><span class='comma'>,</span> <span class='symbol'>:encrypted</span><span class='rparen'>)</span>
|
|
1037
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_msg'>msg</span>
|
|
1038
|
+
<span class='kw'>end</span>
|
|
1039
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>RuntimeError</span><span class='comma'>,</span> <span class='const'>ERR_MSG_MALFORMED_BODY</span>
|
|
1040
|
+
<span class='kw'>end</span></pre>
|
|
1041
|
+
</td>
|
|
1042
|
+
</tr>
|
|
1043
|
+
</table>
|
|
1044
|
+
</div>
|
|
1045
|
+
|
|
1046
|
+
<div class="method_details ">
|
|
1047
|
+
<h3 class="signature " id="sign-instance_method">
|
|
1048
|
+
|
|
1049
|
+
- (<tt>String</tt>) <strong>sign</strong>(plaintext, ascii_armor = true)
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
|
|
1055
|
+
</h3><div class="docstring">
|
|
1056
|
+
<div class="discussion">
|
|
1057
|
+
Sign a message.
|
|
1058
|
+
|
|
1059
|
+
</div>
|
|
1060
|
+
</div>
|
|
1061
|
+
<div class="tags">
|
|
1062
|
+
<p class="tag_title">Parameters:</p>
|
|
1063
|
+
<ul class="param">
|
|
1064
|
+
|
|
1065
|
+
<li>
|
|
1066
|
+
|
|
1067
|
+
<span class='name'>plaintext</span>
|
|
1068
|
+
|
|
1069
|
+
|
|
1070
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
—
|
|
1075
|
+
<div class='inline'>The message to sign (binary safe)</div>
|
|
1076
|
+
|
|
1077
|
+
</li>
|
|
1078
|
+
|
|
1079
|
+
<li>
|
|
1080
|
+
|
|
1081
|
+
<span class='name'>ascii_armor</span>
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
1085
|
+
|
|
1086
|
+
|
|
1087
|
+
<em class="default">(defaults to: <tt>true</tt>)</em>
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
—
|
|
1091
|
+
<div class='inline'>Convert the output in base64?</div>
|
|
1092
|
+
|
|
1093
|
+
</li>
|
|
1094
|
+
|
|
1095
|
+
</ul>
|
|
1096
|
+
|
|
1097
|
+
<p class="tag_title">Returns:</p>
|
|
1098
|
+
<ul class="return">
|
|
1099
|
+
|
|
1100
|
+
<li>
|
|
1101
|
+
|
|
1102
|
+
|
|
1103
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1104
|
+
|
|
1105
|
+
|
|
1106
|
+
|
|
1107
|
+
—
|
|
1108
|
+
<div class='inline'>Akero signed message</div>
|
|
1109
|
+
|
|
1110
|
+
</li>
|
|
1111
|
+
|
|
1112
|
+
</ul>
|
|
1113
|
+
|
|
1114
|
+
</div><table class="source_code">
|
|
1115
|
+
<tr>
|
|
1116
|
+
<td>
|
|
1117
|
+
<pre class="lines">
|
|
1118
|
+
|
|
1119
|
+
|
|
1120
|
+
167
|
|
1121
|
+
168
|
|
1122
|
+
169
|
|
1123
|
+
170</pre>
|
|
1124
|
+
</td>
|
|
1125
|
+
<td>
|
|
1126
|
+
<pre class="code"><span class="info file"># File 'lib/akero.rb', line 167</span>
|
|
1127
|
+
|
|
1128
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_sign'>sign</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='comma'>,</span> <span class='id identifier rubyid_ascii_armor'>ascii_armor</span><span class='op'>=</span><span class='kw'>true</span><span class='rparen'>)</span>
|
|
1129
|
+
<span class='id identifier rubyid_out'>out</span> <span class='op'>=</span> <span class='id identifier rubyid__sign'>_sign</span><span class='lparen'>(</span><span class='id identifier rubyid_plaintext'>plaintext</span><span class='rparen'>)</span>
|
|
1130
|
+
<span class='id identifier rubyid_ascii_armor'>ascii_armor</span> <span class='op'>?</span> <span class='const'>Akero</span><span class='period'>.</span><span class='id identifier rubyid_replate'>replate</span><span class='lparen'>(</span><span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span> <span class='const'>Akero</span><span class='op'>::</span><span class='const'>PLATE_SIGNED</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_out'>out</span><span class='period'>.</span><span class='id identifier rubyid_to_der'>to_der</span>
|
|
1131
|
+
<span class='kw'>end</span></pre>
|
|
1132
|
+
</td>
|
|
1133
|
+
</tr>
|
|
1134
|
+
</table>
|
|
1135
|
+
</div>
|
|
1136
|
+
|
|
1137
|
+
</div>
|
|
1138
|
+
|
|
1139
|
+
</div>
|
|
1140
|
+
|
|
1141
|
+
<div id="footer">
|
|
1142
|
+
Generated on Mon Mar 18 15:03:26 2013 by
|
|
1143
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1144
|
+
0.8.5.2 (ruby-1.9.3).
|
|
1145
|
+
</div>
|
|
1146
|
+
|
|
1147
|
+
</body>
|
|
1148
|
+
</html>
|