SIP-9: WebAuthn signature scheme support

  • SIP Number: 9
  • Title: WebAuthn signature scheme support
  • Description: This SIP proposes the addition of WebAuthn signature scheme to enable transaction signing using WebAuthn authenticators (passkeys).
  • Link: https://github.com/sui-foundation/sips/pull/9
7 Likes

Hello everyone! I’m the SIP proposer, and I’m thrilled to answer any questions you may have about the SIP right here. Fire away!

5 Likes

After a period without comments, this SIP has been moved into Review status.

In this stage, a public call will be arranged to invite further discussion.

2 Likes

appreciate, this PR can come into implementation soon, coz it is game-changing wallet solution to achive mass adoption

2 Likes

This is great. I can imagine combining passkey and zklogin will make web wallet very secure and easy-to-use.

2 Likes

It would be advisable to add the alg attribute to the proposed content to take advantage of the future extensibility of WebAuthn. The alg will utilize the SIGNATURE_FLAG_TO_SCHEME that matches the pubKeyCredParams values in WebAuthn.

const webAuthnSignature = bcs.struct('WebAuthnSignature', {
  alg: bcs.u8(), // eg. 0x02 for -7 (ES256)
  clientData: bcs.vector(bcs.u8()),
  authenticatorData: bcs.vector(bcs.u8()),
  signature: bcs.vector(bcs.u8()),
  publicKey: bcs.vector(bcs.u8()),
});

This way, the SIGNATURE_FLAG_TO_SCHEME (webauthn: 0x6) will be prefixed, followed by the BCS serialized information.

2 Likes