Skip to content

Commit 4c4a951

Browse files
committed
Fix verification of secp256k1_prehashed
1 parent 686a880 commit 4c4a951

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

guest-agent/src/rpc_service.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use dstack_guest_agent_rpc::{
1717
WorkerVersion,
1818
};
1919
use dstack_types::{AppKeys, SysConfig};
20-
use ed25519_dalek::ed25519::signature::hazmat::PrehashSigner;
20+
use ed25519_dalek::ed25519::signature::hazmat::{PrehashSigner, PrehashVerifier};
2121
use ed25519_dalek::{
2222
Signer as Ed25519Signer, SigningKey as Ed25519SigningKey, Verifier as Ed25519Verifier,
2323
};
@@ -329,12 +329,18 @@ impl DstackGuestRpc for InternalRpcHandler {
329329
let signature = ed25519_dalek::Signature::from_slice(&request.signature)?;
330330
verifying_key.verify(&request.data, &signature).is_ok()
331331
}
332-
"secp256k1" | "secp256k1_prehashed" => {
332+
"secp256k1" => {
333333
let verifying_key =
334334
k256::ecdsa::VerifyingKey::from_sec1_bytes(&request.public_key)?;
335335
let signature = k256::ecdsa::Signature::from_slice(&request.signature)?;
336336
verifying_key.verify(&request.data, &signature).is_ok()
337337
}
338+
"secp256k1_prehashed" => {
339+
let verifying_key =
340+
k256::ecdsa::VerifyingKey::from_sec1_bytes(&request.public_key)?;
341+
let signature = k256::ecdsa::Signature::from_slice(&request.signature)?;
342+
verifying_key.verify_prehash(&request.data, &signature).is_ok()
343+
}
338344
_ => return Err(anyhow::anyhow!("Unsupported algorithm")),
339345
};
340346
Ok(VerifyResponse { valid })

0 commit comments

Comments
 (0)