Browse Source

update lua documentation and tests to use new AES class

compatibility is still kept to have ECDH.aes* functions, but will soon
be dropped.
master
Jaromil 4 years ago
parent
commit
79cbd8a0bb
  1. 1
      docs/pages/ldoc/config.ld
  2. 13
      docs/pages/ldoc/o/README.md
  3. 5
      docs/pages/ldoc/o/examples/crypt-to-multi.lua.html
  4. 14
      docs/pages/ldoc/o/examples/keygen.lua.html
  5. 3
      docs/pages/ldoc/o/modules/BIG.html
  6. 5
      docs/pages/ldoc/o/modules/ECDH.html
  7. 3
      docs/pages/ldoc/o/modules/ECP.html
  8. 3
      docs/pages/ldoc/o/modules/HASH.html
  9. 3
      docs/pages/ldoc/o/modules/INSPECT.html
  10. 3
      docs/pages/ldoc/o/modules/OCTET.html
  11. 3
      docs/pages/ldoc/o/modules/String.html
  12. 3
      docs/pages/ldoc/o/modules/Table.html
  13. 3
      docs/pages/ldoc/o/modules/ZEN.html
  14. 2
      examples/crypt-to-multi.lua
  15. 2
      examples/dashboard-from-iotdev.lua
  16. 2
      examples/iotdev-to-dashboard.lua
  17. 8
      examples/symmetric-crypto-pin.lua
  18. 4
      test/ecdh.lua
  19. 2
      test/ecdh_aes-gcm_vectors.lua
  20. 4
      test/integration_asymmetric_crypto.sh

1
docs/pages/ldoc/config.ld

@ -26,6 +26,7 @@ backtick_references=true
file={
'../../../src/zen_octet.c',
'../../../src/zen_hash.c',
'../../../src/zen_aes.c',
'../../../src/zen_ecdh.c',
'../../../src/zen_ecp.c',
'string.lua',

13
docs/pages/ldoc/o/README.md

@ -33,6 +33,7 @@
<ul class="nowrap">
<li><a href="modules/OCTET.html">OCTET</a></li>
<li><a href="modules/HASH.html">HASH</a></li>
<li><a href="modules/AES.html">AES</a></li>
<li><a href="modules/ECDH.html">ECDH</a></li>
<li><a href="modules/ECP.html">ECP</a></li>
<li><a href="modules/String.html">String</a></li>
@ -89,6 +90,16 @@ href="https://zenroom.org">Zenroom.org</a>.</p>
<p> An hash is also known as 'message digest', 'digital fingerprint',
'digest' or 'checksum'.</p>
</td>
</tr>
<tr>
<td class="name" nowrap><a href="modules/AES.html">AES</a></td>
<td class="summary">
<h1>Advanced Encryption Standard (AES)</h1>
<p> AES Block cipher in varoius modes.</p>
</td>
</tr>
<tr>
@ -178,7 +189,7 @@ href="https://zenroom.org">Zenroom.org</a>.</p>
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

5
docs/pages/ldoc/o/examples/crypt-to-multi.lua.html

@ -41,6 +41,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -78,7 +79,7 @@ res = {}
</span><span class="keyword">for</span> name,pubkey <span class="keyword">in</span> <span class="global">pairs</span>(keys.recipients) <span class="keyword">do</span>
<span class="comment">-- calculate the session key
</span>
session = ECDH.session(private, url64(pubkey))
session = ECDH.session(private, O.from_url64(pubkey))
iv = O.random(<span class="number">32</span>)
out = { header = <span class="string">"encoded using zenroom "</span> .. VERSION.original}
@ -98,7 +99,7 @@ res = {}
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

14
docs/pages/ldoc/o/examples/keygen.lua.html

@ -41,6 +41,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -57,24 +58,17 @@
<h2>keygen.lua</h2>
<pre>
<span class="comment">-- generate a simple keyring
</span>keyring = ECDH.new()
keyring:keygen()
</span>keyring = ECDH.keygen()
<span class="comment">-- export the keypair to json
</span>export = JSON.encode(
{
public = keyring: public():url64(),
private = keyring:private():url64()
}
)
<span class="global">print</span>(export)</pre>
</span><span class="global">print</span>( JSON.encode( keyring ) )</pre>
</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

3
docs/pages/ldoc/o/modules/BIG.html

@ -40,6 +40,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -211,7 +212,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

5
docs/pages/ldoc/o/modules/ECDH.html

@ -40,6 +40,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><strong>ECDH</strong></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -84,7 +85,7 @@
'Bob'.</p>
<h3>Info:</h3>
<ul>
<li><strong>Copyright</strong>: Dyne.org foundation 2017-2019</li>
<li><strong>Copyright</strong>: Dyne.org foundation 2017-2020</li>
<li><strong>License</strong>: AGPLv3</li>
<li><strong>Author</strong>: Denis "Jaromil" Roio</li>
</ul>
@ -287,7 +288,7 @@ signature = ECDH.sign(kp.private, m)
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

3
docs/pages/ldoc/o/modules/ECP.html

@ -41,6 +41,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><strong>ECP</strong></li>
<li><a href="../modules/String.html">String</a></li>
@ -559,7 +560,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

3
docs/pages/ldoc/o/modules/HASH.html

@ -40,6 +40,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><strong>HASH</strong></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -289,7 +290,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

3
docs/pages/ldoc/o/modules/INSPECT.html

@ -40,6 +40,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -179,7 +180,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

3
docs/pages/ldoc/o/modules/OCTET.html

@ -41,6 +41,7 @@
<ul class="nowrap">
<li><strong>OCTET</strong></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -455,7 +456,7 @@ newly allocated octet, does not change the contents of other octets.
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

3
docs/pages/ldoc/o/modules/String.html

@ -40,6 +40,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><strong>String</strong></li>
@ -658,7 +659,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

3
docs/pages/ldoc/o/modules/Table.html

@ -40,6 +40,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -277,7 +278,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

3
docs/pages/ldoc/o/modules/ZEN.html

@ -40,6 +40,7 @@
<ul class="nowrap">
<li><a href="../modules/OCTET.html">OCTET</a></li>
<li><a href="../modules/HASH.html">HASH</a></li>
<li><a href="../modules/AES.html">AES</a></li>
<li><a href="../modules/ECDH.html">ECDH</a></li>
<li><a href="../modules/ECP.html">ECP</a></li>
<li><a href="../modules/String.html">String</a></li>
@ -126,7 +127,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
<i style="float:right;">Last updated 2020-03-19 15:26:17 </i>
<i style="float:right;">Last updated 2020-04-07 15:58:34 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>

2
examples/crypt-to-multi.lua

@ -26,7 +26,7 @@ for name,pubkey in pairs(keys.recipients) do
out = { header = "encoded using zenroom " .. VERSION.original}
-- encrypt the message with the session key
out.text, out.checksum =
ECDH.aead_encrypt(KDF(session), secret, iv, out.header)
AES.gcm_encrypt(KDF(session), secret, iv, out.header)
-- insert results in final json array
res[name] = url64( JSON.encode(out) )

2
examples/dashboard-from-iotdev.lua

@ -10,7 +10,7 @@ commsec = O.from_url64(keys.community_seckey)
devpub = O.from_url64(decode.header.device_pubkey)
session = ECDH.session(commsec, devpub)
decode.text, decode.checksum =
ECDH.aead_decrypt(KDF(session), O.from_url64(data.text),
AES.gcm_decrypt(KDF(session), O.from_url64(data.text),
O.from_url64(decode.header.iv), data.header)
assert(data.checksum == data.checksum)

2
examples/iotdev-to-dashboard.lua

@ -33,7 +33,7 @@ header.iv = O.random(32):url64()
local session = ECDH.session(devkey.private, O.from_url64(keys.community_pubkey))
local out = { header = url64(JSON.encode(header)) }
out.text, out.checksum =
ECDH.aead_encrypt(KDF(session), JSON.encode(payload), header.iv, out.header)
AES.gcm_encrypt(KDF(session), JSON.encode(payload), header.iv, out.header)
-- content(output) -- uncomment for debug
print( JSON.encode( out ) ) -- map(output, url64) ) )

