On 8/25/20 12:33 PM, Anders Rundgren wrote:
The command
 keytool -genkeypair -keyalg ec -keysize 256 -dname "CN=me" -keystore mycert.jks
using JDK 11 generates the following signature:

220:     SEQUENCE
            {
222:         OBJECT IDENTIFIER ecdsa-with-Sha256 (1.2.840.10045.4.3.2)
232:         NULL
            }
234:     BIT STRING, encapsulates
            {
237:         SEQUENCE
                {
239:             INTEGER
                    71 51 7a 19 ac 22 92 ef 3b 6d f8 1c 5f d6 5f 89
                    3f 69 bf 84 aa ac a3 00 fb 3e 31 ef 3f b3 ea b4
273:             INTEGER
                    1a 07 d1 24 fd b8 1d c8 70 ca 0d ab 35 b1 d0 d5
                    b6 e2 b7 d7 02 38 36 63 d6 db ff ea 7f f0 7d a9
                }
            }
        }

AFAICT, "NULL" shouldn't be there although it in practice seems to be benign I could be an idea to fix it for EdDSA which I guess suffers from the same problem.

https://tools.ietf.org/html/rfc5758#section-3.2

Right. The RFC says:

   When the ecdsa-with-SHA224, ecdsa-with-SHA256, ecdsa-with-SHA384, or
   ecdsa-with-SHA512 algorithm identifier appears in the algorithm field
   as an AlgorithmIdentifier, the encoding MUST omit the parameters
   field.

I'll file a bug.

Did you test EdDSA? Looking at the latest JDK code, I see that EdDSA does not include NULL.

--Sean

Reply via email to