From 525d7f14a8764a64e748a0117e16e2162d573b77 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Wed, 12 Mar 2025 10:20:30 +0100 Subject: [PATCH] Add crypto generate_key function --- src/crypto.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/crypto.rs b/src/crypto.rs index 02b6be9..aa5c315 100644 --- a/src/crypto.rs +++ b/src/crypto.rs @@ -1,4 +1,4 @@ -use anyhow::{Error, Result}; +use anyhow::Result; use sp_client::silentpayments::{ bitcoin_hashes::{sha256t_hash_newtype, Hash, HashEngine}, secp256k1::PublicKey, @@ -6,7 +6,7 @@ use sp_client::silentpayments::{ use aes_gcm::aead::{Aead, Payload}; pub use aes_gcm::{AeadCore, Aes256Gcm, KeyInit}; -use rand::thread_rng; +use rand::{thread_rng, CryptoRng, RngCore}; pub const AAD: &[u8] = "4nk".as_bytes(); @@ -25,6 +25,11 @@ impl AnkSharedSecretHash { } } +pub fn generate_key(rng: &mut (impl CryptoRng + RngCore)) -> [u8; 32] { + let key = Aes256Gcm::generate_key(rng); + key.into() +} + pub fn encrypt_with_key(key: &[u8; 32], plaintext: &[u8]) -> Result> { let encryption_eng = Aes256Gcm::new(key.into()); let nonce = Aes256Gcm::generate_nonce(&mut thread_rng());