|
129 | 129 | <hr /> |
130 | 130 | <h3 class="doxsection"><a class="anchor" id="examples-152"></a> |
131 | 131 | Examples</h3> |
132 | | -<div class="fragment"><div class="line">REM Sign a package</div> |
133 | | -<div class="line"> </div> |
| 132 | +<div class="fragment"><div class="line">REM First generate signature</div> |
134 | 133 | <div class="line">SIG$ = SIGN$("editor.gz", "packages.key")</div> |
135 | | -<div class="line"> </div> |
| 134 | +<div class="line">REM allocate memory for the signature as a raw buffer</div> |
| 135 | +<div class="line">m = MEMALLOC(64)</div> |
136 | 136 | <div class="line">F = OPENOUT("editor.gz.sig")</div> |
137 | | -<div class="line">BINWRITE F, SIG$</div> |
138 | | -<div class="line">CLOSE #F</div> |
139 | | -</div><!-- fragment --><div class="fragment"><div class="line">REM Sign and immediately verify a package</div> |
140 | | -<div class="line"> </div> |
141 | | -<div class="line">SIG$ = SIGN$("game.gz", "packages.key")</div> |
142 | | -<div class="line"> </div> |
143 | | -<div class="line">F = OPENOUT("game.gz.sig")</div> |
144 | | -<div class="line">BINWRITE F, SIG$</div> |
145 | | -<div class="line">CLOSE #F</div> |
146 | | -<div class="line"> </div> |
147 | | -<div class="line">IF VERIFY("game.gz", "game.gz.sig", "packages.pem") THEN</div> |
148 | | -<div class="line">{</div> |
149 | | -<div class="line"> PRINT "Signature valid"</div> |
150 | | -<div class="line">}</div> |
| 137 | +<div class="line">REM Convert the string to a raw buffer</div> |
| 138 | +<div class="line">n = STRINGTOBUFFER(SIG$, m, 64)</div> |
| 139 | +<div class="line">REM write it to the file</div> |
| 140 | +<div class="line">BINWRITE F, m, n</div> |
| 141 | +<div class="line">CLOSE F</div> |
151 | 142 | </div><!-- fragment --><hr /> |
152 | 143 | <h3 class="doxsection"><a class="anchor" id="notes-149"></a> |
153 | 144 | Notes</h3> |
154 | 145 | <ul> |
155 | 146 | <li><span class="tt">file$</span> is the file to sign.</li> |
156 | 147 | <li><span class="tt">privatekey$</span> is a PEM private key file.</li> |
157 | 148 | <li>Returns an escaped detached Ed25519 signature string.</li> |
158 | | -<li>The returned string is safe to store using normal BASIC file functions.</li> |
| 149 | +<li>The returned string should be converted to a binary buffer before storage.</li> |
159 | 150 | <li>Detached signatures are normally stored with a <span class="tt">.sig</span> extension.</li> |
160 | 151 | <li>Signatures generated by <span class="tt">SIGN$</span> may be verified using <a class="el" href="VERIFY.html">VERIFY</a>.</li> |
161 | 152 | </ul> |
|
0 commit comments