| Crates.io | everscale-crypto |
| lib.rs | everscale-crypto |
| version | 0.3.0 |
| created_at | 2022-02-13 20:41:44.434079+00 |
| updated_at | 2024-11-28 17:58:20.726262+00 |
| description | Cryptography primitives for Everscale |
| homepage | |
| repository | https://github.com/broxus/everscale-crypto |
| max_upload_size | |
| id | 531883 |
| size | 22,099 |
Cryptography primitives for Everscale
use everscale_crypto::ed25519;
fn main() {
let data: &[u8] = b"hello world";
let keys = ed25519::KeyPair::generate(&mut rand::thread_rng());
// Simple bytes signature
let signature = keys.sign_raw(data);
assert!(keys.public_key.verify_raw(&data, &signature));
// Sign TL data without intermediate serialization
let signature = keys.sign(keys.public_key.as_tl());
assert!(keys.public_key.verify(keys.public_key.as_tl(), &signature));
// Shared secret
let other_keys = ed25519::KeyPair::generate(&mut rand::thread_rng());
let secret1 = keys.compute_shared_secret(&other_keys.public_key);
let secret2 = other_keys.compute_shared_secret(&keys.public_key);
assert_eq!(secret1, secret2);
}