在serde-encrypt
在GitHub上的测试中,密钥交换是如何进行的?我假设它是通过发送加密的String
来完成的,就像加密货币的公共地址一样。然而,在这个例子中,不清楚如何分别串行化/反串行化Sender
和Receiver
的PublicKey
和PrivateKey
。
#[test]
fn test_serde_encrypt_public_key() -> Result<(), Error> {
// public/private key generation to start key exchange
let alice_key_pair = ReceiverKeyPair::generate();
let bob_key_pair = SenderKeyPair::generate();
let alice_combined_key =
ReceiverCombinedKey::new(bob_key_pair.public_key(), alice_key_pair.private_key());
let bob_combined_key =
SenderCombinedKey::new(bob_key_pair.private_key(), alice_key_pair.public_key());
// key exchange HOW IS IT SENT?
let bob_shared_key = bob_generates_shared_key();
let encrypted_shared_key = bob_sends_shared_key(&bob_shared_key, &bob_combined_key)?;
let alice_shared_key = alice_receives_shared_key(encrypted_shared_key, &alice_combined_key)?;
assert_eq!(alice_shared_key, bob_shared_key);
// message exchange using shared key
let secret_message = alice_sends_secret_message(&alice_shared_key)?;
bob_reads_secret_message(secret_message, &bob_shared_key)
}
我也没有找到从String
构建eidogg. SenderPublicKey
的方法。
1条答案
按热度按时间vdzxcuhz1#
您可以使用任何能够发送字节序列的介质进行通信,下面是扩展为使用
mpsc<Vec<u8>>
对的示例。