From c3034738f515ea18226d7468e2ccb25e27773da8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Stuczy=C5=84ski?= Date: Fri, 13 May 2022 17:09:27 +0100 Subject: [PATCH] changed signature verification to also include host --- contracts/coconut-dkg/src/dealers/transactions.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/contracts/coconut-dkg/src/dealers/transactions.rs b/contracts/coconut-dkg/src/dealers/transactions.rs index c2626d0c14..2eae1cddf8 100644 --- a/contracts/coconut-dkg/src/dealers/transactions.rs +++ b/contracts/coconut-dkg/src/dealers/transactions.rs @@ -81,6 +81,7 @@ pub(crate) fn validate_key_possession_signature( owner: &Addr, signature: String, encoded_key: EncodedEd25519PublicKeyRef<'_>, + host: &str, ) -> Result<(), ContractError> { let mut key_bytes = [0u8; 32]; let mut signature_bytes = [0u8; 64]; @@ -92,9 +93,12 @@ pub(crate) fn validate_key_possession_signature( .into(&mut signature_bytes) .map_err(ContractError::MalformedEd25519Signature)?; + let mut plaintext = owner.to_string(); + plaintext.push_str(host); + let res = deps .api - .ed25519_verify(owner.as_bytes(), &signature_bytes, &key_bytes)?; + .ed25519_verify(plaintext.as_bytes(), &signature_bytes, &key_bytes)?; if !res { Err(ContractError::InvalidEd25519Signature) @@ -123,6 +127,7 @@ pub fn try_add_dealer( &info.sender, owner_signature, &ed25519_key, + &host, ) { dealers_storage::blacklist_dealer( deps.storage,