nim-libsodium
nim-libsodium copied to clipboard
Nim wrapper for the libsodium library
nim-libsodium
Nim wrapper for the libsodium library
image:https://github.com/FedericoCeratto/nim-libsodium/workflows/build/badge.svg?branch=master["Build Status", link="https://github.com/FedericoCeratto/nim-libsodium/actions"] image:https://img.shields.io/badge/status-beta-orange.svg[badge] image:https://img.shields.io/github/tag/FedericoCeratto/nim-libsodium.svg[tags] image:https://img.shields.io/badge/License-MPL%20v2.0-blue.svg[License]
Features
- Wrap libsodium and expose only memory-safe entities
- Follow libsodium naming convention for most functions
- Tested on Linux, MacOS and windows
- Basic unit tests
- No homemade crypto
Usage
Refer to the link:https://download.libsodium.org/doc/index.html[official libsodium documentation]
and the generated documentation using nim doc
.
Also, the structure of libsodium/sodium.nim follows the order of https://doc.libsodium.org/
[source,bash]
sudo apt-get install libsodium18 nimble install libsodium
[source,nim]
import libsodium.sodium import libsodium.sodium_sizes
let msg = "hello and goodbye" (pk, sk) = crypto_box_keypair() nonce = randombytes(crypto_box_NONCEBYTES()) ciphertext = crypto_box_easy(msg, nonce, pk, sk)
Contributing
Testing and PRs are welcome.