@@ -143,6 +143,40 @@ TEST_CASE("X509 Credential Depth 2")
143143 CHECK (x509.der_chain == x509_original.der_chain );
144144}
145145
146+ TEST_CASE (" X509 Credential EC certificates" )
147+ {
148+ // Chain is of depth 2
149+ const auto keydata =
150+ from_hex (" 30770201010420e32d0df2b096edadd778b3e884e84b14454d02668d3ef9f81e7"
151+ " d9425ca9acf82a00a06082a8648ce3d030107a144034200049c37d6e8722c509c"
152+ " c71bfda2389d4d3f6da6088b605c8bd6bd6dde6ccf77d3aa8c4f205cc273ac47b"
153+ " e9e353e43debf2ad9a226fe0ea7a11b5bb06eb5d932e045" );
154+ const auto cert = from_hex (
155+ " 308201e230820187a00302010202045a49733d300a06082a8648ce3d040302307331133011"
156+ " 060a0992268993f22c6401191603636f6d31173015060a0992268993f22c64011916076d61"
157+ " 696c6f757331143012060a0992268993f22c640101130474657374312d302b060355040b13"
158+ " 2431313436386463622d663830342d346563362d616166362d363263623437333931333733"
159+ " 301e170d3233303731353136303135305a170d3233303831353136303135305a3044311330"
160+ " 11060a0992268993f22c6401191603636f6d31173015060a0992268993f22c64011916076d"
161+ " 61696c6f757331143012060a0992268993f22c6401011304746573743059301306072a8648"
162+ " ce3d020106082a8648ce3d030107034200049c37d6e8722c509cc71bfda2389d4d3f6da608"
163+ " 8b605c8bd6bd6dde6ccf77d3aa8c4f205cc273ac47be9e353e43debf2ad9a226fe0ea7a11b"
164+ " 5bb06eb5d932e045a3383036300e0603551d0f0101ff0404030204f030160603551d250101"
165+ " ff040c300a06082b06010505070301300c0603551d130101ff04023000300a06082a8648ce"
166+ " 3d0403020349003046022100d670fb29f08dd0bc5d81cd6258ade6a8e5b6a5f630b510272c"
167+ " ffa8d77f79f24e022100d166a8ae636916c84e1d854def33a57549e06b5c1d2c5e4ea7a797"
168+ " df74401531" );
169+
170+ const std::vector<bytes> der_in{ cert };
171+
172+ auto key = SignaturePrivateKey::parse_der (
173+ mls::CipherSuite::ID ::P256_AES128GCM_SHA256_P256 , keydata);
174+
175+ auto cred = Credential::x509 (der_in);
176+ auto x509 = cred.get <X509Credential>();
177+ CHECK (x509.public_key () == key.public_key );
178+ }
179+
146180TEST_CASE (" X509 Credential Depth 2 Marshal/Unmarshal" )
147181{
148182 // Chain is of depth 2
0 commit comments