Skip to content
This repository has been archived by the owner on Aug 4, 2019. It is now read-only.

brycx/rigel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

[UNMAINTAINED] HMAC-SHA512 implementation optimized for embedded devices

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages