Description
Summary or problem description
We recently released the initial version of our Abstract Wallet for Neo (enclavewallet.com). One feature under consideration is social media login integration (OAuth-based logins). However, implementing it is currently blocked by missing cryptographic algorithms. Specifically, Neo is missing RSA and some hashing algorithms (like SHA512).
Our use case requires verifying signatures against externally hashed data rather than the original plaintext payload. Currently, the verification interops expect the entire original message, perform hashing internally, and then validate the signature. However, we cannot disclose the original JSON payload due to privacy constraints. We can only disclose the hash and associated signature, alongside a zero-knowledge proof indicating possession of the original payload.
Do you have any solution you want to propose?
- Enable verification of signatures against externally hashed payloads (applicable to all algorithms, not only RSA).
- Enable verification of RSA signatures.
- Add support for the SHA-512 hashing algorithm to facilitate interoperability with OAuth standards.
Where in the software does this update applies to?
- Compiler
- VM
EDIT: I don't know if these solutions will in fact, solve my problem. It seems that Using SHA512 inside ZK is extremely costly and may not be viable at all. However, I don't know/didn't find ZK-friendly hashing functions on Neo.