nim-libsodium icon indicating copy to clipboard operation
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.