Support for SHA384 and SHA512 Hashing Algorithms

The question is fairly generic and I'm not sure what exactly it is aimed at. Certificates do not directly "support" hashing algorithms. Rather they are a primitive used in various algorithms that may be either used within or encoded in the certificate.

One of the most prominent fields within a certificate where hashing algorithms are involved is the signature algorithm field. This field indicates the signature algorithm used to sign the certificate (which involves a hash).

This field has to be based upon the issuing certificate, because it's signed with the issuer's key. While not technically required, a common method is to use a hash method that scales with the keylength: 2048 bit RSA keys use SHA-256, 3072 bit use SHA-384 and 4096 bit uses SHA-512. For ECDSA, P-256 means SHA-256, P-384 SHA384 and so on.

Let's Encrypt currently has two active issuers:

R3 and E1. The signature algorithms for these certificates are as follows:

  • For certificates signed by R3 (by default all certificates)
    • sha256WithRSAEncryption aka RSASSA‐PKCS1‐v1_5 with SHA‐256. This is because R3 is a 2048-bit RSA key.
  • For certificates signed by E1 (ECDSA leafs only; currently requires opt-in)
    • ecdsa-with-SHA384. This is because E1 is a P-384 key.

If your question was aimed at something different than the signature algorithm, please specify and we're happy to answer.

(Also, for clarification: The above signature algorithms are fixed and cannot be changed by the subscriber)

10 Likes