Re: In-the-wild implementations of RFC6955?

Anders Rundgren <[email protected]> Thu, 26 May 2022 19:42:00 +0200
Newsgroups gmane.ietf.x509
Message-ID <[email protected]>
It seems that things get a bit more challenging with ECDH using X25519 keys:
https://mta.openssl.org/pipermail/openssl-users/2021-March/013549.html

This is (hopefully) a proper ECDH certificate using an X25519 public key:


    0: SEQUENCE {
    4:   SEQUENCE {
    8:     [0] {
   10:       INTEGER 2
           }
   13:     INTEGER  01 80 fb 4a 58 1a
   21:     SEQUENCE {
   23:       OBJECT IDENTIFIER ecdsa-with-Sha512 (1.2.840.10045.4.3.4)
           }
   33:     SEQUENCE {
   35:       SET {
   37:         SEQUENCE {
   39:           OBJECT IDENTIFIER commonName (2.5.4.3)
   44:           PrintableString 'Test Sub CA'
               }
             }
           }
   57:     SEQUENCE {
   59:       UTCTime 180101000000
   74:       UTCTime 301231235959
           }
   89:     SEQUENCE {
   91:       SET {
   93:         SEQUENCE {
   95:           OBJECT IDENTIFIER commonName (2.5.4.3)
  100:           PrintableString 'Test certificate matching x25519privatekey.pem'
               }
             }
           }
  148:     SEQUENCE {
  150:       SEQUENCE {
  152:         OBJECT IDENTIFIER X25519 (1.3.101.110)
             }
  157:       BIT STRING, 32 bytes
       0000: e9 9a 0c ef 20 58 94 96 0d 9b 1c 05 97 85 13 dc   '.... X..........'
       0010: cb 42 a1 3b fb ce d5 23 a5 1b 8a 11 7a d5 f0 0c   '.B.;...#....z...'
           }
  192:     [3] {
  194:       SEQUENCE {
  196:         SEQUENCE {
  198:           OBJECT IDENTIFIER basicConstraints (2.5.29.19)
  203:           OCTET STRING, encapsulates {
  205:             SEQUENCE {
                   }
                 }
               }
  207:         SEQUENCE {
  209:           OBJECT IDENTIFIER keyUsage (2.5.29.15)
  214:           BOOLEAN true
  217:           OCTET STRING, encapsulates {
  219:             BIT STRING, 5 bits (unused=3) '00001'B
                 }
               }
  223:         SEQUENCE {
  225:           OBJECT IDENTIFIER subjectKeyIdentifier (2.5.29.14)
  230:           OCTET STRING, encapsulates {
  232:             OCTET STRING, 20 bytes
       0000: b2 79 b5 8e 62 05 b5 3d e3 7c 6a 54 5e 36 de ae   '.y..b..=.|jT^6..'
       0010: 02 90 08 98                                       '....'
                 }
               }
  254:         SEQUENCE {
  256:           OBJECT IDENTIFIER authorityKeyIdentifier (2.5.29.35)
  261:           OCTET STRING, encapsulates {
  263:             SEQUENCE {
  265:               [0], 20 bytes
       0000: a3 11 65 cf 5d c0 50 a7 4b e5 19 e1 76 7b 54 9a   '..e.].P.K...v{T.'
       0010: b7 4f 97 8a                                       '.O..'
                   }
                 }
               }
             }
           }
         }
  287:   SEQUENCE {
  289:     OBJECT IDENTIFIER ecdsa-with-Sha512 (1.2.840.10045.4.3.4)
         }
  299:   BIT STRING, encapsulates {
  303:     SEQUENCE {
  306:       INTEGER
               01 b7 80 e4 b5 5c 68 90 81 39 15 03 f4 c1 da 08
               df 9f 33 db 7b a4 e9 e3 f1 3b 5a ad 99 c3 07 9c
               34 b4 09 a8 4a 7c 67 73 dc c2 51 e5 9e 6c 58 de
               3e 54 45 47 e0 5d 42 b9 16 26 d5 86 c5 f4 86 3e
               61 f2
  374:       INTEGER
               01 ba d7 5c a2 fa b8 39 6f 14 09 7c ff 55 45 88
               9e 9d 9d 4d f3 44 cd de c8 de 92 75 f1 13 fb 54
               43 92 5e 90 79 97 66 b9 bf ac 8e 88 b5 19 82 ad
               d2 f1 04 e6 4c 94 d1 06 9d 64 8d 50 02 4a fe 48
               72 7b
           }
         }
       }

Anders