ronkathon
ronkathon copied to clipboard
bounty: Edwards-curve Digital Signature Algorithm (EdDSA)
Bounty description
Implement the Edwards-curve Digital Signature Algorithm (EdDSA) for ronkathon. EdDSA is a modern digital signature scheme, and this implementation should focus on the Edwards25519 curve variant.
Implementation requirements
- [ ] Implement key generation for Ed25519 curve
- Generate public / private key pairs
- Ensure proper key formatting and encoding
- [ ] Implement the EdDSA signing function, following the EdDSA specification for Ed25519
- Implement proper message preprocessing
- Generate valid signatures
- [ ] Implement the EdDSA sig verification function
- [ ] Implement proper error handling and input validation
- [ ] Create comprehensive unit tests, including test vectors from the EdDSA specification;
- Test various message lengths and edge cases
Bonus features
- [ ] Add a benchmarking suite to test performance
- [ ] Implement batch signature verification for improved efficiency
Resources
RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) Curve25519: new Diffie-Hellman speed records EdDSA for more curves The Ed25519 signature scheme
Criteria
Bounties will be rewarded based on the following criteria:
- Correctness and security: A thorough review of the implementation should convince our team that they are correct and secure, with all requirements met.
- Code clarity and quality: Succinct, easy-to-follow code with appropriate naming conventions. Utilize Rust’s type system for flexibility and security (e.g., compile-time checks where possible), and avoid external crates. Optimizations should be a lower priority than clarity, but can be included behind a feature flag as a bonus.
- Documentation quality: Provide comprehensive README’s, Cargo docs, and inline comments where code itself is not self-explanatory. Prioritize clarity and readability.