https://github.com/hskang9/eip-1024
EIP 1024 in rust
https://github.com/hskang9/eip-1024
Last synced: about 1 month ago
JSON representation
EIP 1024 in rust
- Host: GitHub
- URL: https://github.com/hskang9/eip-1024
- Owner: hskang9
- License: gpl-3.0
- Created: 2019-11-22T22:41:38.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-11-23T18:21:44.000Z (over 5 years ago)
- Last Synced: 2025-04-15T03:18:21.338Z (about 1 month ago)
- Language: Rust
- Size: 32.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EIP-1024  [](https://docs.rs/EIP-1024)
## Example
```rust
use eip_1024;
use saltbabe::{KeyPair,Public, Secret, Error};
use saltbabe::traits::FromUnsafeSlice;fn main() {
let bob_sk = "mJxmrVq8pfeR80HMZBTkjV+RiND1lqPqLuCdDUiduis=";
let bob_sk_slice: [u8; 32] = eip_1024::to_byte32(bob_sk.as_bytes());
let alice_sk = "Rz2i6pXUKcpWt6/b+mYtPPH+PiwhyLswOjcP8ZM0dyI=";
let alice_sk_slice: [u8; 32] = eip_1024::to_byte32(alice_sk.as_bytes());
let alice = saltbabe::crypto_box::gen_keypair_from_secret(&bob_sk_slice);
let bob = saltbabe::crypto_box::gen_keypair_from_secret(&alice_sk_slice);
// Alice requests Bob's public encryption key so bob sends his encryption public key
let bob_encrypt_keypair = eip_1024::get_encryption_keypair(*bob.secret());// Alice generates a random ephemeralKeyPair
let alice_ephemeral_keypair = saltbabe::crypto_box::gen_keypair_from_secret(alice.secret());
// Encrypt data first
let encrypted_data = eip_1024::encrypt(b"Hello world", None, **bob_encrypt_keypair.public(), *alice_ephemeral_keypair.secret()).unwrap();
// Bob generates his encryptionPrivateKey
let bob_encrypt_secret = bob_encrypt_keypair.secret();// Bob passes his encryptionPrivateKey
// along with the encrypted blob
// to nacl.box.open(ciphertext, nonce, ephemPublicKey, myEncryptionPrivatekey)
let decrypted = eip_1024::decrypt(encrypted_data, *bob_encrypt_secret).unwrap();
// Decrypted message
println!("{:?}", decrypted);
assert_eq!(
decrypted,
"Hello world"
);
}```
## License
This crate is distributed under the terms of GNU GENERAL PUBLIC LICENSE version 3.0.
See [LICENSE](../../LICENSE) for details.