baseline
baseline copied to clipboard
SRI - Accept Eddsa signatures throughout the application
Overview
Previously we accepted only Ecdsa signatures in the SRI because we used Metamask to login and Metamask used Ecdsa signatures. But Ecdsa signature verification inside circom zk circuits is very https://github.com/eea-oasis/baseline/pull/752 & the available alternatives are not widely used (causing issues with https://github.com/eea-oasis/baseline/pull/752#issuecomment-1733898957). Keeping these issues in mind, SRI team has decided to use Eddsa signatures.
Reference
PR #752
Tasks
- [ ] Generate Eddsa signatures on the client-side
- [ ] Add Eddsa sig verification in auth
Currently blocked by https://github.com/eea-oasis/baseline/issues/765
Approach used (as suggested by Andreas):
- get pubkey_owner from accounts in MM through API
- `message = keccack256(pubKey_owner)'
- call the MM signing function API with the message as payload and the target account to use
- API returns signature
- Convert hex signature into Bigint number
- That is the EdDSA privkey
- Then generate the EdDSA pubkey from privkey using circom crypto library
- Then use circom crypto library to create EdDSA signatures with privkey
Completed.