Bug Description
Contact requests fail when the recipient identity only has an ENCRYPTION key and no DECRYPTION key. Many identities created by the mobile wallet or other tools only carry an ENCRYPTION key, which should be equally valid for ECDH operations.
Steps to Reproduce
- Have a recipient identity that was created with only a
Purpose::ENCRYPTION key (common for mobile wallet identities)
- Attempt to send a contact request to that identity
- The contact request fails because the key lookup only searches for
Purpose::DECRYPTION keys
Expected Behavior
Contact requests should succeed when the recipient has either an ENCRYPTION or DECRYPTION key, since both are valid ECDSA_SECP256K1 keys that work identically for ECDH.
Actual Behavior
The request fails with an error implying the sender should add keys, when in reality the recipient's ENCRYPTION key should be accepted as a valid alternative for the ECDH operation.
Context
This was originally reported as dashpay/dash-evo-tool#687 and a workaround PR was opened at dashpay/dash-evo-tool#725, but @lklimek identified this as a known Platform-level bug that should be fixed upstream rather than worked around in dash-evo-tool.
References
Bug Description
Contact requests fail when the recipient identity only has an
ENCRYPTIONkey and noDECRYPTIONkey. Many identities created by the mobile wallet or other tools only carry anENCRYPTIONkey, which should be equally valid for ECDH operations.Steps to Reproduce
Purpose::ENCRYPTIONkey (common for mobile wallet identities)Purpose::DECRYPTIONkeysExpected Behavior
Contact requests should succeed when the recipient has either an
ENCRYPTIONorDECRYPTIONkey, since both are valid ECDSA_SECP256K1 keys that work identically for ECDH.Actual Behavior
The request fails with an error implying the sender should add keys, when in reality the recipient's
ENCRYPTIONkey should be accepted as a valid alternative for the ECDH operation.Context
This was originally reported as dashpay/dash-evo-tool#687 and a workaround PR was opened at dashpay/dash-evo-tool#725, but @lklimek identified this as a known Platform-level bug that should be fixed upstream rather than worked around in dash-evo-tool.
References