8
examples/symmetric-crypto-pin.lua

@ -13,8 +13,8 @@ key = HASH.pbkdf2(hash, secrets.pin, secrets.salt, secrets.kdf_iterations, 32)
local cipher = { header = O.from_str("my header"),
iv = O.random(16) }
cipher.text, cipher.checksum =
ECDH.aead_encrypt(key, secrets.text,
cipher.iv, cipher.header)
AES.gcm_encrypt(key, secrets.text,
cipher.iv, cipher.header)
-- I.print(cipher)
-- output = map(cipher, hex)
@ -25,8 +25,8 @@ print(JSON.encode(cipher))
local decode = { header = cipher.header }
decode.text, decode.checksum =
ECDH.aead_decrypt(key, cipher.text,
cipher.iv, cipher.header)
AES.gcm_decrypt(key, cipher.text,
cipher.iv, cipher.header)
-- this needs to be checked, can also be in the host application
-- if checksums are different then the data integrity is corrupted

4
test/ecdh.lua

@ -19,7 +19,7 @@ I.print({ session = session,
secret = secret,
header = ciphermsg.header })
ciphermsg.text, ciphermsg.checksum =
ECDH.aead_encrypt(session, secret, iv, ciphermsg.header)
AES.gcm_encrypt(session, secret, iv, ciphermsg.header)
-- I.print(ciphermsg)
-- print ('AES-GCM encrypt : ' .. ciphermsg.text:url64())
@ -28,7 +28,7 @@ ciphermsg.text, ciphermsg.checksum =
session = ECDH.session(bob.private, alice.public)
decode = { header = ciphermsg.header }
decode.text, decode.checksum =
ECDH.aead_decrypt(session, ciphermsg.text, iv, decode.header)
AES.gcm_decrypt(session, ciphermsg.text, iv, decode.header)
-- print ('AES-GCM checksum : ' .. ck2:base64())

2
test/ecdh_aes-gcm_vectors.lua

@ -7,7 +7,7 @@ print()
function Test(t)
print ("Test vector: " .. t.name)
out, tag_out = ECDH.aead_encrypt(hex(t.key), hex(t.msg), hex(t.iv), hex(t.header))
out, tag_out = AES.gcm_encrypt(hex(t.key), hex(t.msg), hex(t.iv), hex(t.header))
assert(hex(t.ciphermsg) == out)
print (' encrypt OK')

4
test/integration_asymmetric_crypto.sh

@ -47,7 +47,7 @@ ciphermsg =
iv = iv })) }
session = ECDH.session(sender.private, recipient.public)
ciphermsg.text, ciphermsg.checksum =
ECDH.aead_encrypt(session,
AES.gcm_encrypt(session,
str('$secret'), iv,
ciphermsg.header)
print(JSON.encode(ciphermsg))
@ -68,7 +68,7 @@ decode = { header = JSON.decode(data.header) }
sender.public = O.from_url64(decode.header.public)
session = ECDH.session(recipient.private, sender.public)
decode.text, decode.checksum =
ECDH.aead_decrypt(session, O.from_url64(data.text), O.from_url64(decode.header.iv), data.header)
AES.gcm_decrypt(session, O.from_url64(data.text), O.from_url64(decode.header.iv), data.header)
print(decode.text:str())
EOF
}

Loading…
Cancel
Save