Jethro Beekman d2df936e67 Fix parsing of PKCS#8 encoded Elliptic Curve keys.
The relevant ASN.1 definitions for a PKCS#8 encoded Elliptic Curve key are:

PrivateKeyInfo ::= SEQUENCE {
  version                   Version,
  privateKeyAlgorithm       PrivateKeyAlgorithmIdentifier,
  privateKey                PrivateKey,
  attributes           [0]  IMPLICIT Attributes OPTIONAL
}

AlgorithmIdentifier  ::=  SEQUENCE  {
  algorithm   OBJECT IDENTIFIER,
  parameters  ANY DEFINED BY algorithm OPTIONAL
}

ECParameters ::= CHOICE {
  namedCurve         OBJECT IDENTIFIER
  -- implicitCurve   NULL
  -- specifiedCurve  SpecifiedECDomain
}

ECPrivateKey ::= SEQUENCE {
  version        INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
  privateKey     OCTET STRING,
  parameters [0] ECParameters {{ NamedCurve }} OPTIONAL,
  publicKey  [1] BIT STRING OPTIONAL
}

Because of the two optional fields, there are 4 possible variants that need to
be parsed: no optional fields, only parameters, only public key, and both
optional fields. Previously mbedTLS was unable to parse keys with "only
parameters". Also, only "only public key" was tested. There was a test for "no
optional fields", but it was labelled incorrectly as SEC.1 and not run because
of a great renaming mixup.
2018-03-22 18:01:18 -07:00
..
2013-11-28 18:07:39 +01:00
2013-11-28 18:07:39 +01:00
2013-11-28 18:07:39 +01:00
2017-06-06 18:44:14 +02:00
2017-06-06 18:44:13 +02:00
2017-06-06 18:44:13 +02:00
2014-03-13 19:25:06 +01:00
2015-06-17 14:27:38 +02:00
2014-04-04 16:42:44 +02:00
2013-10-10 15:11:33 +02:00
2013-10-10 15:11:33 +02:00
2013-10-10 15:11:33 +02:00
2013-10-10 15:11:33 +02:00
2013-10-10 15:11:33 +02:00
2013-10-10 15:11:33 +02:00
2013-07-08 17:32:26 +02:00
2013-07-08 17:32:26 +02:00
2014-03-14 08:41:02 +01:00
2017-06-06 18:44:14 +02:00
2017-06-06 18:44:13 +02:00
2015-09-01 17:24:42 +02:00
2013-08-20 20:46:03 +02:00
2014-03-13 19:25:06 +01:00
2014-06-02 16:10:29 +02:00
2014-06-02 16:10:29 +02:00
2014-06-02 16:10:29 +02:00
2014-06-02 16:10:29 +02:00
2014-06-02 16:10:29 +02:00
2015-09-01 17:24:42 +02:00
2015-09-01 17:24:42 +02:00
2015-09-01 17:24:42 +02:00