Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
- **Parity Ethereum version**: 2.1.4
- **Operating system**: all
- **Installation**: all
- **Fully synchronized**: yes
- **Network**: all
- **Restarted**: yes
## Current Behavior
Geth does not currently provide any encryption methods
Parity currently provides a data encryption method using elliptic curve secp256k1.
## Wanted Behavior
A new encryption method that works across different key management softwares. For example a sender could encrypt data with their MetaMask wallet and the receiver could decrypt it with Parity. This new encryption method will use curve25519 as specified in [EIP 1024](https://github.com/ethereum/EIPs/pull/1098).
[EIP 1024](https://github.com/ethereum/EIPs/pull/1098) uses a well audited library called [nacl](https://nacl.cr.yp.to/). The rust implementation of the necessary nacl functions can be found [here](https://github.com/javadevelopr/nacl-mini)
##Definition of Done
You have successfully completed this bounty, when:
1. A developer can request an accounts encryption public key
2. A developer can encrypt any arbitrary data with using elliptical curve25519
3. A developer can decrypt any arbitrary data encrypted with their accounts encryption public key
4. These methods are compatible with MetaMasks encryption methods listed (here)[https://github.com/MetaMask/eth-sig-util]