Skip to content

Commit 6d7fab8

Browse files
committed
sui-crypto: add support for verifying passkeys in multisigs
1 parent 36e4b45 commit 6d7fab8

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

crates/sui-crypto/src/multisig.rs

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,25 @@ impl MultisigVerifier {
8585
zklogin_verifier.verify(message, zklogin_authenticator.as_ref())
8686
}
8787

88+
#[cfg(not(feature = "passkey"))]
89+
(MultisigMemberPublicKey::Passkey(_), MultisigMemberSignature::Passkey(_)) => Err(
90+
SignatureError::from_source("support for passkey is not enabled"),
91+
),
92+
#[cfg(feature = "passkey")]
93+
(
94+
MultisigMemberPublicKey::Passkey(passkey_public_key),
95+
MultisigMemberSignature::Passkey(passkey_authenticator),
96+
) => {
97+
// Verify that the member pubkey matches the authenticator
98+
if passkey_public_key != &passkey_authenticator.public_key() {
99+
return Err(SignatureError::from_source(
100+
"member passkey public_key does not match authenticator",
101+
));
102+
}
103+
104+
crate::passkey::PasskeyVerifier::default().verify(message, passkey_authenticator)
105+
}
106+
88107
_ => Err(SignatureError::from_source(
89108
"member and signature scheme do not match",
90109
)),
@@ -401,8 +420,16 @@ fn multisig_pubkey_and_signature_from_user_signature(
401420
))
402421
}
403422

404-
UserSignature::Multisig(_) | UserSignature::Passkey(_) => {
405-
Err(SignatureError::from_source("invalid siganture scheme"))
406-
}
423+
#[cfg(not(feature = "passkey"))]
424+
UserSignature::Passkey(_) => Err(SignatureError::from_source(
425+
"support for passkey is not enabled",
426+
)),
427+
#[cfg(feature = "passkey")]
428+
UserSignature::Passkey(passkey_authenticator) => Ok((
429+
MultisigMemberPublicKey::Passkey(passkey_authenticator.public_key()),
430+
MultisigMemberSignature::Passkey(passkey_authenticator),
431+
)),
432+
433+
UserSignature::Multisig(_) => Err(SignatureError::from_source("invalid siganture scheme")),
407434
}
408435
}

0 commit comments

Comments
 (0)