debris / Tiny Keccak
Licence: other
An implementation of Keccak derived functions specified in FIPS-202, SP800-185 and KangarooTwelve
Stars: ✭ 134
Programming Languages
rust
11053 projects
Labels
Projects that are alternatives of or similar to Tiny Keccak
Merkle Tree
Merkle Trees and Merkle Inclusion Proofs
Stars: ✭ 130 (-2.99%)
Mutual labels: cryptography
I2pd
🛡 I2P: End-to-End encrypted and anonymous Internet
Stars: ✭ 1,796 (+1240.3%)
Mutual labels: cryptography
Crylogger
CRYLOGGER: Detecting Crypto Misuses for Android and Java Apps Dynamically
Stars: ✭ 125 (-6.72%)
Mutual labels: cryptography
Torchbear
🔥🐻 The Speakeasy Scripting Engine Which Combines Speed, Safety, and Simplicity
Stars: ✭ 128 (-4.48%)
Mutual labels: cryptography
Pycryptodome
A self-contained cryptographic library for Python
Stars: ✭ 1,817 (+1255.97%)
Mutual labels: cryptography
Useful Crypto Resources
A place for useful crypto-related resources plus some of my fav stuff
Stars: ✭ 131 (-2.24%)
Mutual labels: cryptography
Password4j
Password4j is a user-friendly cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various cryptographic hash functions.
Stars: ✭ 124 (-7.46%)
Mutual labels: cryptography
Vrf.js
A pure Javascript Implementation of Verifiable Random Functions
Stars: ✭ 124 (-7.46%)
Mutual labels: cryptography
Noise
A decentralized P2P networking stack written in Go.
Stars: ✭ 1,695 (+1164.93%)
Mutual labels: cryptography
Stream Ciphers
Collection of stream cipher algorithms
Stars: ✭ 127 (-5.22%)
Mutual labels: cryptography
Lockbox Extension
Experimental Firefox extension for login management experiences, not being actively developed
Stars: ✭ 130 (-2.99%)
Mutual labels: cryptography
Endesive
en-crypt, de-crypt, si-gn, ve-rify - smime, pdf, xades and plain files in pure python
Stars: ✭ 122 (-8.96%)
Mutual labels: cryptography
Demo Twilio Backend Nodejs
A sample backend that demonstrates how to generate a Virgil JWT and Twilio token used for authentication with the Virgil and Twilio services
Stars: ✭ 128 (-4.48%)
Mutual labels: cryptography
tiny-keccak
An implementation of Keccak derived functions specified in FIPS-202
, SP800-185
and KangarooTwelve
.
The Keccak-f[1600]
permutation is fully unrolled; it's nearly as fast
as the Keccak team's optimized permutation.
Usage
In your Cargo.toml
specify what features (hash functions, you are intending to use).
Available options are: cshake
, fips202
, k12
, keccak
, kmac
, parallel_hash
, sha3
,
shake
, sp800
, tuple_hash
.
[dependencies]
tiny-keccak = { version = "2.0", features = ["sha3"] }
Example
use tiny_keccak::Sha3;
fn main() {
let mut sha3 = Sha3::v256();
let mut output = [0u8; 32];
let expected = b"\
\x64\x4b\xcc\x7e\x56\x43\x73\x04\x09\x99\xaa\xc8\x9e\x76\x22\xf3\
\xca\x71\xfb\xa1\xd9\x72\xfd\x94\xa3\x1c\x3b\xfb\xf2\x4e\x39\x38\
";
sha3.update(b"hello");
sha3.update(b" ");
sha3.update(b"world");
sha3.finalize(&mut output);
assert_eq!(expected, &output);
}
Benchmarks
Benchmarked with rust-crypto sha3 on:
MacBook Pro (Retina, 15-inch, Mid 2015)
2,5 GHz Intel Core i7
16 GB 1600 MHz DDR3
Intel Iris Pro 1536 MB
Benchmark code is available here
running 4 tests
test rust_crypto_sha3_256_input_32_bytes ... bench: 677 ns/iter (+/- 113) = 47 MB/s
test rust_crypto_sha3_256_input_4096_bytes ... bench: 17,619 ns/iter (+/- 4,174) = 232 MB/s
test tiny_keccak_sha3_256_input_32_bytes ... bench: 569 ns/iter (+/- 204) = 56 MB/s
test tiny_keccak_sha3_256_input_4096_bytes ... bench: 17,185 ns/iter (+/- 4,575) = 238 MB/s
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].