NewDash Dots are hereMini apps in Dash, with payments built inLearn more

Products · Security

Verification & Troubleshooting

What encryption does and doesn't prove, and how to fix common decryption and reply failures.

Requests aren't signed

Encryption keeps the request private, but it doesn't prove who sent it. Your public key is public, so anyone who knows your URL can send a request your server will decrypt. To stay safe:

  • Treat flowData and exportedData as untrusted input.
  • Before you move money or change an account, check the facts on your side, such as a payment's status in your own records.
  • Keep exchange URLs out of public code and logs.

RSA settings by language

Monime uses RSA-OAEP with SHA-256 for both the OAEP hash and MGF1. Getting this wrong is the most common cause of failed decryption.

LanguageWorks with the defaults?What to do
Node.jsYesoaepHash: "sha256" sets both hashes
PythonYesPass SHA-256 for both in OAEP()
GoYesrsa.DecryptOAEP(sha256.New(), ...) uses SHA-256 for both
JavaNoSet MGF1ParameterSpec.SHA256 through OAEPParameterSpec
PHPNoUse phpseclib v3 instead of openssl_private_decrypt

Fixes

If you're still stuck, email [email protected] with your flow's name and the error your server logs. Don't send your private key.

Keep reading