Skip to content
This repository has been archived by the owner before Nov 9, 2022. It is now read-only.

Asmod4n/mruby-libsodium

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

mruby-libsodium

mruby wrapper for https://github.com/jedisct1/libsodium

Breaking change in one of the latest commits: removed Sodium.memcmp, added Sodium::SecureBuffer#== If you need a secure comparising function, take a look at https://github.com/Asmod4n/mruby-secure-compare

currently supported functions

sodium_bin2hex
sodium_hex2bin
randombytes_random
randombytes_uniform
randombytes_buf
crypto_secretbox
crypto_secretbox_open
crypto_auth
crypto_auth_verify
crypto_aead_chacha20poly1305_encrypt
crypto_aead_chacha20poly1305_decrypt
crypto_box_keypair
crypto_box_seed_keypair
crypto_box_easy
crypto_box_open_easy
crypto_sign_keypair
crypto_sign_seed_keypair
crypto_sign
crypto_sign_open
crypto_sign_detached
crypto_sign_verify_detached
crypto_generichash
crypto_generichash_init
crypto_generichash_update
crypto_generichash_final
crypto_pwhash
crypto_pwhash_str
crypto_pwhash_str_verify
crypto_pwhash_scryptsalsa208sha256
crypto_pwhash_scryptsalsa208sha256_str
crypto_pwhash_scryptsalsa208sha256_str_verify

Namespaces are taken from libsodium

Aka crypto_generichash gets ported as Crypto.generichash in Ruby and crypto_aead_chacha20poly1305_encrypt gets ported as Crypto::AEAD::Chacha20Poly1305.encrypt

There is no beautification done, all arguments must be passed like they are in C to keep a good performance. The only addition done is length and return value checking.

The keypair functions return a hash with the following fields: :primitive, :public_key, :secret_key There are helper functions go get keys and nonces for functions who need them.

sodium_malloc, sodium_free, sodium_mprotect_noaccess, sodium_mprotect_readonly, sodium_mprotect_readwrite are wrapped in a class: Sodium::SecureBuffer, which gets returned by the pwhash key generation functions.

Until everything is ported and documented, take a look at the excelent libsodium documentation https://download.libsodium.org/doc/

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published