Skip to main content
51

decrypt_error

FatalRFC 8446 §6.2

decrypt_error (51) is sent when a cryptographic operation in the handshake fails – specifically when verifying a signature or a Finished message MAC. The data decrypted successfully at the record layer but the handshake cryptographic verification failed.

Alert Code

51

Level

Fatal

Standard

RFC 8446

Description

decrypt_error is distinct from bad_record_mac (which covers record-layer AEAD failures) – it specifically covers handshake-layer cryptographic failures. The most common trigger is a failed CertificateVerify signature verification: the server signed a handshake transcript with its private key, and the client's signature verification failed. This can happen if the server's certificate and private key don't match (a common deployment mistake), or if the handshake transcript hash diverges between client and server.

Common Causes

  • CertificateVerify signature does not verify against the certificate's public key
  • Server's certificate and private key don't match
  • Finished message MAC verification failed
  • Handshake transcript hash divergence between client and server