16个不稳定版本 (3个重大更改)
0.5.7 | 2019年11月6日 |
---|---|
0.5.6 | 2019年10月30日 |
0.5.2 | 2019年9月23日 |
0.4.0 | 2019年9月16日 |
0.1.4 | 2019年4月17日 |
#1 in #cryptonote
每月下载量46次
用于cryptonote-wallet
5MB
11K SLoC
基于CryptoNote的加密货币的原生密码库
简介
原生密码库旨在为C/C++提供基于Rust的加密实现。目前,该库已实现了cryptonote基金会在其参考币锻造代码库中提供的所有哈希函数。
现在这个库提供了以下接口
-
哈希
Hash::slow -> cn_slow_hash
Hash::fast -> cn_fast_hash
Hash::check_with_difficulty -> cryptonote::check_hash -
Chacha(带有ChachaKey,ChachaIV生成器)
Chacha::generate -> chacha8 -
密钥
Key::generate_private_key -> generate_private_key
Key::secret_to_public -> secret_key_to_public_key
Key::generate_key_pair -> generate_keys
Key::check_public_key -> check_public_key
Key::generate_key_derivation -> generate_key_derivation
Key::derive_public_key -> derive_public_key
Key::underive_public_key -> underive_public_key
Key::derive_secret_key -> derive_secret_key
Key::generate_signature -> generate_signature
Key::check_signature -> check_signature
Key::generate_key_image -> generate_key_image -
环
Ring::generate_signature -> generate_ring_signature Ring::check_signature -> check_ring_signature -
标量
EllipticCurveScalar::random -> random_scalar
EllipticCurveScalar::check -> check_scalar
EllipticCurveScalar::to_hash -> hash_to_scalar
EllipticCurveScalar::from_hash -> hash_to_ec
EllipticCurvePoint::from_hash -> hash_to_point
用法
用法可以在测试中找到。
// Generate key
let key = ChachaKey::generate(String::from(""));
// Generate iv
let iv = ChachaIV::from([0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18]);
// Generate chacha object
let chacha = Chacha::new(key, iv);
// Prepare plain text
let plain = *b"hello world!";
// Encrypt with chacha8
let cipher = chacha.encrypt(&plain[..]);
// Encrypt again will get the original plain text
let recipher = chacha.encrypt(&cipher[..]);
// they should be equal
assert!(plain == recipher.as_slice());