In this repo I am implementing couple of "secp256r1' signature scheme funcctionalities.
- Develop the secp256r1 signature scheme to generate and authenticate digital signatures.
- Craft a function that transforms a private key into a public key, to be utilized for transaction signing.
- Construct a function that generates a unique private key for every wallet owner.
- Formulate a function to encode transaction data, aiding in signature verification.
- Incorporate unit tests for both the secp256r1 signature scheme and the encoding function.
- Create a function that verifies a transaction's signature, encompassing the transaction ID, public key, and the signature itself.
- Introduce error handling mechanisms for cases of invalid signatures and public keys.
- Develop comprehensive tests for the signature verification function, which should consider edge cases and scenarios with invalid inputs.
- Construct a function that validates the wallet policy prior to sanctioning a transaction. This should take into account the number of necessary signatures and the list of owners.
- Integrate unit tests for the wallet policy validation function, covering edge cases and scenarios with invalid inputs.