## Zenroom - Application Protocol Interface documentation

Zenroom is a portable language interpreter inspired by language-theoretical security and designed to be small, attack-resistant and very portable. Its main use case is distributed computing of untrusted code, for instance it can be used for delicate cryptographic operations. Here is the "application protocol interface" documentation of the cryptographic primitive functions that are made available by zenroom in its computations.

For more information see the homepage of this project: zenroom.dyne.org.

## Modules

OCTET |
## Base data type for cryptographic opearationsOctets are first-class citizens in Zenroom. |

RNG |
## Cryptographically Secure Random Number Generator (RNG)Each new RNG instance is initialised with a different random seed Cryptographic security is achieved by hashing the random numbers using this sequence: unguessable seed -> SHA -> PRNG internal state -> SHA -> random numbers. |

HASH |
## Cryptographic hash functionsAn hash is also known as 'message digest', 'digital fingerprint', 'digest' or 'checksum'. |

ECDH |
## Elliptic Curve Diffie-Hellman encryption (ECDH)Asymmetric public/private key encryption technologies. |

ECP |
## Elliptic Curve Point Arithmetic (ECP)Base arithmetical operations on elliptic curve point coordinates. |

ECP2 |
## Twisted Elliptic Curve Point Arithmetic (ECP2)Base arithmetical operations on twisted elliptic curve point coordinates. |

BIG |
## Big Number Arithmetic (BIG)Base arithmetical operations on big numbers. |

LAMBDA |
## Advanced data manipulation (LAMBDA)Manipulate complex data structures with functional programming prototypes. |

math | standard mathematical functions. |

string | string operations like searching and matching. |

table | manipulating Lua tables. |

## Tutorials

Syntax | |

Functional | |

Schema | |

StateMachine | |

Embed |

## Examples

hello.lua | |

json-tables.lua | |

wave.lua | |

keygen.lua | |

crypt-to-multi.lua |