Skip to content

Commit 85371c4

Browse files
authored
Merge pull request #29 from ComposableFi/godilov/polkadot-signature
fix: polkadot full signature check
2 parents a16c609 + 3ffb088 commit 85371c4

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

vesting-backend/src/main.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -295,14 +295,21 @@ pub async fn submit_signature(signature_params: web::Json<SignatureParams>) -> i
295295
return HttpResponse::Ok().body(serde_json::to_string(&ret).unwrap());
296296
}
297297
} else if post_params.network == 2 {
298-
let msg = post_params.message_bytes.as_deref().unwrap_or_default();
299-
let sig = post_params.signatures_bytes.as_deref().unwrap_or_default();
298+
let msg = post_params.message.as_bytes();
299+
let sig = post_params.signatures.as_bytes();
300+
301+
let msgb = post_params.message_bytes.as_deref().unwrap_or_default();
302+
let sigb = post_params.signatures_bytes.as_deref().unwrap_or_default();
300303

301304
let result = verify::verify_polkadot_signature(msg, sig, &post_params.pubkey);
302305
let result_ed = verify::verify_polkadot_signature_ed25519(msg, sig, &post_params.pubkey);
303306
let result_ec = verify::verify_polkadot_signature_ecdsa(msg, sig, &post_params.pubkey);
304307

305-
if result || result_ed || result_ec {
308+
let resultb = verify::verify_polkadot_signature(msgb, sigb, &post_params.pubkey);
309+
let result_edb = verify::verify_polkadot_signature_ed25519(msgb, sigb, &post_params.pubkey);
310+
let result_ecb = verify::verify_polkadot_signature_ecdsa(msgb, sigb, &post_params.pubkey);
311+
312+
if result || result_ed || result_ec || resultb || result_edb || result_ecb {
306313
let mut dropped_item = DroppedItem {
307314
address: post_params.pubkey.clone(),
308315
solana_address: post_params.message.clone(),

vesting-backend/src/verify.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,21 +97,18 @@ pub fn verify_polkadot_signature_ed25519(
9797
signature.verify(message, &public_key)
9898
}
9999
pub fn verify_polkadot_signature_ecdsa(message: &[u8], signature: &[u8], public_key: &str) -> bool {
100-
// Convert the signature from bytes to the correct type
101100
let signature = EcdsaSignature::from_slice(signature);
102101
if signature.is_none() {
103102
return false;
104103
}
105104
let signature = signature.unwrap();
106105

107-
// Convert the public key from bytes to the correct type
108106
let public_key = EcdsaPublic::from_ss58check(public_key);
109107
if public_key.is_err() {
110108
return false;
111109
}
112110
let public_key = public_key.unwrap();
113111

114-
// Verify the signature
115112
signature.verify(message, &public_key)
116113
}
117114

0 commit comments

Comments
 (0)