All Projects → brycx → rigel

brycx / rigel

Licence: MIT License
[UNMAINTAINED] HMAC-SHA512 implementation optimized for embedded devices

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to rigel

Orion
Usable, easy and safe pure-Rust crypto
Stars: ✭ 227 (+1521.43%)
Mutual labels:  crypto, hmac
noble-hashes
Audited & minimal JS implementation of SHA2, SHA3, RIPEMD, BLAKE2/3, HMAC, HKDF, PBKDF2 & Scrypt
Stars: ✭ 213 (+1421.43%)
Mutual labels:  hmac, sha512
mbedtls-esp8266
Updated and Upgraded mbedTLS library for the ESP8266 (probably ESP32 too)
Stars: ✭ 13 (-7.14%)
Mutual labels:  embedded, crypto
Securitydriven.inferno
✅ .NET crypto done right. Professionally audited.
Stars: ✭ 501 (+3478.57%)
Mutual labels:  crypto, hmac
ngx http hmac secure link module
HMAC Secure Link module for NGINX.
Stars: ✭ 47 (+235.71%)
Mutual labels:  hmac, sha512
Crypto Async
Fast, reliable cipher, hash and hmac methods executed in Node's threadpool for multi-core throughput.
Stars: ✭ 161 (+1050%)
Mutual labels:  crypto, hmac
Libhydrogen
A lightweight, secure, easy-to-use crypto library suitable for constrained environments.
Stars: ✭ 247 (+1664.29%)
Mutual labels:  embedded, crypto
ArduinoSpritzCipher
Spritz encryption system portable C library, CSPRNG, cryptographic hash and MAC functions, symmetric-key data encryption, and general-purpose functions. It's also an Arduino library.
Stars: ✭ 67 (+378.57%)
Mutual labels:  embedded, crypto
webcrypto
A WebCrypto Polyfill for NodeJS
Stars: ✭ 111 (+692.86%)
Mutual labels:  crypto, hmac
hkdf
A standalone Java 7 implementation of HMAC-based key derivation function (HKDF) defined in RFC 5869 first described by Hugo Krawczyk. HKDF follows the "extract-then-expand" paradigm which is compatible to NIST 800-56C Rev. 1 two step KDF
Stars: ✭ 47 (+235.71%)
Mutual labels:  hmac, hmac-sha512
Forge
A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
Stars: ✭ 4,204 (+29928.57%)
Mutual labels:  crypto, hmac
jscrypto
Crypto library for Node/ES6/Typescript/Browser.
Stars: ✭ 20 (+42.86%)
Mutual labels:  crypto, sha512
Cryptography-Guidelines
Guidance on implementing cryptography as a developer.
Stars: ✭ 15 (+7.14%)
Mutual labels:  crypto, hmac
Nsec
A modern and easy-to-use cryptographic library for .NET Core based on libsodium
Stars: ✭ 217 (+1450%)
Mutual labels:  crypto, hmac
rust-hmac-sha256
A small, self-contained SHA256 and HMAC-SHA256 implementation.
Stars: ✭ 24 (+71.43%)
Mutual labels:  crypto, hmac
hash-wasm
Lightning fast hash functions using hand-tuned WebAssembly binaries
Stars: ✭ 382 (+2628.57%)
Mutual labels:  hmac, sha512
Bitcoin-wallet-cracker
Automated Bitcoin wallet generator that with mnemonic and passphrases bruteforces wallet addresses
Stars: ✭ 140 (+900%)
Mutual labels:  hmac, sha512
CoinMarketCap-Desktop
A simple desktop wrapper for CoinMarketCap
Stars: ✭ 21 (+50%)
Mutual labels:  crypto
kernel-syslog
📝 Kernel module that can be used as a replacement for syslog, logger or logwrapper
Stars: ✭ 37 (+164.29%)
Mutual labels:  embedded
AutoTrader
A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading.
Stars: ✭ 227 (+1521.43%)
Mutual labels:  crypto

rigel

Build Status codecov

About

rigel is a minimal implementation of HMAC with SHA512. rigel minimizes the amount of allocations made, while still upholding performance speed.

You can read more about these optimizations here.

Rust nightly

rigel requires Rust nightly.

Security

This library has at no point received any formal cryptographic/security audit. It should be used at own risk.

Example

One-shot API:

extern crate rigel;

let mac = rigel::hmac_sha512("Secret key".as_bytes(), "Message".as_bytes());

assert!(rigel::verify(&mac, "Secret key".as_bytes(), "Message".as_bytes()));

Streaming API:

extern crate rigel;

let mut mac = rigel::init("Secret key".as_bytes());
mac.update("Message".as_bytes());
let res = mac.finalize();
assert!(mac.verify(&res, "Secret key".as_bytes(), "Message".as_bytes()));

let mut mac_out = [0u8; 64];
mac.reset();
mac.update("Other message".as_bytes());
mac.finalize_with_dst(&mut mac_out);

Performance

You can read more about these benchmarks here.

test RustCrypto     ... bench:       2,168 ns/iter (+/- 141)
test orion          ... bench:       2,207 ns/iter (+/- 52)
test rigel_one_shot ... bench:       2,077 ns/iter (+/- 53)
test rigel_stream   ... bench:       2,127 ns/iter (+/- 36)
test ring           ... bench:       1,463 ns/iter (+/- 37)

This was benchmarked on a MacBook Air 1,6 GHz Intel Core i5, 4GB.

License

rigel is licensed under the MIT license. See the LICENSE file for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].