diff --git a/BUILD.gn b/BUILD.gn
index 568ffe6..1f7171c 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -105,6 +105,7 @@
 
 pw_static_library("dice_with_boringssl_p256_ops") {
   public = [
+    "include/dice/boringssl_ecdsa_utils.h",
     "include/dice/dice.h",
     "include/dice/utils.h",
   ]
@@ -125,6 +126,7 @@
 
 pw_static_library("dice_with_boringssl_p384_ops") {
   public = [
+    "include/dice/boringssl_ecdsa_utils.h",
     "include/dice/dice.h",
     "include/dice/utils.h",
   ]
@@ -160,7 +162,10 @@
     "src/utils.c",
   ]
   deps = [ "//third_party/mbedtls:mbedcrypto" ]
-  all_dependent_configs = [ ":mbedtls_ops_config" ]
+  all_dependent_configs = [
+    ":mbedtls_ops_config",
+    ":example_profile",
+  ]
 }
 
 pw_static_library("dice_with_cbor_ed25519_cert") {
@@ -365,8 +370,23 @@
   ]
 }
 
+pw_test("boringssl_p256_ops_test") {
+  sources = [
+    "src/boringssl_p256_ops_test.cc",
+    "src/test_utils.cc",
+  ]
+  deps = [
+    ":boringssl_ecdsa_utils",
+    ":dice_with_boringssl_p256_ops",
+    "$dir_pw_string:pw_string",
+    "//third_party/boringssl:crypto",
+    "//third_party/cose-c:cose-c_p256",
+  ]
+}
+
 pw_executable("boringssl_p256_ops_fuzzer") {
   deps = [
+    ":boringssl_ecdsa_utils",
     ":dice_with_boringssl_p256_ops",
     ":fuzzer",
   ]
@@ -374,6 +394,7 @@
 
 pw_executable("boringssl_p384_ops_fuzzer") {
   deps = [
+    ":boringssl_ecdsa_utils",
     ":dice_with_boringssl_p384_ops",
     ":fuzzer",
   ]
@@ -532,6 +553,7 @@
   tests = [
     ":android_test",
     ":boringssl_ed25519_ops_test",
+    ":boringssl_p256_ops_test",
     ":cbor_ed25519_cert_op_test",
     ":cbor_p256_cert_op_test",
     ":cbor_p384_cert_op_test",
diff --git a/include/dice/config/mbedtls_ecdsa_p256/dice/config.h b/include/dice/config/mbedtls_ecdsa_p256/dice/config.h
index 624682c..ae30fee 100644
--- a/include/dice/config/mbedtls_ecdsa_p256/dice/config.h
+++ b/include/dice/config/mbedtls_ecdsa_p256/dice/config.h
@@ -16,9 +16,8 @@
 #define DICE_CONFIG_MBEDTLS_ECDSA_P256_DICE_CONFIG_H_
 
 // ECDSA-P256
-#define DICE_PUBLIC_KEY_BUFFER_SIZE 33
+#define DICE_PUBLIC_KEY_BUFFER_SIZE 65
 #define DICE_PRIVATE_KEY_BUFFER_SIZE 32
 #define DICE_SIGNATURE_BUFFER_SIZE 64
-#define DICE_PROFILE_NAME "openssl.example.p256_compressed"
 
 #endif  // DICE_CONFIG_MBEDTLS_ECDSA_P256_DICE_DICE_CONFIG_H_
diff --git a/include/dice/known_test_values.h b/include/dice/known_test_values.h
index 0f45adc..a56ea56 100644
--- a/include/dice/known_test_values.h
+++ b/include/dice/known_test_values.h
@@ -151,13 +151,13 @@
 //     Data:
 //         Version: 3 (0x2)
 //         Serial Number:
-//             7c:7d:c0:a3:c1:e7:8d:4e:68:bc:c1:a2:32:9e:f9:1c:a8:12:44:91
-//         Signature Algorithm: ecdsa-with-SHA512
-//         Issuer: serialNumber=4c514d88db0f81d57beb96177e3d7ea4aa581e66
+//             2e:75:b6:e7:23:0c:20:f2:96:0b:de:4a:cf:12:88:d4:ab:66:5b:9b
+//         Signature Algorithm: ecdsa-with-SHA256
+//         Issuer: serialNumber=672d0053ae4513fbb3bac8209daeb3e8897681cd
 //         Validity
 //             Not Before: Mar 22 23:59:59 2018 GMT
 //             Not After : Dec 31 23:59:59 9999 GMT
-//         Subject: serialNumber=7c7dc0a3c1e78d4e68bcc1a2329ef91ca8124491
+//         Subject: serialNumber=2e75b6e7230c20f2960bde4acf1288d4ab665b9b
 //         Subject Public Key Info:
 //             Public Key Algorithm: id-ecPublicKey
 //                 Public-Key: (256 bit)
@@ -171,15 +171,15 @@
 //                 NIST CURVE: P-256
 //         X509v3 extensions:
 //             X509v3 Authority Key Identifier:
-//                 4C:51:4D:88:DB:0F:81:D5:7B:EB:96:17:7E:3D:7E:A4:AA:58:1E:66
+//                 67:2D:00:53:AE:45:13:FB:B3:BA:C8:20:9D:AE:B3:E8:89:76:81:CD
 //             X509v3 Subject Key Identifier:
-//                 7C:7D:C0:A3:C1:E7:8D:4E:68:BC:C1:A2:32:9E:F9:1C:A8:12:44:91
+//                 2E:75:B6:E7:23:0C:20:F2:96:0B:DE:4A:CF:12:88:D4:AB:66:5B:9B
 //             X509v3 Key Usage: critical
 //                 Certificate Sign
 //             X509v3 Basic Constraints: critical
 //                 CA:TRUE
 //             1.3.6.1.4.1.11129.2.1.24: critical
-//     0:d=0  hl=3 l= 244 cons: SEQUENCE
+//     0:d=0  hl=3 l= 229 cons: SEQUENCE
 //     3:d=1  hl=2 l=  66 cons:  cont [ 0 ]
 //     5:d=2  hl=2 l=  64 prim:   OCTET STRING
 //       0000 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
@@ -200,32 +200,32 @@
 //       0030 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
 //   207:d=1  hl=2 l=   3 cons:  cont [ 6 ]
 //   209:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
-//   212:d=1  hl=2 l=  33 cons:  cont [ 7 ]
-//   214:d=2  hl=2 l=  31 prim:   UTF8STRING :openssl.example.p256_compressed
+//   212:d=1  hl=2 l=  18 cons:  cont [ 7 ]
+//   214:d=2  hl=2 l=  16 prim:   UTF8STRING        :opendice.example
 //
-//     Signature Algorithm: ecdsa-with-SHA512
+//     Signature Algorithm: ecdsa-with-SHA256
 //     Signature Value:
-//         30:46:02:21:00:b8:1f:70:94:16:6a:2b:7b:8c:d8:0d:62:9b:
-//         5a:5a:ff:49:16:f7:f7:e1:f5:43:d5:14:6a:6b:f1:11:03:48:
-//         57:02:21:00:e0:24:69:f8:42:a0:03:e2:8b:51:eb:ea:9c:55:
-//         92:b7:80:a1:81:33:b3:68:42:3c:05:df:aa:13:4c:61:52:f6
-constexpr uint8_t kExpectedX509P256Cert_ZeroInput[739] = {
-    0x30, 0x82, 0x02, 0xdf, 0x30, 0x82, 0x02, 0x84, 0xa0, 0x03, 0x02, 0x01,
-    0x02, 0x02, 0x14, 0x7c, 0x7d, 0xc0, 0xa3, 0xc1, 0xe7, 0x8d, 0x4e, 0x68,
-    0xbc, 0xc1, 0xa2, 0x32, 0x9e, 0xf9, 0x1c, 0xa8, 0x12, 0x44, 0x91, 0x30,
-    0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x30,
+//         30:44:02:20:4a:e7:b7:40:73:3e:28:4f:02:7b:07:af:ff:6d:
+//         6c:3a:cd:01:eb:30:aa:06:67:b9:18:05:31:9f:e0:09:bb:31:
+//         02:20:59:56:4a:35:fc:46:2b:5b:99:1d:87:1b:50:5e:7b:ce:
+//         c9:91:7e:89:13:20:91:c2:85:48:46:ec:00:a4:4b:7d
+constexpr uint8_t kExpectedX509P256Cert_ZeroInput[721] = {
+    0x30, 0x82, 0x02, 0xcd, 0x30, 0x82, 0x02, 0x74, 0xa0, 0x03, 0x02, 0x01,
+    0x02, 0x02, 0x14, 0x2e, 0x75, 0xb6, 0xe7, 0x23, 0x0c, 0x20, 0xf2, 0x96,
+    0x0b, 0xde, 0x4a, 0xcf, 0x12, 0x88, 0xd4, 0xab, 0x66, 0x5b, 0x9b, 0x30,
+    0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30,
     0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28,
-    0x34, 0x63, 0x35, 0x31, 0x34, 0x64, 0x38, 0x38, 0x64, 0x62, 0x30, 0x66,
-    0x38, 0x31, 0x64, 0x35, 0x37, 0x62, 0x65, 0x62, 0x39, 0x36, 0x31, 0x37,
-    0x37, 0x65, 0x33, 0x64, 0x37, 0x65, 0x61, 0x34, 0x61, 0x61, 0x35, 0x38,
-    0x31, 0x65, 0x36, 0x36, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33,
+    0x36, 0x37, 0x32, 0x64, 0x30, 0x30, 0x35, 0x33, 0x61, 0x65, 0x34, 0x35,
+    0x31, 0x33, 0x66, 0x62, 0x62, 0x33, 0x62, 0x61, 0x63, 0x38, 0x32, 0x30,
+    0x39, 0x64, 0x61, 0x65, 0x62, 0x33, 0x65, 0x38, 0x38, 0x39, 0x37, 0x36,
+    0x38, 0x31, 0x63, 0x64, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33,
     0x32, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x18, 0x0f, 0x39,
     0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35,
     0x39, 0x5a, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04,
-    0x05, 0x13, 0x28, 0x37, 0x63, 0x37, 0x64, 0x63, 0x30, 0x61, 0x33, 0x63,
-    0x31, 0x65, 0x37, 0x38, 0x64, 0x34, 0x65, 0x36, 0x38, 0x62, 0x63, 0x63,
-    0x31, 0x61, 0x32, 0x33, 0x32, 0x39, 0x65, 0x66, 0x39, 0x31, 0x63, 0x61,
-    0x38, 0x31, 0x32, 0x34, 0x34, 0x39, 0x31, 0x30, 0x59, 0x30, 0x13, 0x06,
+    0x05, 0x13, 0x28, 0x32, 0x65, 0x37, 0x35, 0x62, 0x36, 0x65, 0x37, 0x32,
+    0x33, 0x30, 0x63, 0x32, 0x30, 0x66, 0x32, 0x39, 0x36, 0x30, 0x62, 0x64,
+    0x65, 0x34, 0x61, 0x63, 0x66, 0x31, 0x32, 0x38, 0x38, 0x64, 0x34, 0x61,
+    0x62, 0x36, 0x36, 0x35, 0x62, 0x39, 0x62, 0x30, 0x59, 0x30, 0x13, 0x06,
     0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,
     0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x4f, 0x3b,
     0x4e, 0x82, 0xc4, 0x5a, 0xda, 0x08, 0x45, 0x89, 0xc2, 0x19, 0x7b, 0xaf,
@@ -233,45 +233,44 @@
     0xae, 0xc2, 0x69, 0x54, 0x1c, 0x6b, 0xe7, 0xeb, 0x40, 0x19, 0xab, 0x55,
     0xc6, 0x6b, 0xc8, 0x8b, 0xb8, 0xb4, 0x69, 0xad, 0x7e, 0xe8, 0x58, 0x9e,
     0x07, 0xd2, 0xf8, 0xbc, 0x88, 0x8e, 0xb3, 0x11, 0xc2, 0xdf, 0x97, 0x3b,
-    0x1b, 0x4a, 0xa3, 0x82, 0x01, 0x72, 0x30, 0x82, 0x01, 0x6e, 0x30, 0x1f,
-    0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x4c,
-    0x51, 0x4d, 0x88, 0xdb, 0x0f, 0x81, 0xd5, 0x7b, 0xeb, 0x96, 0x17, 0x7e,
-    0x3d, 0x7e, 0xa4, 0xaa, 0x58, 0x1e, 0x66, 0x30, 0x1d, 0x06, 0x03, 0x55,
-    0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7c, 0x7d, 0xc0, 0xa3, 0xc1, 0xe7,
-    0x8d, 0x4e, 0x68, 0xbc, 0xc1, 0xa2, 0x32, 0x9e, 0xf9, 0x1c, 0xa8, 0x12,
-    0x44, 0x91, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+    0x1b, 0x4a, 0xa3, 0x82, 0x01, 0x62, 0x30, 0x82, 0x01, 0x5e, 0x30, 0x1f,
+    0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x67,
+    0x2d, 0x00, 0x53, 0xae, 0x45, 0x13, 0xfb, 0xb3, 0xba, 0xc8, 0x20, 0x9d,
+    0xae, 0xb3, 0xe8, 0x89, 0x76, 0x81, 0xcd, 0x30, 0x1d, 0x06, 0x03, 0x55,
+    0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2e, 0x75, 0xb6, 0xe7, 0x23, 0x0c,
+    0x20, 0xf2, 0x96, 0x0b, 0xde, 0x4a, 0xcf, 0x12, 0x88, 0xd4, 0xab, 0x66,
+    0x5b, 0x9b, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
     0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
     0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
-    0x82, 0x01, 0x09, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79,
-    0x02, 0x01, 0x18, 0x01, 0x01, 0xff, 0x04, 0x81, 0xf7, 0x30, 0x81, 0xf4,
-    0xa0, 0x42, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x81, 0xfa, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79, 0x02,
+    0x01, 0x18, 0x01, 0x01, 0xff, 0x04, 0x81, 0xe8, 0x30, 0x81, 0xe5, 0xa0,
+    0x42, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x42, 0x04, 0x40,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x42, 0x04, 0x40, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0xa4, 0x42, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0xa4, 0x42, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0xa6, 0x03, 0x0a, 0x01, 0x00, 0xa7, 0x21, 0x0c, 0x1f, 0x6f, 0x70, 0x65,
-    0x6e, 0x73, 0x73, 0x6c, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
-    0x2e, 0x70, 0x32, 0x35, 0x36, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65,
-    0x73, 0x73, 0x65, 0x64, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,
-    0x3d, 0x04, 0x03, 0x04, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21, 0x00,
-    0xb8, 0x1f, 0x70, 0x94, 0x16, 0x6a, 0x2b, 0x7b, 0x8c, 0xd8, 0x0d, 0x62,
-    0x9b, 0x5a, 0x5a, 0xff, 0x49, 0x16, 0xf7, 0xf7, 0xe1, 0xf5, 0x43, 0xd5,
-    0x14, 0x6a, 0x6b, 0xf1, 0x11, 0x03, 0x48, 0x57, 0x02, 0x21, 0x00, 0xe0,
-    0x24, 0x69, 0xf8, 0x42, 0xa0, 0x03, 0xe2, 0x8b, 0x51, 0xeb, 0xea, 0x9c,
-    0x55, 0x92, 0xb7, 0x80, 0xa1, 0x81, 0x33, 0xb3, 0x68, 0x42, 0x3c, 0x05,
-    0xdf, 0xaa, 0x13, 0x4c, 0x61, 0x52, 0xf6};
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6,
+    0x03, 0x0a, 0x01, 0x00, 0xa7, 0x12, 0x0c, 0x10, 0x6f, 0x70, 0x65, 0x6e,
+    0x64, 0x69, 0x63, 0x65, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
+    0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02,
+    0x03, 0x47, 0x00, 0x30, 0x44, 0x02, 0x20, 0x4a, 0xe7, 0xb7, 0x40, 0x73,
+    0x3e, 0x28, 0x4f, 0x02, 0x7b, 0x07, 0xaf, 0xff, 0x6d, 0x6c, 0x3a, 0xcd,
+    0x01, 0xeb, 0x30, 0xaa, 0x06, 0x67, 0xb9, 0x18, 0x05, 0x31, 0x9f, 0xe0,
+    0x09, 0xbb, 0x31, 0x02, 0x20, 0x59, 0x56, 0x4a, 0x35, 0xfc, 0x46, 0x2b,
+    0x5b, 0x99, 0x1d, 0x87, 0x1b, 0x50, 0x5e, 0x7b, 0xce, 0xc9, 0x91, 0x7e,
+    0x89, 0x13, 0x20, 0x91, 0xc2, 0x85, 0x48, 0x46, 0xec, 0x00, 0xa4, 0x4b,
+    0x7d};
 
 constexpr uint8_t kExpectedX509P384Cert_ZeroInput[0] = {};
 
@@ -351,12 +350,12 @@
     0x11, 0xc2, 0xdf, 0x97, 0x3b, 0x1b, 0x4a, 0x3a, 0x00, 0x47, 0x44, 0x58,
     0x41, 0x20, 0x3a, 0x00, 0x47, 0x44, 0x59, 0x70, 0x6f, 0x70, 0x65, 0x6e,
     0x64, 0x69, 0x63, 0x65, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
-    0x58, 0x40, 0x6e, 0x90, 0x47, 0xe9, 0xe4, 0x3a, 0xe6, 0x34, 0xe2, 0xe8,
-    0x65, 0x13, 0x8a, 0xde, 0x8a, 0x0d, 0x5d, 0xa6, 0xd2, 0xad, 0xb7, 0x2c,
-    0x75, 0x23, 0x77, 0x86, 0x9e, 0x23, 0xff, 0xfc, 0xed, 0x3b, 0x28, 0x7a,
-    0xde, 0x88, 0x27, 0xa7, 0xa7, 0xa8, 0xd2, 0x66, 0xea, 0xde, 0x7b, 0x65,
-    0x5d, 0x19, 0x85, 0x7d, 0x62, 0x60, 0x8e, 0x97, 0x57, 0x75, 0x8a, 0x5c,
-    0x43, 0x99, 0xe1, 0xc3, 0x02, 0xe4};
+    0x58, 0x40, 0xf0, 0x02, 0x13, 0x25, 0x57, 0x4d, 0x4b, 0x52, 0x3d, 0xfe,
+    0x0c, 0x37, 0x02, 0x67, 0xc7, 0xeb, 0x82, 0x07, 0x37, 0x37, 0x1c, 0x6f,
+    0xd1, 0xc8, 0x04, 0x58, 0x1d, 0x64, 0x34, 0xb4, 0x7f, 0x93, 0x96, 0x1b,
+    0x65, 0xce, 0x08, 0x71, 0x00, 0x5a, 0x3e, 0xaa, 0x94, 0x8e, 0x6a, 0xcf,
+    0x4d, 0x44, 0x0d, 0xb0, 0x16, 0x99, 0xe6, 0xae, 0x17, 0x6b, 0x9b, 0x94,
+    0x91, 0xe2, 0x8c, 0xc7, 0x88, 0xf9};
 
 constexpr uint8_t kExpectedCborP384Cert_ZeroInput[564] = {
     0x84, 0x44, 0xa1, 0x01, 0x38, 0x22, 0xa0, 0x59, 0x01, 0xc8, 0xa9, 0x01,
@@ -398,14 +397,14 @@
     0x05, 0xb5, 0x29, 0xa0, 0xf1, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41, 0x20,
     0x3a, 0x00, 0x47, 0x44, 0x59, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x69,
     0x63, 0x65, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x58, 0x60,
-    0x65, 0x1e, 0x1b, 0x7e, 0xca, 0x79, 0xdc, 0xd1, 0x5e, 0xe2, 0xa8, 0x1d,
-    0xdf, 0x84, 0x6d, 0xd3, 0xf0, 0xe1, 0x51, 0x5f, 0xfd, 0x3e, 0x53, 0x4a,
-    0x39, 0xea, 0xcb, 0xd9, 0xc9, 0x82, 0x4b, 0xbf, 0x21, 0xce, 0x3d, 0xdf,
-    0x26, 0x83, 0x7e, 0x7c, 0xd9, 0x1c, 0xdc, 0x27, 0x19, 0x4f, 0xcf, 0xde,
-    0xc4, 0x8b, 0x7a, 0xa0, 0x72, 0x3a, 0x4a, 0x8f, 0x57, 0x00, 0x0d, 0x1b,
-    0x7a, 0x83, 0x65, 0xfe, 0xc3, 0xf2, 0x32, 0xe2, 0x27, 0xaf, 0xba, 0xd0,
-    0x64, 0x3e, 0x8f, 0x67, 0x79, 0x7b, 0xd4, 0xaa, 0x1a, 0xfe, 0xc9, 0x1f,
-    0x42, 0x4e, 0x28, 0xb6, 0xab, 0x53, 0x33, 0xc8, 0x19, 0xe4, 0xb2, 0x39};
+    0x54, 0x09, 0x4b, 0xae, 0x0c, 0x31, 0x4b, 0xcd, 0x30, 0x49, 0x02, 0x5b,
+    0x97, 0x0d, 0x12, 0x07, 0x5c, 0x0b, 0xa7, 0x0a, 0x38, 0xb3, 0x1d, 0x19,
+    0x6b, 0xeb, 0xbd, 0xc6, 0x9f, 0x40, 0x75, 0x64, 0x02, 0xfc, 0x5b, 0x68,
+    0x17, 0x6e, 0x6d, 0x5c, 0xe1, 0xdc, 0x7b, 0xd3, 0x7b, 0xc1, 0x44, 0x0a,
+    0x59, 0x6d, 0xff, 0xc4, 0xc1, 0x7f, 0xd5, 0x80, 0xce, 0x91, 0xd3, 0x52,
+    0x0a, 0x85, 0x86, 0x8b, 0x1a, 0x1f, 0x96, 0x24, 0x40, 0x31, 0x5d, 0xeb,
+    0xfa, 0x57, 0x35, 0x9a, 0x62, 0xc5, 0xb2, 0xb1, 0x15, 0xc3, 0x68, 0xd8,
+    0x3c, 0x30, 0xe1, 0x31, 0xad, 0x7c, 0x30, 0x68, 0xf3, 0xd6, 0xfc, 0xd9};
 
 constexpr uint8_t kExpectedCborEd25519Cert_AndroidZeroInput[457] = {
     0x84, 0x43, 0xa1, 0x01, 0x27, 0xa0, 0x59, 0x01, 0x7e, 0xa9, 0x01, 0x78,
@@ -484,12 +483,12 @@
     0xad, 0x7e, 0xe8, 0x58, 0x9e, 0x07, 0xd2, 0xf8, 0xbc, 0x88, 0x8e, 0xb3,
     0x11, 0xc2, 0xdf, 0x97, 0x3b, 0x1b, 0x4a, 0x3a, 0x00, 0x47, 0x44, 0x58,
     0x41, 0x20, 0x3a, 0x00, 0x47, 0x44, 0x59, 0x6a, 0x61, 0x6e, 0x64, 0x72,
-    0x6f, 0x69, 0x64, 0x2e, 0x31, 0x36, 0x58, 0x40, 0x09, 0x61, 0xd4, 0x73,
-    0x9f, 0x3f, 0xc3, 0x6c, 0x0d, 0x7c, 0x55, 0x4a, 0xa4, 0x3f, 0x38, 0x07,
-    0xcd, 0xb2, 0x3a, 0x62, 0xc2, 0xa7, 0xa1, 0xdf, 0xda, 0x06, 0xe5, 0x62,
-    0x5b, 0x2c, 0x5f, 0x8c, 0xb3, 0xc5, 0xa9, 0x33, 0xe9, 0x3b, 0x9d, 0xfc,
-    0x8d, 0xc6, 0xa7, 0x57, 0x49, 0xd4, 0x46, 0x25, 0x37, 0xc5, 0xfa, 0x28,
-    0xa7, 0x61, 0xb6, 0xf5, 0xeb, 0xfe, 0x3c, 0x91, 0x45, 0x9a, 0xa2, 0x66};
+    0x6f, 0x69, 0x64, 0x2e, 0x31, 0x36, 0x58, 0x40, 0xb0, 0xdb, 0xee, 0xb7,
+    0xb6, 0x7f, 0x89, 0x77, 0x7f, 0x21, 0x48, 0xa2, 0xef, 0x91, 0x44, 0xce,
+    0xf9, 0x3e, 0x6a, 0xa1, 0x2f, 0x44, 0xb5, 0x02, 0xdf, 0x29, 0x7d, 0x61,
+    0xd3, 0x1d, 0x25, 0x25, 0x33, 0x65, 0x9d, 0x96, 0xa8, 0x4b, 0xcd, 0xf6,
+    0x4b, 0xa7, 0xef, 0xf2, 0xd4, 0xe7, 0x0e, 0xe6, 0x9f, 0x71, 0x25, 0x15,
+    0xe8, 0xa0, 0x61, 0x4f, 0x40, 0xbf, 0x9f, 0xd6, 0x7c, 0x27, 0x07, 0x33};
 
 constexpr uint8_t kExpectedCborP384Cert_AndroidZeroInput[558] = {
     0x84, 0x44, 0xa1, 0x01, 0x38, 0x22, 0xa0, 0x59, 0x01, 0xc2, 0xa9, 0x01,
@@ -530,15 +529,15 @@
     0x67, 0xbf, 0x21, 0xd7, 0x47, 0xf3, 0x13, 0xd1, 0x47, 0x6c, 0x4b, 0xd3,
     0x05, 0xb5, 0x29, 0xa0, 0xf1, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41, 0x20,
     0x3a, 0x00, 0x47, 0x44, 0x59, 0x6a, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69,
-    0x64, 0x2e, 0x31, 0x36, 0x58, 0x60, 0x19, 0x43, 0x25, 0x41, 0x71, 0xb4,
-    0xba, 0xdf, 0x86, 0x21, 0x3e, 0x34, 0xb7, 0xbf, 0x97, 0xd3, 0xb4, 0x91,
-    0xd3, 0xa7, 0x5e, 0x39, 0xbb, 0x5a, 0xae, 0x71, 0x52, 0x75, 0x81, 0x5d,
-    0x09, 0x60, 0xc1, 0x78, 0x64, 0x34, 0xbf, 0xf5, 0x36, 0xfb, 0x68, 0x9e,
-    0x30, 0xc0, 0x07, 0x0e, 0xe6, 0x9f, 0xa8, 0xa2, 0x44, 0xa7, 0xa5, 0x00,
-    0xdf, 0xfd, 0x42, 0x1a, 0x12, 0x7e, 0x68, 0xb0, 0xa9, 0x06, 0xf5, 0xe2,
-    0xa1, 0x92, 0xa6, 0xda, 0xd8, 0xe0, 0x6d, 0x52, 0x14, 0x1a, 0xa7, 0x57,
-    0xbf, 0x22, 0xe6, 0xea, 0xcf, 0x69, 0xae, 0xc3, 0x05, 0xb0, 0xfc, 0x78,
-    0xd3, 0x50, 0x0c, 0x92, 0x36, 0x69};
+    0x64, 0x2e, 0x31, 0x36, 0x58, 0x60, 0x55, 0x15, 0xd9, 0x47, 0x47, 0x6e,
+    0x61, 0xc9, 0x23, 0x91, 0x0a, 0x76, 0xbb, 0x2a, 0x97, 0x0e, 0x02, 0xb6,
+    0x98, 0x06, 0x16, 0x64, 0xb0, 0x8b, 0x27, 0x61, 0x75, 0x28, 0x86, 0x74,
+    0xf0, 0xf7, 0x80, 0xea, 0x51, 0xc9, 0x83, 0x4e, 0x08, 0xc5, 0xe5, 0xe4,
+    0x51, 0xd3, 0xa9, 0xd8, 0xc8, 0x5b, 0x76, 0xbc, 0x30, 0xbe, 0xd0, 0x3e,
+    0x49, 0xe0, 0x78, 0x34, 0xd2, 0x35, 0xba, 0xa7, 0x29, 0x61, 0xa4, 0x90,
+    0x39, 0x29, 0xd3, 0x15, 0x9a, 0xb9, 0x38, 0x5c, 0xe2, 0x6a, 0x50, 0x3d,
+    0xa4, 0x91, 0x1d, 0xe6, 0x87, 0x3b, 0xa9, 0x2f, 0x86, 0x17, 0x26, 0x24,
+    0x91, 0x8f, 0xfc, 0x70, 0xc7, 0xf4};
 
 constexpr uint8_t kExpectedCdiAttest_HashOnlyInput[32] = {
     0x08, 0x4e, 0xf4, 0x06, 0xc6, 0x9b, 0xa7, 0x4b, 0x1e, 0x24, 0xd0,
@@ -668,13 +667,13 @@
 //     Data:
 //         Version: 3 (0x2)
 //         Serial Number:
-//             68:49:58:d9:ae:a7:2e:bf:7c:06:af:20:03:b6:44:47:82:4a:62:71
-//         Signature Algorithm: ecdsa-with-SHA512
-//         Issuer: serialNumber=1be5687933db3d9cd5fca729e81d6685465a7bf1
+//             7c:20:0a:55:ef:e7:11:2e:ca:4e:02:6d:70:2c:64:e9:e2:9c:d3:e9
+//         Signature Algorithm: ecdsa-with-SHA256
+//         Issuer: serialNumber=48603c0052c1cac73cae36c3bdec7c6139885c9d
 //         Validity
 //             Not Before: Mar 22 23:59:59 2018 GMT
 //             Not After : Dec 31 23:59:59 9999 GMT
-//         Subject: serialNumber=684958d9aea72ebf7c06af2003b64447824a6271
+//         Subject: serialNumber=7c200a55efe7112eca4e026d702c64e9e29cd3e9
 //         Subject Public Key Info:
 //             Public Key Algorithm: id-ecPublicKey
 //                 Public-Key: (256 bit)
@@ -688,15 +687,15 @@
 //                 NIST CURVE: P-256
 //         X509v3 extensions:
 //             X509v3 Authority Key Identifier:
-//                 1B:E5:68:79:33:DB:3D:9C:D5:FC:A7:29:E8:1D:66:85:46:5A:7B:F1
+//                 48:60:3C:00:52:C1:CA:C7:3C:AE:36:C3:BD:EC:7C:61:39:88:5C:9D
 //             X509v3 Subject Key Identifier:
-//                 68:49:58:D9:AE:A7:2E:BF:7C:06:AF:20:03:B6:44:47:82:4A:62:71
+//                 7C:20:0A:55:EF:E7:11:2E:CA:4E:02:6D:70:2C:64:E9:E2:9C:D3:E9
 //             X509v3 Key Usage: critical
 //                 Certificate Sign
 //             X509v3 Basic Constraints: critical
 //                 CA:TRUE
 //             1.3.6.1.4.1.11129.2.1.24: critical
-//     0:d=0  hl=3 l= 244 cons: SEQUENCE
+//     0:d=0  hl=3 l= 229 cons: SEQUENCE
 //     3:d=1  hl=2 l=  66 cons:  cont [ 0 ]
 //     5:d=2  hl=2 l=  64 prim:   OCTET STRING
 //       0000 - b7 d4 0c cb 22 5b a5 78-8f 98 ff 9e 86 93 75 f6 ...."[.x......u.
@@ -717,32 +716,32 @@
 //       0030 - 94 4f be 1b 21 f9 cc 23-73 41 b6 b9 b6 98 d0 bc .O..!..#sA......
 //   207:d=1  hl=2 l=   3 cons:  cont [ 6 ]
 //   209:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
-//   212:d=1  hl=2 l=  33 cons:  cont [ 7 ]
-//   214:d=2  hl=2 l=  31 prim:   UTF8STRING :openssl.example.p256_compressed
+//   212:d=1  hl=2 l=  18 cons:  cont [ 7 ]
+//   214:d=2  hl=2 l=  16 prim:   UTF8STRING        :opendice.example
 //
-//     Signature Algorithm: ecdsa-with-SHA512
+//     Signature Algorithm: ecdsa-with-SHA256
 //     Signature Value:
-//         30:46:02:21:00:c5:5e:54:a0:d7:ac:e8:b2:79:b5:87:50:31:
-//         d2:4f:67:d3:69:f0:dd:f2:c7:73:8e:25:ef:fd:f2:c4:90:e9:
-//         80:02:21:00:d0:47:f4:7d:b6:a0:84:e8:cf:96:55:43:0b:86:
-//         4c:27:e9:f8:b7:66:fd:dc:2c:22:44:4d:b1:f7:51:c7:1f:43
-constexpr uint8_t kExpectedX509P256Cert_HashOnlyInput[739] = {
-    0x30, 0x82, 0x02, 0xdf, 0x30, 0x82, 0x02, 0x84, 0xa0, 0x03, 0x02, 0x01,
-    0x02, 0x02, 0x14, 0x68, 0x49, 0x58, 0xd9, 0xae, 0xa7, 0x2e, 0xbf, 0x7c,
-    0x06, 0xaf, 0x20, 0x03, 0xb6, 0x44, 0x47, 0x82, 0x4a, 0x62, 0x71, 0x30,
-    0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x30,
+//         30:44:02:20:7e:d9:61:b7:7b:8d:b9:94:a4:6e:3d:66:52:9d:
+//         ea:e9:6c:16:d6:61:7f:68:f6:a2:8b:79:e2:9e:de:c0:25:2e:
+//         02:20:6f:b0:08:da:2c:14:79:0e:ba:e2:12:7a:9c:5c:17:5e:
+//         01:5e:18:75:dd:6c:63:4b:58:8e:09:d4:8a:00:b2:2f
+constexpr uint8_t kExpectedX509P256Cert_HashOnlyInput[721] = {
+    0x30, 0x82, 0x02, 0xcd, 0x30, 0x82, 0x02, 0x74, 0xa0, 0x03, 0x02, 0x01,
+    0x02, 0x02, 0x14, 0x7c, 0x20, 0x0a, 0x55, 0xef, 0xe7, 0x11, 0x2e, 0xca,
+    0x4e, 0x02, 0x6d, 0x70, 0x2c, 0x64, 0xe9, 0xe2, 0x9c, 0xd3, 0xe9, 0x30,
+    0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30,
     0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28,
-    0x31, 0x62, 0x65, 0x35, 0x36, 0x38, 0x37, 0x39, 0x33, 0x33, 0x64, 0x62,
-    0x33, 0x64, 0x39, 0x63, 0x64, 0x35, 0x66, 0x63, 0x61, 0x37, 0x32, 0x39,
-    0x65, 0x38, 0x31, 0x64, 0x36, 0x36, 0x38, 0x35, 0x34, 0x36, 0x35, 0x61,
-    0x37, 0x62, 0x66, 0x31, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33,
+    0x34, 0x38, 0x36, 0x30, 0x33, 0x63, 0x30, 0x30, 0x35, 0x32, 0x63, 0x31,
+    0x63, 0x61, 0x63, 0x37, 0x33, 0x63, 0x61, 0x65, 0x33, 0x36, 0x63, 0x33,
+    0x62, 0x64, 0x65, 0x63, 0x37, 0x63, 0x36, 0x31, 0x33, 0x39, 0x38, 0x38,
+    0x35, 0x63, 0x39, 0x64, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33,
     0x32, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x18, 0x0f, 0x39,
     0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35,
     0x39, 0x5a, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04,
-    0x05, 0x13, 0x28, 0x36, 0x38, 0x34, 0x39, 0x35, 0x38, 0x64, 0x39, 0x61,
-    0x65, 0x61, 0x37, 0x32, 0x65, 0x62, 0x66, 0x37, 0x63, 0x30, 0x36, 0x61,
-    0x66, 0x32, 0x30, 0x30, 0x33, 0x62, 0x36, 0x34, 0x34, 0x34, 0x37, 0x38,
-    0x32, 0x34, 0x61, 0x36, 0x32, 0x37, 0x31, 0x30, 0x59, 0x30, 0x13, 0x06,
+    0x05, 0x13, 0x28, 0x37, 0x63, 0x32, 0x30, 0x30, 0x61, 0x35, 0x35, 0x65,
+    0x66, 0x65, 0x37, 0x31, 0x31, 0x32, 0x65, 0x63, 0x61, 0x34, 0x65, 0x30,
+    0x32, 0x36, 0x64, 0x37, 0x30, 0x32, 0x63, 0x36, 0x34, 0x65, 0x39, 0x65,
+    0x32, 0x39, 0x63, 0x64, 0x33, 0x65, 0x39, 0x30, 0x59, 0x30, 0x13, 0x06,
     0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,
     0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xfe, 0x9d,
     0xb2, 0xf9, 0x28, 0x09, 0xc3, 0x04, 0x12, 0x85, 0xdc, 0xd3, 0x70, 0x6f,
@@ -750,45 +749,44 @@
     0x57, 0x18, 0xfc, 0x8f, 0x6f, 0x0b, 0x09, 0x1a, 0x19, 0xea, 0x10, 0x7e,
     0xa9, 0x38, 0xf4, 0x45, 0x33, 0xc1, 0x66, 0x5b, 0xbc, 0xfc, 0x0a, 0x6e,
     0x98, 0x99, 0x72, 0x88, 0xc1, 0xad, 0x0e, 0x15, 0xc2, 0x85, 0x77, 0x75,
-    0x00, 0x0b, 0xa3, 0x82, 0x01, 0x72, 0x30, 0x82, 0x01, 0x6e, 0x30, 0x1f,
-    0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x1b,
-    0xe5, 0x68, 0x79, 0x33, 0xdb, 0x3d, 0x9c, 0xd5, 0xfc, 0xa7, 0x29, 0xe8,
-    0x1d, 0x66, 0x85, 0x46, 0x5a, 0x7b, 0xf1, 0x30, 0x1d, 0x06, 0x03, 0x55,
-    0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x68, 0x49, 0x58, 0xd9, 0xae, 0xa7,
-    0x2e, 0xbf, 0x7c, 0x06, 0xaf, 0x20, 0x03, 0xb6, 0x44, 0x47, 0x82, 0x4a,
-    0x62, 0x71, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+    0x00, 0x0b, 0xa3, 0x82, 0x01, 0x62, 0x30, 0x82, 0x01, 0x5e, 0x30, 0x1f,
+    0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48,
+    0x60, 0x3c, 0x00, 0x52, 0xc1, 0xca, 0xc7, 0x3c, 0xae, 0x36, 0xc3, 0xbd,
+    0xec, 0x7c, 0x61, 0x39, 0x88, 0x5c, 0x9d, 0x30, 0x1d, 0x06, 0x03, 0x55,
+    0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7c, 0x20, 0x0a, 0x55, 0xef, 0xe7,
+    0x11, 0x2e, 0xca, 0x4e, 0x02, 0x6d, 0x70, 0x2c, 0x64, 0xe9, 0xe2, 0x9c,
+    0xd3, 0xe9, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
     0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
     0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
-    0x82, 0x01, 0x09, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79,
-    0x02, 0x01, 0x18, 0x01, 0x01, 0xff, 0x04, 0x81, 0xf7, 0x30, 0x81, 0xf4,
-    0xa0, 0x42, 0x04, 0x40, 0xb7, 0xd4, 0x0c, 0xcb, 0x22, 0x5b, 0xa5, 0x78,
-    0x8f, 0x98, 0xff, 0x9e, 0x86, 0x93, 0x75, 0xf6, 0x90, 0xac, 0x50, 0xcf,
-    0x9e, 0xbd, 0x0a, 0xfe, 0xb1, 0xd9, 0xc2, 0x4e, 0x52, 0x19, 0xe4, 0xde,
-    0x29, 0xe5, 0x61, 0xf3, 0xf9, 0x29, 0xe8, 0x40, 0x87, 0x7a, 0xdd, 0x17,
-    0x48, 0x05, 0x89, 0x7e, 0x2b, 0xcb, 0x54, 0x79, 0xcc, 0x66, 0xf1, 0xb3,
-    0x13, 0x29, 0x0c, 0x68, 0x96, 0xb2, 0xbb, 0x8f, 0xa3, 0x42, 0x04, 0x40,
-    0xcf, 0x99, 0x7b, 0xea, 0x2e, 0x2c, 0x86, 0xa0, 0x7b, 0x52, 0x09, 0xc8,
-    0xb5, 0x3c, 0x41, 0x12, 0x29, 0x28, 0x1a, 0x82, 0x0d, 0x49, 0x9c, 0x95,
-    0xcb, 0x0b, 0x1b, 0x31, 0x1a, 0x01, 0x9c, 0xf2, 0x66, 0x1a, 0xd9, 0xb5,
-    0xce, 0x52, 0x59, 0xcb, 0xf4, 0x81, 0x9b, 0x21, 0xaf, 0x32, 0x5d, 0x07,
-    0xa0, 0x1e, 0x91, 0x59, 0x6f, 0x06, 0x55, 0x10, 0x8e, 0x2e, 0x08, 0x88,
-    0x52, 0x28, 0x86, 0x7f, 0xa4, 0x42, 0x04, 0x40, 0x22, 0x52, 0x60, 0x17,
-    0xef, 0x2c, 0xa1, 0xf6, 0xcb, 0xed, 0x39, 0xd5, 0xe2, 0xaa, 0x65, 0x20,
-    0xfb, 0xad, 0x82, 0x93, 0xe5, 0x78, 0x23, 0x22, 0x97, 0xc1, 0x6e, 0x6a,
-    0x4e, 0x36, 0xd7, 0x6a, 0x61, 0x39, 0x08, 0x21, 0xd4, 0xfe, 0x92, 0x5f,
-    0x36, 0x2d, 0xeb, 0x5d, 0xbb, 0x32, 0x8b, 0xe3, 0x94, 0x4f, 0xbe, 0x1b,
-    0x21, 0xf9, 0xcc, 0x23, 0x73, 0x41, 0xb6, 0xb9, 0xb6, 0x98, 0xd0, 0xbc,
-    0xa6, 0x03, 0x0a, 0x01, 0x00, 0xa7, 0x21, 0x0c, 0x1f, 0x6f, 0x70, 0x65,
-    0x6e, 0x73, 0x73, 0x6c, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
-    0x2e, 0x70, 0x32, 0x35, 0x36, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65,
-    0x73, 0x73, 0x65, 0x64, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,
-    0x3d, 0x04, 0x03, 0x04, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21, 0x00,
-    0xc5, 0x5e, 0x54, 0xa0, 0xd7, 0xac, 0xe8, 0xb2, 0x79, 0xb5, 0x87, 0x50,
-    0x31, 0xd2, 0x4f, 0x67, 0xd3, 0x69, 0xf0, 0xdd, 0xf2, 0xc7, 0x73, 0x8e,
-    0x25, 0xef, 0xfd, 0xf2, 0xc4, 0x90, 0xe9, 0x80, 0x02, 0x21, 0x00, 0xd0,
-    0x47, 0xf4, 0x7d, 0xb6, 0xa0, 0x84, 0xe8, 0xcf, 0x96, 0x55, 0x43, 0x0b,
-    0x86, 0x4c, 0x27, 0xe9, 0xf8, 0xb7, 0x66, 0xfd, 0xdc, 0x2c, 0x22, 0x44,
-    0x4d, 0xb1, 0xf7, 0x51, 0xc7, 0x1f, 0x43};
+    0x81, 0xfa, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79, 0x02,
+    0x01, 0x18, 0x01, 0x01, 0xff, 0x04, 0x81, 0xe8, 0x30, 0x81, 0xe5, 0xa0,
+    0x42, 0x04, 0x40, 0xb7, 0xd4, 0x0c, 0xcb, 0x22, 0x5b, 0xa5, 0x78, 0x8f,
+    0x98, 0xff, 0x9e, 0x86, 0x93, 0x75, 0xf6, 0x90, 0xac, 0x50, 0xcf, 0x9e,
+    0xbd, 0x0a, 0xfe, 0xb1, 0xd9, 0xc2, 0x4e, 0x52, 0x19, 0xe4, 0xde, 0x29,
+    0xe5, 0x61, 0xf3, 0xf9, 0x29, 0xe8, 0x40, 0x87, 0x7a, 0xdd, 0x17, 0x48,
+    0x05, 0x89, 0x7e, 0x2b, 0xcb, 0x54, 0x79, 0xcc, 0x66, 0xf1, 0xb3, 0x13,
+    0x29, 0x0c, 0x68, 0x96, 0xb2, 0xbb, 0x8f, 0xa3, 0x42, 0x04, 0x40, 0xcf,
+    0x99, 0x7b, 0xea, 0x2e, 0x2c, 0x86, 0xa0, 0x7b, 0x52, 0x09, 0xc8, 0xb5,
+    0x3c, 0x41, 0x12, 0x29, 0x28, 0x1a, 0x82, 0x0d, 0x49, 0x9c, 0x95, 0xcb,
+    0x0b, 0x1b, 0x31, 0x1a, 0x01, 0x9c, 0xf2, 0x66, 0x1a, 0xd9, 0xb5, 0xce,
+    0x52, 0x59, 0xcb, 0xf4, 0x81, 0x9b, 0x21, 0xaf, 0x32, 0x5d, 0x07, 0xa0,
+    0x1e, 0x91, 0x59, 0x6f, 0x06, 0x55, 0x10, 0x8e, 0x2e, 0x08, 0x88, 0x52,
+    0x28, 0x86, 0x7f, 0xa4, 0x42, 0x04, 0x40, 0x22, 0x52, 0x60, 0x17, 0xef,
+    0x2c, 0xa1, 0xf6, 0xcb, 0xed, 0x39, 0xd5, 0xe2, 0xaa, 0x65, 0x20, 0xfb,
+    0xad, 0x82, 0x93, 0xe5, 0x78, 0x23, 0x22, 0x97, 0xc1, 0x6e, 0x6a, 0x4e,
+    0x36, 0xd7, 0x6a, 0x61, 0x39, 0x08, 0x21, 0xd4, 0xfe, 0x92, 0x5f, 0x36,
+    0x2d, 0xeb, 0x5d, 0xbb, 0x32, 0x8b, 0xe3, 0x94, 0x4f, 0xbe, 0x1b, 0x21,
+    0xf9, 0xcc, 0x23, 0x73, 0x41, 0xb6, 0xb9, 0xb6, 0x98, 0xd0, 0xbc, 0xa6,
+    0x03, 0x0a, 0x01, 0x00, 0xa7, 0x12, 0x0c, 0x10, 0x6f, 0x70, 0x65, 0x6e,
+    0x64, 0x69, 0x63, 0x65, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
+    0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02,
+    0x03, 0x47, 0x00, 0x30, 0x44, 0x02, 0x20, 0x7e, 0xd9, 0x61, 0xb7, 0x7b,
+    0x8d, 0xb9, 0x94, 0xa4, 0x6e, 0x3d, 0x66, 0x52, 0x9d, 0xea, 0xe9, 0x6c,
+    0x16, 0xd6, 0x61, 0x7f, 0x68, 0xf6, 0xa2, 0x8b, 0x79, 0xe2, 0x9e, 0xde,
+    0xc0, 0x25, 0x2e, 0x02, 0x20, 0x6f, 0xb0, 0x08, 0xda, 0x2c, 0x14, 0x79,
+    0x0e, 0xba, 0xe2, 0x12, 0x7a, 0x9c, 0x5c, 0x17, 0x5e, 0x01, 0x5e, 0x18,
+    0x75, 0xdd, 0x6c, 0x63, 0x4b, 0x58, 0x8e, 0x09, 0xd4, 0x8a, 0x00, 0xb2,
+    0x2f};
 
 constexpr uint8_t kExpectedX509P384Cert_HashOnlyInput[0] = {};
 
@@ -868,12 +866,12 @@
     0x15, 0xc2, 0x85, 0x77, 0x75, 0x00, 0x0b, 0x3a, 0x00, 0x47, 0x44, 0x58,
     0x41, 0x20, 0x3a, 0x00, 0x47, 0x44, 0x59, 0x70, 0x6f, 0x70, 0x65, 0x6e,
     0x64, 0x69, 0x63, 0x65, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,
-    0x58, 0x40, 0xea, 0xb6, 0x5d, 0xbb, 0x22, 0x2f, 0x43, 0x99, 0x82, 0xb3,
-    0x29, 0xe4, 0x7b, 0xf5, 0x65, 0xcb, 0x65, 0x6d, 0xb5, 0x66, 0xcc, 0xea,
-    0x04, 0x7a, 0xde, 0x06, 0x54, 0x62, 0xc8, 0xba, 0xa1, 0xca, 0xd3, 0xc4,
-    0x1a, 0x1c, 0x93, 0x7d, 0x46, 0x54, 0xd8, 0x59, 0x48, 0xbe, 0xf6, 0x03,
-    0x48, 0x27, 0xf5, 0x5a, 0xf7, 0xbd, 0xcd, 0xc5, 0xfe, 0x2a, 0x6b, 0xd9,
-    0x54, 0x36, 0x39, 0x2a, 0x50, 0xd6};
+    0x58, 0x40, 0x92, 0x4f, 0xb1, 0xf5, 0x5d, 0x84, 0xde, 0x89, 0x50, 0xb2,
+    0x6a, 0x2e, 0x04, 0x8e, 0xed, 0xdf, 0x7a, 0x63, 0xf5, 0x92, 0xbe, 0x3e,
+    0xda, 0xe9, 0x53, 0x6c, 0x7d, 0x8a, 0x0c, 0xbc, 0x8e, 0x82, 0x5f, 0x06,
+    0xa2, 0xef, 0x91, 0x5e, 0x64, 0x1f, 0xc6, 0xa5, 0x06, 0xb4, 0xd6, 0x72,
+    0xef, 0x4b, 0xd2, 0xaf, 0x18, 0x05, 0xc3, 0xf7, 0xbe, 0x7a, 0x6a, 0x54,
+    0x35, 0x57, 0xcb, 0xfb, 0x8b, 0x27};
 
 constexpr uint8_t kExpectedCborP384Cert_HashOnlyInput[564] = {
     0x84, 0x44, 0xa1, 0x01, 0x38, 0x22, 0xa0, 0x59, 0x01, 0xc8, 0xa9, 0x01,
@@ -915,14 +913,14 @@
     0xc3, 0xb2, 0xe7, 0x34, 0xf5, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41, 0x20,
     0x3a, 0x00, 0x47, 0x44, 0x59, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x69,
     0x63, 0x65, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x58, 0x60,
-    0x6f, 0xa1, 0xa8, 0xcc, 0xea, 0xe0, 0x35, 0xa9, 0x19, 0x06, 0xea, 0x0d,
-    0xf1, 0x0c, 0x57, 0x3c, 0x8d, 0xa7, 0x7b, 0x63, 0x39, 0x0d, 0x30, 0x48,
-    0x93, 0x72, 0x5a, 0xd3, 0x49, 0x6c, 0x85, 0xad, 0xf6, 0x5e, 0x8e, 0x43,
-    0xa4, 0x33, 0xaa, 0x1a, 0xfc, 0x27, 0xcb, 0x44, 0xd1, 0x6b, 0xf4, 0xf4,
-    0x23, 0x14, 0x06, 0x99, 0x83, 0x03, 0x48, 0xd1, 0x83, 0xdc, 0x9d, 0xa7,
-    0x35, 0x4d, 0xe9, 0xdb, 0xba, 0xf5, 0x3d, 0x81, 0x45, 0xc8, 0x7e, 0x6d,
-    0xd5, 0x12, 0x75, 0xa3, 0x7d, 0xfd, 0x1f, 0x00, 0xe6, 0xed, 0x61, 0x66,
-    0x30, 0xd0, 0x05, 0x19, 0x47, 0x1d, 0xd9, 0xaf, 0x24, 0x82, 0x24, 0xee};
+    0x31, 0x03, 0x8f, 0x89, 0xfb, 0xa8, 0xe2, 0xf3, 0xb0, 0xb1, 0x51, 0x9d,
+    0xe9, 0x5f, 0x65, 0xa4, 0x1b, 0x2c, 0x0a, 0x7d, 0x00, 0xba, 0x61, 0x99,
+    0x42, 0x21, 0x44, 0x16, 0x77, 0x49, 0x7e, 0xdd, 0xb7, 0xe0, 0x76, 0x66,
+    0xa6, 0x10, 0x5a, 0x17, 0xb6, 0x25, 0x3e, 0x74, 0x87, 0x9c, 0x58, 0xa4,
+    0x02, 0xaf, 0x40, 0x4f, 0x5f, 0x79, 0xfc, 0x2f, 0xb2, 0x02, 0xe5, 0x95,
+    0xb9, 0x6a, 0x42, 0xd1, 0xb6, 0x1d, 0xa6, 0x05, 0x9e, 0xe3, 0xb3, 0x24,
+    0x88, 0xde, 0xed, 0x8a, 0x72, 0xf5, 0x47, 0x42, 0x4a, 0xee, 0xd8, 0xe2,
+    0x63, 0x0d, 0x06, 0xa2, 0x98, 0x8d, 0x8c, 0x2f, 0x70, 0x47, 0x53, 0x07};
 
 constexpr uint8_t kExpectedCborEd25519Cert_AndroidHashOnlyInput[457] = {
     0x84, 0x43, 0xa1, 0x01, 0x27, 0xa0, 0x59, 0x01, 0x7e, 0xa9, 0x01, 0x78,
@@ -1001,12 +999,12 @@
     0x5b, 0xbc, 0xfc, 0x0a, 0x6e, 0x98, 0x99, 0x72, 0x88, 0xc1, 0xad, 0x0e,
     0x15, 0xc2, 0x85, 0x77, 0x75, 0x00, 0x0b, 0x3a, 0x00, 0x47, 0x44, 0x58,
     0x41, 0x20, 0x3a, 0x00, 0x47, 0x44, 0x59, 0x6a, 0x61, 0x6e, 0x64, 0x72,
-    0x6f, 0x69, 0x64, 0x2e, 0x31, 0x36, 0x58, 0x40, 0x96, 0xe9, 0xb6, 0x0a,
-    0xf9, 0xa1, 0x45, 0x98, 0xfa, 0xfb, 0x91, 0x4f, 0xbf, 0xd7, 0xa7, 0x48,
-    0x8c, 0x05, 0x32, 0xb4, 0x1d, 0xf8, 0x04, 0xf8, 0x46, 0x84, 0x23, 0x1f,
-    0xc9, 0xb8, 0xb9, 0x24, 0x69, 0xc0, 0x58, 0xfc, 0x97, 0xda, 0x5e, 0x69,
-    0xd0, 0x7d, 0x76, 0x02, 0xb2, 0xda, 0x37, 0x6b, 0x7a, 0x7c, 0x2b, 0x51,
-    0x80, 0xb4, 0xa5, 0x8d, 0xb5, 0x77, 0x6b, 0x2f, 0x0b, 0x53, 0x8d, 0x60};
+    0x6f, 0x69, 0x64, 0x2e, 0x31, 0x36, 0x58, 0x40, 0x8b, 0x07, 0x4b, 0x1d,
+    0xb0, 0x8c, 0xb6, 0x7b, 0xbb, 0x7f, 0xec, 0x39, 0xdf, 0x1b, 0x2c, 0x92,
+    0xa2, 0x7e, 0xba, 0x6b, 0x0d, 0x0a, 0x49, 0xc1, 0xd4, 0x6f, 0xda, 0xe6,
+    0x96, 0x3d, 0x22, 0xee, 0x23, 0x5b, 0x4c, 0xb0, 0x39, 0x9e, 0xf7, 0x56,
+    0x5a, 0x28, 0x3b, 0x98, 0x93, 0xb5, 0xe3, 0xd7, 0x3b, 0x42, 0x25, 0x48,
+    0x70, 0x79, 0xf2, 0x88, 0xe1, 0x6e, 0x16, 0x3f, 0x9f, 0xfb, 0xca, 0xfc};
 
 constexpr uint8_t kExpectedCborP384Cert_AndroidHashOnlyInput[558] = {
     0x84, 0x44, 0xa1, 0x01, 0x38, 0x22, 0xa0, 0x59, 0x01, 0xc2, 0xa9, 0x01,
@@ -1047,15 +1045,15 @@
     0x37, 0xa7, 0x3d, 0x2e, 0xca, 0xd1, 0x2c, 0xa4, 0xd4, 0xa7, 0xaf, 0x25,
     0xc3, 0xb2, 0xe7, 0x34, 0xf5, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41, 0x20,
     0x3a, 0x00, 0x47, 0x44, 0x59, 0x6a, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69,
-    0x64, 0x2e, 0x31, 0x36, 0x58, 0x60, 0x6a, 0x23, 0x96, 0x6d, 0x03, 0x5d,
-    0x34, 0x65, 0x9b, 0x80, 0x53, 0x9a, 0x9c, 0xd5, 0xb7, 0x7b, 0x50, 0x79,
-    0xa7, 0x1d, 0xe8, 0xef, 0x82, 0x3b, 0x53, 0xa5, 0x8d, 0x09, 0x6f, 0xf6,
-    0x4e, 0xc0, 0xc6, 0x71, 0x7a, 0x1a, 0x58, 0xf7, 0x2b, 0x36, 0xaa, 0x2a,
-    0xaf, 0xb5, 0xcd, 0xe8, 0xf6, 0x65, 0x30, 0xc4, 0x89, 0xb8, 0xb1, 0x74,
-    0x2f, 0xa7, 0xa5, 0xfa, 0x71, 0x0b, 0x4a, 0x8f, 0xd2, 0x1c, 0x88, 0x7c,
-    0xa6, 0x3e, 0xc2, 0xcb, 0x07, 0xc1, 0x6f, 0xef, 0x08, 0x3e, 0x3f, 0xe4,
-    0x09, 0x0a, 0xb4, 0x97, 0xae, 0x4d, 0xbf, 0x02, 0x96, 0x5b, 0xe0, 0x59,
-    0x55, 0xc9, 0xae, 0x7b, 0xfc, 0xde};
+    0x64, 0x2e, 0x31, 0x36, 0x58, 0x60, 0xde, 0x4b, 0xb5, 0x6a, 0xb2, 0xfb,
+    0xc0, 0x2b, 0x88, 0x4e, 0x9a, 0x51, 0x7f, 0x30, 0x9c, 0x80, 0xea, 0x41,
+    0xd7, 0x87, 0xe8, 0x70, 0x24, 0xa7, 0x94, 0x29, 0x48, 0x44, 0xe5, 0xc9,
+    0x68, 0x73, 0x9d, 0xdf, 0xd9, 0x6e, 0x71, 0x29, 0xa9, 0xf3, 0x6f, 0xd2,
+    0xc7, 0x86, 0x84, 0x6c, 0x0e, 0x1f, 0x6f, 0x1c, 0x20, 0xea, 0x93, 0xcd,
+    0x25, 0x17, 0xc6, 0xf2, 0x32, 0x4a, 0xa6, 0xf5, 0x68, 0x1c, 0xbb, 0xb7,
+    0xe5, 0xb9, 0xb7, 0xaa, 0x18, 0x8d, 0xc5, 0x26, 0x16, 0xa4, 0xdc, 0xbb,
+    0xe9, 0x36, 0xf2, 0xeb, 0xf9, 0xf3, 0xdd, 0x83, 0xcf, 0x2d, 0x3e, 0xca,
+    0xf1, 0x34, 0x86, 0x86, 0x70, 0xea};
 
 constexpr uint8_t kExpectedCdiAttest_DescriptorInput[32] = {
     0x20, 0xd5, 0x0c, 0x68, 0x5a, 0xd9, 0xe2, 0xdf, 0x77, 0x60, 0x78,
@@ -1224,13 +1222,13 @@
 //     Data:
 //         Version: 3 (0x2)
 //         Serial Number:
-//             2c:0d:e9:55:c4:fa:08:2c:2c:3a:0b:40:66:59:af:a1:c1:c0:84:6c
-//         Signature Algorithm: ecdsa-with-SHA512
-//         Issuer: serialNumber=1be5687933db3d9cd5fca729e81d6685465a7bf1
+//             5a:04:e9:ec:f1:9a:d3:d5:26:68:b8:2a:60:81:f0:3f:db:29:f8:64
+//         Signature Algorithm: ecdsa-with-SHA256
+//         Issuer: serialNumber=48603c0052c1cac73cae36c3bdec7c6139885c9d
 //         Validity
 //             Not Before: Mar 22 23:59:59 2018 GMT
 //             Not After : Dec 31 23:59:59 9999 GMT
-//         Subject: serialNumber=2c0de955c4fa082c2c3a0b406659afa1c1c0846c
+//         Subject: serialNumber=5a04e9ecf19ad3d52668b82a6081f03fdb29f864
 //         Subject Public Key Info:
 //             Public Key Algorithm: id-ecPublicKey
 //                 Public-Key: (256 bit)
@@ -1244,15 +1242,15 @@
 //                 NIST CURVE: P-256
 //         X509v3 extensions:
 //             X509v3 Authority Key Identifier:
-//                 1B:E5:68:79:33:DB:3D:9C:D5:FC:A7:29:E8:1D:66:85:46:5A:7B:F1
+//                 48:60:3C:00:52:C1:CA:C7:3C:AE:36:C3:BD:EC:7C:61:39:88:5C:9D
 //             X509v3 Subject Key Identifier:
-//                 2C:0D:E9:55:C4:FA:08:2C:2C:3A:0B:40:66:59:AF:A1:C1:C0:84:6C
+//                 5A:04:E9:EC:F1:9A:D3:D5:26:68:B8:2A:60:81:F0:3F:DB:29:F8:64
 //             X509v3 Key Usage: critical
 //                 Certificate Sign
 //             X509v3 Basic Constraints: critical
 //                 CA:TRUE
 //             1.3.6.1.4.1.11129.2.1.24: critical
-//     0:d=0  hl=4 l= 461 cons: SEQUENCE
+//     0:d=0  hl=4 l= 446 cons: SEQUENCE
 //     4:d=1  hl=2 l=  66 cons:  cont [ 0 ]
 //     6:d=2  hl=2 l=  64 prim:   OCTET STRING
 //       0000 - b7 d4 0c cb 22 5b a5 78-8f 98 ff 9e 86 93 75 f6 ...."[.x......u.
@@ -1294,32 +1292,32 @@
 //       0040 - a2                                                .
 //   425:d=1  hl=2 l=   3 cons:  cont [ 6 ]
 //   427:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
-//   430:d=1  hl=2 l=  33 cons:  cont [ 7 ]
-//   432:d=2  hl=2 l=  31 prim:   UTF8STRING :openssl.example.p256_compressed
+//   430:d=1  hl=2 l=  18 cons:  cont [ 7 ]
+//   432:d=2  hl=2 l=  16 prim:   UTF8STRING        :opendice.example
 //
-//     Signature Algorithm: ecdsa-with-SHA512
+//     Signature Algorithm: ecdsa-with-SHA256
 //     Signature Value:
-//         30:44:02:20:11:ed:7d:c1:5f:53:6c:09:b9:ca:36:97:f8:5e:
-//         ed:1e:48:78:af:48:39:c7:6f:e5:ce:b6:db:75:b1:f7:5d:a7:
-//         02:20:75:17:22:36:67:59:9b:ad:4a:9e:aa:b5:9a:70:5d:f1:
-//         90:f8:82:1d:d1:84:54:f0:48:23:30:3c:98:9d:1d:1a
-constexpr uint8_t kExpectedX509P256Cert_DescriptorInput[956] = {
-    0x30, 0x82, 0x03, 0xb8, 0x30, 0x82, 0x03, 0x5f, 0xa0, 0x03, 0x02, 0x01,
-    0x02, 0x02, 0x14, 0x2c, 0x0d, 0xe9, 0x55, 0xc4, 0xfa, 0x08, 0x2c, 0x2c,
-    0x3a, 0x0b, 0x40, 0x66, 0x59, 0xaf, 0xa1, 0xc1, 0xc0, 0x84, 0x6c, 0x30,
-    0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x30,
+//         30:46:02:21:00:e8:77:92:04:4d:4e:ae:1b:74:66:d6:b7:3f:
+//         cf:33:94:70:0c:9a:5a:05:f2:0b:e5:2b:67:ec:28:d9:8a:fe:
+//         71:02:21:00:fa:c2:cc:2a:be:31:06:bf:69:0d:e4:f7:c4:97:
+//         05:ef:a0:10:54:12:cf:d8:da:5c:84:1c:90:10:e7:cd:e5:fd
+constexpr uint8_t kExpectedX509P256Cert_DescriptorInput[943] = {
+    0x30, 0x82, 0x03, 0xab, 0x30, 0x82, 0x03, 0x50, 0xa0, 0x03, 0x02, 0x01,
+    0x02, 0x02, 0x14, 0x5a, 0x04, 0xe9, 0xec, 0xf1, 0x9a, 0xd3, 0xd5, 0x26,
+    0x68, 0xb8, 0x2a, 0x60, 0x81, 0xf0, 0x3f, 0xdb, 0x29, 0xf8, 0x64, 0x30,
+    0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30,
     0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28,
-    0x31, 0x62, 0x65, 0x35, 0x36, 0x38, 0x37, 0x39, 0x33, 0x33, 0x64, 0x62,
-    0x33, 0x64, 0x39, 0x63, 0x64, 0x35, 0x66, 0x63, 0x61, 0x37, 0x32, 0x39,
-    0x65, 0x38, 0x31, 0x64, 0x36, 0x36, 0x38, 0x35, 0x34, 0x36, 0x35, 0x61,
-    0x37, 0x62, 0x66, 0x31, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33,
+    0x34, 0x38, 0x36, 0x30, 0x33, 0x63, 0x30, 0x30, 0x35, 0x32, 0x63, 0x31,
+    0x63, 0x61, 0x63, 0x37, 0x33, 0x63, 0x61, 0x65, 0x33, 0x36, 0x63, 0x33,
+    0x62, 0x64, 0x65, 0x63, 0x37, 0x63, 0x36, 0x31, 0x33, 0x39, 0x38, 0x38,
+    0x35, 0x63, 0x39, 0x64, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33,
     0x32, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x18, 0x0f, 0x39,
     0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35,
     0x39, 0x5a, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04,
-    0x05, 0x13, 0x28, 0x32, 0x63, 0x30, 0x64, 0x65, 0x39, 0x35, 0x35, 0x63,
-    0x34, 0x66, 0x61, 0x30, 0x38, 0x32, 0x63, 0x32, 0x63, 0x33, 0x61, 0x30,
-    0x62, 0x34, 0x30, 0x36, 0x36, 0x35, 0x39, 0x61, 0x66, 0x61, 0x31, 0x63,
-    0x31, 0x63, 0x30, 0x38, 0x34, 0x36, 0x63, 0x30, 0x59, 0x30, 0x13, 0x06,
+    0x05, 0x13, 0x28, 0x35, 0x61, 0x30, 0x34, 0x65, 0x39, 0x65, 0x63, 0x66,
+    0x31, 0x39, 0x61, 0x64, 0x33, 0x64, 0x35, 0x32, 0x36, 0x36, 0x38, 0x62,
+    0x38, 0x32, 0x61, 0x36, 0x30, 0x38, 0x31, 0x66, 0x30, 0x33, 0x66, 0x64,
+    0x62, 0x32, 0x39, 0x66, 0x38, 0x36, 0x34, 0x30, 0x59, 0x30, 0x13, 0x06,
     0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86,
     0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x6d, 0x1e,
     0xdd, 0x35, 0x38, 0x70, 0xc2, 0x8a, 0x01, 0xdf, 0x80, 0xb1, 0xa5, 0xae,
@@ -1327,18 +1325,18 @@
     0xf3, 0x87, 0x97, 0xb3, 0xe7, 0x36, 0xe6, 0x42, 0x87, 0x8c, 0x72, 0xde,
     0xf7, 0xaf, 0x2d, 0xc6, 0x23, 0x00, 0xb1, 0x2b, 0x4e, 0x1c, 0xf3, 0xaf,
     0x67, 0xf0, 0x9b, 0x88, 0x40, 0x79, 0x3b, 0x09, 0x78, 0x30, 0x51, 0x65,
-    0x38, 0x61, 0xa3, 0x82, 0x02, 0x4d, 0x30, 0x82, 0x02, 0x49, 0x30, 0x1f,
-    0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x1b,
-    0xe5, 0x68, 0x79, 0x33, 0xdb, 0x3d, 0x9c, 0xd5, 0xfc, 0xa7, 0x29, 0xe8,
-    0x1d, 0x66, 0x85, 0x46, 0x5a, 0x7b, 0xf1, 0x30, 0x1d, 0x06, 0x03, 0x55,
-    0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2c, 0x0d, 0xe9, 0x55, 0xc4, 0xfa,
-    0x08, 0x2c, 0x2c, 0x3a, 0x0b, 0x40, 0x66, 0x59, 0xaf, 0xa1, 0xc1, 0xc0,
-    0x84, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+    0x38, 0x61, 0xa3, 0x82, 0x02, 0x3e, 0x30, 0x82, 0x02, 0x3a, 0x30, 0x1f,
+    0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48,
+    0x60, 0x3c, 0x00, 0x52, 0xc1, 0xca, 0xc7, 0x3c, 0xae, 0x36, 0xc3, 0xbd,
+    0xec, 0x7c, 0x61, 0x39, 0x88, 0x5c, 0x9d, 0x30, 0x1d, 0x06, 0x03, 0x55,
+    0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x5a, 0x04, 0xe9, 0xec, 0xf1, 0x9a,
+    0xd3, 0xd5, 0x26, 0x68, 0xb8, 0x2a, 0x60, 0x81, 0xf0, 0x3f, 0xdb, 0x29,
+    0xf8, 0x64, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
     0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
     0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
-    0x82, 0x01, 0xe4, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79,
-    0x02, 0x01, 0x18, 0x01, 0x01, 0xff, 0x04, 0x82, 0x01, 0xd1, 0x30, 0x82,
-    0x01, 0xcd, 0xa0, 0x42, 0x04, 0x40, 0xb7, 0xd4, 0x0c, 0xcb, 0x22, 0x5b,
+    0x82, 0x01, 0xd5, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79,
+    0x02, 0x01, 0x18, 0x01, 0x01, 0xff, 0x04, 0x82, 0x01, 0xc2, 0x30, 0x82,
+    0x01, 0xbe, 0xa0, 0x42, 0x04, 0x40, 0xb7, 0xd4, 0x0c, 0xcb, 0x22, 0x5b,
     0xa5, 0x78, 0x8f, 0x98, 0xff, 0x9e, 0x86, 0x93, 0x75, 0xf6, 0x90, 0xac,
     0x50, 0xcf, 0x9e, 0xbd, 0x0a, 0xfe, 0xb1, 0xd9, 0xc2, 0x4e, 0x52, 0x19,
     0xe4, 0xde, 0x29, 0xe5, 0x61, 0xf3, 0xf9, 0x29, 0xe8, 0x40, 0x87, 0x7a,
@@ -1373,17 +1371,16 @@
     0x08, 0x4d, 0x7c, 0x39, 0x76, 0xdc, 0x73, 0xe7, 0x1c, 0x16, 0x62, 0xd5,
     0x59, 0xd7, 0x49, 0x2b, 0x6a, 0xa2, 0x36, 0x67, 0x57, 0xd1, 0xf2, 0xf9,
     0xaf, 0x13, 0xd7, 0xa3, 0xe4, 0xd3, 0x39, 0x5b, 0x02, 0x78, 0xb1, 0xe0,
-    0x09, 0x70, 0xa2, 0xa6, 0x03, 0x0a, 0x01, 0x00, 0xa7, 0x21, 0x0c, 0x1f,
-    0x6f, 0x70, 0x65, 0x6e, 0x73, 0x73, 0x6c, 0x2e, 0x65, 0x78, 0x61, 0x6d,
-    0x70, 0x6c, 0x65, 0x2e, 0x70, 0x32, 0x35, 0x36, 0x5f, 0x63, 0x6f, 0x6d,
-    0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x30, 0x0a, 0x06, 0x08, 0x2a,
-    0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x03, 0x47, 0x00, 0x30, 0x44,
-    0x02, 0x20, 0x11, 0xed, 0x7d, 0xc1, 0x5f, 0x53, 0x6c, 0x09, 0xb9, 0xca,
-    0x36, 0x97, 0xf8, 0x5e, 0xed, 0x1e, 0x48, 0x78, 0xaf, 0x48, 0x39, 0xc7,
-    0x6f, 0xe5, 0xce, 0xb6, 0xdb, 0x75, 0xb1, 0xf7, 0x5d, 0xa7, 0x02, 0x20,
-    0x75, 0x17, 0x22, 0x36, 0x67, 0x59, 0x9b, 0xad, 0x4a, 0x9e, 0xaa, 0xb5,
-    0x9a, 0x70, 0x5d, 0xf1, 0x90, 0xf8, 0x82, 0x1d, 0xd1, 0x84, 0x54, 0xf0,
-    0x48, 0x23, 0x30, 0x3c, 0x98, 0x9d, 0x1d, 0x1a};
+    0x09, 0x70, 0xa2, 0xa6, 0x03, 0x0a, 0x01, 0x00, 0xa7, 0x12, 0x0c, 0x10,
+    0x6f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x2e, 0x65, 0x78, 0x61,
+    0x6d, 0x70, 0x6c, 0x65, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce,
+    0x3d, 0x04, 0x03, 0x02, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21, 0x00,
+    0xe8, 0x77, 0x92, 0x04, 0x4d, 0x4e, 0xae, 0x1b, 0x74, 0x66, 0xd6, 0xb7,
+    0x3f, 0xcf, 0x33, 0x94, 0x70, 0x0c, 0x9a, 0x5a, 0x05, 0xf2, 0x0b, 0xe5,
+    0x2b, 0x67, 0xec, 0x28, 0xd9, 0x8a, 0xfe, 0x71, 0x02, 0x21, 0x00, 0xfa,
+    0xc2, 0xcc, 0x2a, 0xbe, 0x31, 0x06, 0xbf, 0x69, 0x0d, 0xe4, 0xf7, 0xc4,
+    0x97, 0x05, 0xef, 0xa0, 0x10, 0x54, 0x12, 0xcf, 0xd8, 0xda, 0x5c, 0x84,
+    0x1c, 0x90, 0x10, 0xe7, 0xcd, 0xe5, 0xfd};
 
 constexpr uint8_t kExpectedX509P384Cert_DescriptorInput[0] = {};
 
@@ -1445,12 +1442,12 @@
     0x30, 0x51, 0x65, 0x38, 0x61, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41, 0x20,
     0x3a, 0x00, 0x47, 0x44, 0x59, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x69,
     0x63, 0x65, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x58, 0x40,
-    0xff, 0xb6, 0x72, 0x2b, 0x96, 0xb7, 0x08, 0x37, 0xdb, 0xbb, 0xf5, 0x42,
-    0x8a, 0xd2, 0xe2, 0x1f, 0x5a, 0x87, 0x3c, 0x27, 0xe6, 0xc5, 0xb1, 0x31,
-    0x26, 0x9c, 0xe4, 0x9c, 0x36, 0x57, 0xcd, 0x5d, 0xdd, 0x13, 0xcd, 0x9c,
-    0x99, 0xb3, 0xe0, 0xd1, 0x93, 0x98, 0x79, 0x74, 0xf1, 0xaa, 0xb7, 0x8d,
-    0x00, 0x59, 0x00, 0x0c, 0x33, 0x29, 0x48, 0x34, 0x1e, 0x38, 0x3d, 0xdf,
-    0x29, 0x0d, 0x30, 0xfb};
+    0x9b, 0xeb, 0x67, 0x74, 0x4c, 0xb1, 0xb4, 0x0f, 0x8f, 0x59, 0xb0, 0xc3,
+    0x31, 0x38, 0x17, 0xd2, 0x4d, 0x94, 0xf6, 0x31, 0x23, 0x10, 0xea, 0x72,
+    0x92, 0x0a, 0xa2, 0xd8, 0xf6, 0xa1, 0xee, 0x7d, 0xb0, 0x00, 0x15, 0xdf,
+    0x8b, 0x87, 0x74, 0x18, 0xe9, 0x77, 0xe1, 0x97, 0xfe, 0x5b, 0x38, 0xdf,
+    0x9e, 0x7b, 0xd8, 0xdf, 0x5b, 0x27, 0x32, 0xb5, 0x73, 0x82, 0x7c, 0xe9,
+    0x8a, 0xd1, 0xd2, 0x9b};
 
 constexpr uint8_t kExpectedCborP384Cert_DescriptorInput[790] = {
     0x84, 0x44, 0xa1, 0x01, 0x38, 0x22, 0xa0, 0x59, 0x02, 0xaa, 0xac, 0x01,
@@ -1510,15 +1507,15 @@
     0xf5, 0x7d, 0x26, 0xc2, 0x37, 0xe9, 0x58, 0x98, 0xeb, 0xef, 0x11, 0x7c,
     0x8d, 0x1d, 0x4b, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41, 0x20, 0x3a, 0x00,
     0x47, 0x44, 0x59, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x63, 0x65,
-    0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x58, 0x60, 0xe7, 0x19,
-    0xc3, 0xe6, 0x17, 0xe3, 0x29, 0xe7, 0xb3, 0x22, 0x40, 0x94, 0x0f, 0x2b,
-    0x43, 0xdb, 0x1d, 0xa3, 0x92, 0xed, 0x80, 0x1c, 0x06, 0xf3, 0xdf, 0x60,
-    0xdf, 0x5e, 0x35, 0x06, 0x15, 0x33, 0xeb, 0x5f, 0x4d, 0x93, 0x22, 0x9d,
-    0x83, 0x10, 0x59, 0xaf, 0xe3, 0x4e, 0xab, 0x4b, 0x56, 0x6e, 0x48, 0xd6,
-    0xd8, 0x17, 0xb1, 0xad, 0xf5, 0x5b, 0x37, 0x81, 0x32, 0x1b, 0x7f, 0xd6,
-    0xc8, 0x48, 0x27, 0xbc, 0x15, 0xa8, 0xf1, 0x1c, 0x86, 0x5d, 0x7f, 0xdb,
-    0x83, 0x46, 0x75, 0x93, 0xc8, 0x0f, 0x29, 0x5b, 0xb0, 0x19, 0x6c, 0xcc,
-    0x11, 0xec, 0x31, 0xe0, 0xfa, 0xb5, 0x8a, 0x11, 0x5c, 0x84};
+    0x2e, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x58, 0x60, 0x60, 0x88,
+    0x0a, 0x15, 0x8a, 0x65, 0x4e, 0x31, 0xa7, 0x61, 0x33, 0x2f, 0x83, 0x07,
+    0x12, 0x77, 0xca, 0xfe, 0xab, 0x9d, 0xf7, 0x92, 0xb1, 0x49, 0x43, 0xdb,
+    0xfb, 0x33, 0x42, 0x68, 0xc1, 0xc2, 0xf4, 0xfa, 0x0b, 0xff, 0x0e, 0x55,
+    0x8b, 0x1b, 0x12, 0xc6, 0xe2, 0xc5, 0x44, 0xd7, 0x57, 0x73, 0x7c, 0xd2,
+    0xfe, 0xef, 0x8f, 0x3d, 0xa3, 0xf8, 0x1a, 0xaa, 0x33, 0xdf, 0xea, 0xe9,
+    0x88, 0x81, 0x4e, 0xec, 0xa4, 0xa0, 0x2a, 0x9f, 0x00, 0x0d, 0xde, 0x4e,
+    0xd6, 0x73, 0x1e, 0xfe, 0x99, 0xff, 0x1c, 0xf4, 0xed, 0x24, 0x16, 0x81,
+    0x70, 0x6e, 0xee, 0x11, 0xe8, 0x31, 0xb2, 0x1f, 0x50, 0x8e};
 
 constexpr uint8_t kExpectedCborEd25519Cert_AndroidDescriptorInput[683] = {
     0x84, 0x43, 0xa1, 0x01, 0x27, 0xa0, 0x59, 0x02, 0x60, 0xac, 0x01, 0x78,
@@ -1634,12 +1631,12 @@
     0x1c, 0xf3, 0xaf, 0x67, 0xf0, 0x9b, 0x88, 0x40, 0x79, 0x3b, 0x09, 0x78,
     0x30, 0x51, 0x65, 0x38, 0x61, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41, 0x20,
     0x3a, 0x00, 0x47, 0x44, 0x59, 0x6a, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69,
-    0x64, 0x2e, 0x31, 0x36, 0x58, 0x40, 0x65, 0x58, 0x83, 0x1d, 0xa8, 0x36,
-    0x86, 0x29, 0xd8, 0x92, 0x35, 0x48, 0xed, 0x50, 0xb7, 0x2e, 0x3f, 0x38,
-    0xcb, 0xaa, 0x03, 0x51, 0x86, 0xbd, 0xc5, 0x85, 0x64, 0xc2, 0x1c, 0xe6,
-    0xee, 0x50, 0x53, 0x42, 0xd3, 0xb3, 0x9b, 0x53, 0x17, 0x67, 0x6e, 0xb4,
-    0x60, 0x12, 0x5b, 0x2b, 0x64, 0x43, 0x83, 0x48, 0xc5, 0xb4, 0xd7, 0xf1,
-    0x93, 0x5a, 0xbb, 0x8a, 0xf6, 0x83, 0x48, 0x4f, 0x9a, 0xab};
+    0x64, 0x2e, 0x31, 0x36, 0x58, 0x40, 0x84, 0xb8, 0xd7, 0x5e, 0x93, 0xdd,
+    0xc5, 0xe8, 0x9b, 0x16, 0x3b, 0x24, 0x72, 0xc3, 0x57, 0x96, 0xb0, 0x0c,
+    0xf7, 0xd5, 0x7c, 0x66, 0x1f, 0xa0, 0xd9, 0x2d, 0xbe, 0xbc, 0xe6, 0xc2,
+    0x6d, 0xb2, 0xbe, 0xa2, 0x5c, 0xc8, 0x21, 0x26, 0xd8, 0x1b, 0xed, 0x40,
+    0x23, 0x3d, 0x13, 0xfb, 0x16, 0x7c, 0xac, 0x02, 0x01, 0x7b, 0xc3, 0xbf,
+    0xb2, 0xca, 0x62, 0x4e, 0x6e, 0xaf, 0x11, 0xbc, 0x35, 0xa6};
 
 constexpr uint8_t kExpectedCborP384Cert_AndroidDescriptorInput[784] = {
     0x84, 0x44, 0xa1, 0x01, 0x38, 0x22, 0xa0, 0x59, 0x02, 0xa4, 0xac, 0x01,
@@ -1699,15 +1696,15 @@
     0xf5, 0x7d, 0x26, 0xc2, 0x37, 0xe9, 0x58, 0x98, 0xeb, 0xef, 0x11, 0x7c,
     0x8d, 0x1d, 0x4b, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41, 0x20, 0x3a, 0x00,
     0x47, 0x44, 0x59, 0x6a, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2e,
-    0x31, 0x36, 0x58, 0x60, 0x71, 0x9e, 0xc4, 0x64, 0x88, 0x9e, 0x20, 0xe8,
-    0xb3, 0xa3, 0x89, 0x44, 0x16, 0x28, 0xd2, 0x07, 0xc0, 0x78, 0x49, 0x8b,
-    0xee, 0x49, 0x37, 0x10, 0x83, 0x7b, 0x2d, 0x2d, 0xae, 0x1a, 0x03, 0xa5,
-    0xd3, 0xe7, 0x68, 0x6c, 0xc5, 0x93, 0xf7, 0x23, 0x02, 0xe0, 0xa7, 0xaa,
-    0x57, 0xf0, 0x25, 0x69, 0x85, 0x84, 0x48, 0x12, 0xce, 0x70, 0x63, 0x7d,
-    0xb7, 0x88, 0x05, 0x29, 0x39, 0x26, 0xbf, 0x63, 0xcb, 0x28, 0x84, 0xbd,
-    0xef, 0x71, 0xf1, 0x43, 0x58, 0x44, 0x46, 0xb4, 0x78, 0xbe, 0x36, 0xad,
-    0x0c, 0xe2, 0xfa, 0xe5, 0xe0, 0xe7, 0x35, 0x8f, 0x49, 0x21, 0xec, 0x67,
-    0x9d, 0x1b, 0xa2, 0xb3};
+    0x31, 0x36, 0x58, 0x60, 0x44, 0xfc, 0x89, 0x29, 0x1b, 0x68, 0x08, 0xe2,
+    0x9b, 0x1f, 0x0c, 0x53, 0x3e, 0x96, 0x62, 0x30, 0xa8, 0x82, 0xd1, 0xf7,
+    0xb1, 0xe6, 0x2b, 0xaf, 0xd8, 0xf1, 0x37, 0x10, 0x0b, 0x18, 0xb3, 0x42,
+    0x54, 0x7a, 0x89, 0x4d, 0x1d, 0xc0, 0x07, 0x2d, 0xa3, 0x12, 0xa2, 0xf3,
+    0x07, 0x28, 0x39, 0xc6, 0x1c, 0xc7, 0x47, 0xbe, 0x01, 0x49, 0x5b, 0x58,
+    0xcc, 0x8f, 0x47, 0x8d, 0xd9, 0x27, 0x9c, 0x16, 0x0e, 0x72, 0x06, 0xa9,
+    0x34, 0xaf, 0xce, 0x68, 0xb6, 0x72, 0xba, 0xdb, 0xc8, 0xc4, 0xe5, 0xd5,
+    0x8e, 0x2f, 0xd4, 0xb3, 0x16, 0xc6, 0xd3, 0xac, 0x2c, 0xe4, 0x9a, 0xcd,
+    0x1e, 0xe2, 0xd5, 0x4e};
 
 }  // namespace test
 }  // namespace dice
diff --git a/include/dice/test_utils.h b/include/dice/test_utils.h
index c5bea9e..8c0d97a 100644
--- a/include/dice/test_utils.h
+++ b/include/dice/test_utils.h
@@ -44,6 +44,14 @@
   size_t certificate_size;
 };
 
+// Get a pointer to the payload section of a certificate.
+const uint8_t* GetX509PayloadPointer(const uint8_t* certificate);
+
+// Determines the length of the payload in a certificate. That is, exclude the
+// first tag/length at the beginning and the signature at the end.
+size_t ComputeX509PayloadSize(const uint8_t* certificate,
+                              size_t certificate_size);
+
 // Dumps |state| to a set of files in the current directory with the given
 // |suffix|.
 void DumpState(CertificateType cert_type, KeyType key_type, const char* suffix,
diff --git a/src/boringssl_cert_op.c b/src/boringssl_cert_op.c
index 79ce6d3..fda4591 100644
--- a/src/boringssl_cert_op.c
+++ b/src/boringssl_cert_op.c
@@ -13,12 +13,12 @@
 // the License.
 
 // This is a DiceGenerateCertificate implementation that uses boringssl for
-// crypto and certificate generation. The algorithms used are SHA512,
-// HKDF-SHA512, and Ed25519-SHA512.
+// crypto and certificate generation.
 
 #include <stdint.h>
 #include <string.h>
 
+#include "dice/config/cose_key_config.h"
 #include "dice/dice.h"
 #include "dice/ops.h"
 #include "dice/profile_name.h"
@@ -26,6 +26,7 @@
 #include "openssl/asn1.h"
 #include "openssl/asn1t.h"
 #include "openssl/bn.h"
+#include "openssl/crypto.h"
 #include "openssl/curve25519.h"
 #include "openssl/evp.h"
 #include "openssl/is_boringssl.h"
@@ -516,15 +517,95 @@
   return result;
 }
 
-static DiceResult GetIdFromKey(void* context, const EVP_PKEY* key,
-                               uint8_t id[DICE_ID_SIZE]) {
-  uint8_t raw_public_key[32];
-  size_t raw_public_key_size = sizeof(raw_public_key);
-  if (!EVP_PKEY_get_raw_public_key(key, raw_public_key, &raw_public_key_size)) {
-    return kDiceResultPlatformError;
+static EVP_PKEY* CreateEcPrivateKey(
+    int nid, const uint8_t private_key[DICE_PRIVATE_KEY_BUFFER_SIZE]) {
+  int success = 0;
+  EC_KEY* ec_key = NULL;
+  BIGNUM* bn = NULL;
+  EC_POINT* point = NULL;
+  EVP_PKEY* pkey = NULL;
+
+  ec_key = EC_KEY_new_by_curve_name(nid);
+  if (!ec_key) {
+    goto out;
   }
-  return DiceDeriveCdiCertificateId(context, raw_public_key,
-                                    raw_public_key_size, id);
+
+  bn = BN_bin2bn(private_key, DICE_PRIVATE_KEY_BUFFER_SIZE, NULL);
+  if (!bn) {
+    goto out;
+  }
+
+  if (!EC_KEY_set_private_key(ec_key, bn)) {
+    goto out;
+  }
+
+  const EC_GROUP* group = EC_KEY_get0_group(ec_key);
+
+  point = EC_POINT_new(group);
+  if (!point) {
+    goto out;
+  }
+
+  if (!EC_POINT_mul(group, point, bn, NULL, NULL, NULL)) {
+    goto out;
+  }
+  if (!EC_KEY_set_public_key(ec_key, point)) {
+    goto out;
+  }
+
+  pkey = EVP_PKEY_new();
+  if (!pkey) {
+    goto out;
+  }
+
+  success = EVP_PKEY_set1_EC_KEY(pkey, ec_key);
+
+out:
+  if (ec_key) {
+    EC_KEY_free(ec_key);
+  }
+  if (bn) {
+    BN_free(bn);
+  }
+  if (point) {
+    EC_POINT_free(point);
+  }
+  if (!success && pkey) {
+    EVP_PKEY_free(pkey);
+  }
+
+  return pkey;
+}
+
+static EVP_PKEY* CreatePrivateKey(
+    const DiceKeyParam* key_param,
+    const uint8_t private_key[DICE_PRIVATE_KEY_BUFFER_SIZE]) {
+  if (key_param->cose_key_curve == kCoseCrvEd25519) {
+    return EVP_PKEY_new_raw_private_key(EVP_PKEY_ED25519, NULL, private_key,
+                                        32);
+  }
+  if (key_param->cose_key_curve == kCoseCrvP256) {
+    return CreateEcPrivateKey(NID_X9_62_prime256v1, private_key);
+  }
+  if (key_param->cose_key_curve == kCoseCrvP384) {
+    return CreateEcPrivateKey(NID_secp384r1, private_key);
+  }
+  return NULL;
+}
+
+static const EVP_MD* GetDigestForX509Sign(const DiceKeyParam* key_param) {
+  if (key_param->cose_key_curve == kCoseCrvP256) {
+    return EVP_sha256();
+  }
+  if (key_param->cose_key_curve == kCoseCrvP384) {
+    return EVP_sha384();
+  }
+  // The interface for Ed25519 is different from P256 and P384.
+  // It expects NULL and will use SHA512 implicitly.
+  if (key_param->cose_key_curve == kCoseCrvEd25519) {
+    return NULL;
+  }
+  return NULL;
 }
 
 DiceResult DiceGenerateCertificate(
@@ -533,44 +614,63 @@
     const uint8_t authority_private_key_seed[DICE_PRIVATE_KEY_SEED_SIZE],
     const DiceInputValues* input_values, size_t certificate_buffer_size,
     uint8_t* certificate, size_t* certificate_actual_size) {
-  DiceResult result = kDiceResultOk;
-
   // Initialize variables that are cleaned up on 'goto out'.
   X509* x509 = NULL;
   EVP_PKEY* authority_key = NULL;
   EVP_PKEY* subject_key = NULL;
 
+  DiceResult result = kDiceResultOk;
+
+  DiceKeyParam key_param;
+  result = DiceGetKeyParam(context, kDicePrincipalSubject, &key_param);
+  if (result != kDiceResultOk) {
+    return result;
+  }
+
+  uint8_t authority_public_key[DICE_PUBLIC_KEY_BUFFER_SIZE];
+  uint8_t authority_private_key[DICE_PRIVATE_KEY_BUFFER_SIZE];
+  result = DiceKeypairFromSeed(context, kDicePrincipalAuthority,
+                               authority_private_key_seed, authority_public_key,
+                               authority_private_key);
+
+  authority_key = CreatePrivateKey(&key_param, authority_private_key);
+  if (!authority_key) {
+    goto out;
+  }
+
+  uint8_t subject_public_key[DICE_PUBLIC_KEY_BUFFER_SIZE];
+  uint8_t subject_private_key[DICE_PRIVATE_KEY_BUFFER_SIZE];
+  result = DiceKeypairFromSeed(context, kDicePrincipalSubject,
+                               subject_private_key_seed, subject_public_key,
+                               subject_private_key);
+
+  subject_key = CreatePrivateKey(&key_param, subject_private_key);
+  if (!subject_key) {
+    result = kDiceResultPlatformError;
+    goto out;
+  }
+
   x509 = X509_new();
   if (!x509) {
     result = kDiceResultPlatformError;
     goto out;
   }
-  authority_key = EVP_PKEY_new_raw_private_key(EVP_PKEY_ED25519, NULL,
-                                               authority_private_key_seed,
-                                               DICE_PRIVATE_KEY_SEED_SIZE);
-  if (!authority_key) {
-    result = kDiceResultPlatformError;
-    goto out;
-  }
-  subject_key = EVP_PKEY_new_raw_private_key(EVP_PKEY_ED25519, NULL,
-                                             subject_private_key_seed,
-                                             DICE_PRIVATE_KEY_SEED_SIZE);
-  if (!subject_key) {
-    result = kDiceResultPlatformError;
-    goto out;
-  }
+
   if (!X509_set_pubkey(x509, subject_key)) {
     result = kDiceResultPlatformError;
     goto out;
   }
 
   uint8_t authority_id[DICE_ID_SIZE];
-  result = GetIdFromKey(context, authority_key, authority_id);
+  result =
+      DiceDeriveCdiCertificateId(context, authority_public_key,
+                                 sizeof(authority_public_key), authority_id);
   if (result != kDiceResultOk) {
     goto out;
   }
   uint8_t subject_id[DICE_ID_SIZE];
-  result = GetIdFromKey(context, subject_key, subject_id);
+  result = DiceDeriveCdiCertificateId(context, subject_public_key,
+                                      sizeof(subject_public_key), subject_id);
   if (result != kDiceResultOk) {
     goto out;
   }
@@ -583,16 +683,12 @@
   if (result != kDiceResultOk) {
     goto out;
   }
-  DiceKeyParam key_param;
-  result = DiceGetKeyParam(context, kDicePrincipalSubject, &key_param);
-  if (result != kDiceResultOk) {
-    goto out;
-  }
   result = AddDiceExtension(input_values, x509);
   if (result != kDiceResultOk) {
     goto out;
   }
-  if (!X509_sign(x509, authority_key, NULL /*ED25519 always uses SHA-512*/)) {
+
+  if (!X509_sign(x509, authority_key, GetDigestForX509Sign(&key_param))) {
     result = kDiceResultPlatformError;
     goto out;
   }
diff --git a/src/boringssl_p256_ops_test.cc b/src/boringssl_p256_ops_test.cc
new file mode 100644
index 0000000..a3e09cf
--- /dev/null
+++ b/src/boringssl_p256_ops_test.cc
@@ -0,0 +1,258 @@
+// Copyright 2020 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy of
+// the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <memory>
+
+#include "dice/dice.h"
+#include "dice/known_test_values.h"
+#include "dice/test_framework.h"
+#include "dice/test_utils.h"
+#include "dice/utils.h"
+#include "pw_string/format.h"
+
+namespace {
+
+using dice::test::CertificateType_X509;
+using dice::test::ComputeX509PayloadSize;
+using dice::test::DeriveFakeInputValue;
+using dice::test::DiceStateForTest;
+using dice::test::GetX509PayloadPointer;
+using dice::test::KeyType_P256;
+
+TEST(DiceOpsTest, KnownAnswerZeroInput) {
+  DiceStateForTest current_state = {};
+  DiceStateForTest next_state = {};
+  DiceInputValues input_values = {};
+  DiceResult result = DiceMainFlow(
+      NULL, current_state.cdi_attest, current_state.cdi_seal, &input_values,
+      sizeof(next_state.certificate), next_state.certificate,
+      &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
+  EXPECT_EQ(kDiceResultOk, result);
+  // Both CDI values and the certificate should be deterministic.
+  EXPECT_EQ(0, memcmp(next_state.cdi_attest,
+                      dice::test::kExpectedCdiAttest_ZeroInput, DICE_CDI_SIZE));
+  EXPECT_EQ(0, memcmp(next_state.cdi_seal,
+                      dice::test::kExpectedCdiSeal_ZeroInput, DICE_CDI_SIZE));
+  size_t expected_length = ComputeX509PayloadSize(
+      dice::test::kExpectedX509P256Cert_ZeroInput,
+      sizeof(dice::test::kExpectedX509P256Cert_ZeroInput));
+  size_t actual_length = ComputeX509PayloadSize(next_state.certificate,
+                                                next_state.certificate_size);
+  ASSERT_EQ(expected_length, actual_length);
+  EXPECT_EQ(
+      0,
+      memcmp(GetX509PayloadPointer(dice::test::kExpectedX509P256Cert_ZeroInput),
+             GetX509PayloadPointer(next_state.certificate), actual_length));
+}
+
+TEST(DiceOpsTest, KnownAnswerHashOnlyInput) {
+  DiceStateForTest current_state = {};
+  DeriveFakeInputValue("cdi_attest", DICE_CDI_SIZE, current_state.cdi_attest);
+  DeriveFakeInputValue("cdi_seal", DICE_CDI_SIZE, current_state.cdi_seal);
+  DiceStateForTest next_state = {};
+  DiceInputValues input_values = {};
+  DeriveFakeInputValue("code_hash", DICE_HASH_SIZE, input_values.code_hash);
+  DeriveFakeInputValue("authority_hash", DICE_HASH_SIZE,
+                       input_values.authority_hash);
+  input_values.config_type = kDiceConfigTypeInline;
+  DeriveFakeInputValue("inline_config", DICE_INLINE_CONFIG_SIZE,
+                       input_values.config_value);
+
+  DiceResult result = DiceMainFlow(
+      NULL, current_state.cdi_attest, current_state.cdi_seal, &input_values,
+      sizeof(next_state.certificate), next_state.certificate,
+      &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
+  EXPECT_EQ(kDiceResultOk, result);
+  // Both CDI values and the certificate should be deterministic.
+  EXPECT_EQ(
+      0, memcmp(next_state.cdi_attest,
+                dice::test::kExpectedCdiAttest_HashOnlyInput, DICE_CDI_SIZE));
+  EXPECT_EQ(
+      0, memcmp(next_state.cdi_seal, dice::test::kExpectedCdiSeal_HashOnlyInput,
+                DICE_CDI_SIZE));
+  size_t expected_length = ComputeX509PayloadSize(
+      dice::test::kExpectedX509P256Cert_HashOnlyInput,
+      sizeof(dice::test::kExpectedX509P256Cert_HashOnlyInput));
+  size_t actual_length = ComputeX509PayloadSize(next_state.certificate,
+                                                next_state.certificate_size);
+  ASSERT_EQ(expected_length, actual_length);
+  EXPECT_EQ(
+      0, memcmp(GetX509PayloadPointer(
+                    dice::test::kExpectedX509P256Cert_HashOnlyInput),
+                GetX509PayloadPointer(next_state.certificate), actual_length));
+}
+
+TEST(DiceOpsTest, KnownAnswerDescriptorInput) {
+  DiceStateForTest current_state = {};
+  DeriveFakeInputValue("cdi_attest", DICE_CDI_SIZE, current_state.cdi_attest);
+  DeriveFakeInputValue("cdi_seal", DICE_CDI_SIZE, current_state.cdi_seal);
+
+  DiceStateForTest next_state = {};
+
+  DiceInputValues input_values = {};
+  DeriveFakeInputValue("code_hash", DICE_HASH_SIZE, input_values.code_hash);
+  uint8_t code_descriptor[100];
+  DeriveFakeInputValue("code_desc", sizeof(code_descriptor), code_descriptor);
+  input_values.code_descriptor = code_descriptor;
+  input_values.code_descriptor_size = sizeof(code_descriptor);
+
+  uint8_t config_descriptor[40];
+  DeriveFakeInputValue("config_desc", sizeof(config_descriptor),
+                       config_descriptor);
+  input_values.config_descriptor = config_descriptor;
+  input_values.config_descriptor_size = sizeof(config_descriptor);
+  input_values.config_type = kDiceConfigTypeDescriptor;
+
+  DeriveFakeInputValue("authority_hash", DICE_HASH_SIZE,
+                       input_values.authority_hash);
+  uint8_t authority_descriptor[65];
+  DeriveFakeInputValue("authority_desc", sizeof(authority_descriptor),
+                       authority_descriptor);
+  input_values.authority_descriptor = authority_descriptor;
+  input_values.authority_descriptor_size = sizeof(authority_descriptor);
+
+  DiceResult result = DiceMainFlow(
+      NULL, current_state.cdi_attest, current_state.cdi_seal, &input_values,
+      sizeof(next_state.certificate), next_state.certificate,
+      &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
+  EXPECT_EQ(kDiceResultOk, result);
+  // Both CDI values and the certificate should be deterministic.
+  EXPECT_EQ(
+      0, memcmp(next_state.cdi_attest,
+                dice::test::kExpectedCdiAttest_DescriptorInput, DICE_CDI_SIZE));
+  EXPECT_EQ(
+      0, memcmp(next_state.cdi_seal,
+                dice::test::kExpectedCdiSeal_DescriptorInput, DICE_CDI_SIZE));
+
+  size_t expected_length = ComputeX509PayloadSize(
+      dice::test::kExpectedX509P256Cert_DescriptorInput,
+      sizeof(dice::test::kExpectedX509P256Cert_DescriptorInput));
+  size_t actual_length = ComputeX509PayloadSize(next_state.certificate,
+                                                next_state.certificate_size);
+  ASSERT_EQ(expected_length, actual_length);
+  EXPECT_EQ(
+      0, memcmp(GetX509PayloadPointer(
+                    dice::test::kExpectedX509P256Cert_DescriptorInput),
+                GetX509PayloadPointer(next_state.certificate), actual_length));
+}
+
+TEST(DiceOpsTest, NonZeroMode) {
+  constexpr size_t kModeOffsetInCert = 0x267;
+  DiceStateForTest current_state = {};
+  DiceStateForTest next_state = {};
+  DiceInputValues input_values = {};
+  input_values.mode = kDiceModeDebug;
+  DiceResult result = DiceMainFlow(
+      NULL, current_state.cdi_attest, current_state.cdi_seal, &input_values,
+      sizeof(next_state.certificate), next_state.certificate,
+      &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
+  EXPECT_EQ(kDiceResultOk, result);
+  EXPECT_EQ(kDiceModeDebug, next_state.certificate[kModeOffsetInCert]);
+}
+
+TEST(DiceOpsTest, LargeInputs) {
+  constexpr uint8_t kBigBuffer[1024 * 1024] = {};
+  DiceStateForTest current_state = {};
+  DiceStateForTest next_state = {};
+  DiceInputValues input_values = {};
+  input_values.code_descriptor = kBigBuffer;
+  input_values.code_descriptor_size = sizeof(kBigBuffer);
+  DiceResult result = DiceMainFlow(
+      NULL, current_state.cdi_attest, current_state.cdi_seal, &input_values,
+      sizeof(next_state.certificate), next_state.certificate,
+      &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
+  EXPECT_EQ(kDiceResultBufferTooSmall, result);
+}
+
+TEST(DiceOpsTest, InvalidConfigType) {
+  DiceStateForTest current_state = {};
+  DiceStateForTest next_state = {};
+  DiceInputValues input_values = {};
+  input_values.config_type = (DiceConfigType)55;
+  DiceResult result = DiceMainFlow(
+      NULL, current_state.cdi_attest, current_state.cdi_seal, &input_values,
+      sizeof(next_state.certificate), next_state.certificate,
+      &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
+  EXPECT_EQ(kDiceResultInvalidInput, result);
+}
+
+TEST(DiceOpsTest, PartialCertChain) {
+  constexpr size_t kNumLayers = 7;
+  DiceStateForTest states[kNumLayers + 1] = {};
+  DiceInputValues inputs[kNumLayers] = {};
+  for (size_t i = 0; i < kNumLayers; ++i) {
+    char seed[40];
+    pw::string::Format(seed, "code_hash_%zu", i);
+    DeriveFakeInputValue(seed, DICE_HASH_SIZE, inputs[i].code_hash);
+    pw::string::Format(seed, "authority_hash_%zu", i);
+    DeriveFakeInputValue(seed, DICE_HASH_SIZE, inputs[i].authority_hash);
+    inputs[i].config_type = kDiceConfigTypeInline;
+    pw::string::Format(seed, "inline_config_%zu", i);
+    DeriveFakeInputValue(seed, DICE_INLINE_CONFIG_SIZE, inputs[i].config_value);
+    inputs[i].mode = kDiceModeNormal;
+    EXPECT_EQ(
+        kDiceResultOk,
+        DiceMainFlow(/*context=*/NULL, states[i].cdi_attest, states[i].cdi_seal,
+                     &inputs[i], sizeof(states[i + 1].certificate),
+                     states[i + 1].certificate, &states[i + 1].certificate_size,
+                     states[i + 1].cdi_attest, states[i + 1].cdi_seal));
+    char suffix[40];
+    pw::string::Format(suffix, "part_cert_chain_%zu", i);
+  }
+  // Use the first derived CDI cert as the 'root' of partial chain.
+  EXPECT_TRUE(dice::test::VerifyCertificateChain(
+      CertificateType_X509, states[1].certificate, states[1].certificate_size,
+      &states[2], kNumLayers - 1, /*is_partial_chain=*/true));
+}
+
+TEST(DiceOpsTest, FullCertChain) {
+  constexpr size_t kNumLayers = 7;
+  DiceStateForTest states[kNumLayers + 1] = {};
+  DiceInputValues inputs[kNumLayers] = {};
+  for (size_t i = 0; i < kNumLayers; ++i) {
+    char seed[40];
+    pw::string::Format(seed, "code_hash_%zu", i);
+    DeriveFakeInputValue(seed, DICE_HASH_SIZE, inputs[i].code_hash);
+    pw::string::Format(seed, "authority_hash_%zu", i);
+    DeriveFakeInputValue(seed, DICE_HASH_SIZE, inputs[i].authority_hash);
+    inputs[i].config_type = kDiceConfigTypeInline;
+    pw::string::Format(seed, "inline_config_%zu", i);
+    DeriveFakeInputValue(seed, DICE_INLINE_CONFIG_SIZE, inputs[i].config_value);
+    inputs[i].mode = kDiceModeNormal;
+    EXPECT_EQ(
+        kDiceResultOk,
+        DiceMainFlow(/*context=*/NULL, states[i].cdi_attest, states[i].cdi_seal,
+                     &inputs[i], sizeof(states[i + 1].certificate),
+                     states[i + 1].certificate, &states[i + 1].certificate_size,
+                     states[i + 1].cdi_attest, states[i + 1].cdi_seal));
+    char suffix[40];
+    pw::string::Format(suffix, "full_cert_chain_%zu", i);
+  }
+  // Use a fake self-signed UDS cert as the 'root'.
+  uint8_t root_certificate[dice::test::kTestCertSize];
+  size_t root_certificate_size = 0;
+  dice::test::CreateFakeUdsCertificate(
+      NULL, states[0].cdi_attest, CertificateType_X509, KeyType_P256,
+      root_certificate, &root_certificate_size);
+  EXPECT_TRUE(dice::test::VerifyCertificateChain(
+      CertificateType_X509, root_certificate, root_certificate_size, &states[1],
+      kNumLayers,
+      /*is_partial_chain=*/false));
+}
+
+}  // namespace
diff --git a/src/mbedtls_ops.c b/src/mbedtls_ops.c
index 8c232dc..c7a162d 100644
--- a/src/mbedtls_ops.c
+++ b/src/mbedtls_ops.c
@@ -14,13 +14,14 @@
 
 // This is an implementation of DiceGenerateCertificate and the crypto
 // operations that uses mbedtls. The algorithms used are SHA512, HKDF-SHA512,
-// and deterministic ECDSA-P256-SHA512.
+// and deterministic ECDSA-P256-SHA256.
 
 #include <stdint.h>
 #include <string.h>
 
 #include "dice/dice.h"
 #include "dice/ops.h"
+#include "dice/profile_name.h"
 #include "dice/utils.h"
 #include "mbedtls/asn1.h"
 #include "mbedtls/asn1write.h"
@@ -73,17 +74,22 @@
 static DiceResult GetIdFromKey(void* context,
                                const mbedtls_pk_context* pk_context,
                                uint8_t id[DICE_ID_SIZE]) {
-  uint8_t raw_public_key[33];
-  size_t raw_public_key_size = 0;
+  uint8_t formatted_public_key[DICE_PUBLIC_KEY_BUFFER_SIZE];
+  size_t formatted_public_key_size = 0;
   mbedtls_ecp_keypair* key = mbedtls_pk_ec(*pk_context);
 
   if (0 != mbedtls_ecp_point_write_binary(
-               &key->grp, &key->Q, MBEDTLS_ECP_PF_COMPRESSED,
-               &raw_public_key_size, raw_public_key, sizeof(raw_public_key))) {
+               &key->grp, &key->Q, MBEDTLS_ECP_PF_UNCOMPRESSED,
+               &formatted_public_key_size, formatted_public_key,
+               sizeof(formatted_public_key))) {
     return kDiceResultPlatformError;
   }
-  return DiceDeriveCdiCertificateId(context, raw_public_key,
-                                    raw_public_key_size, id);
+
+  // mbedtls puts a format byte at the start of a binary representation
+  // of an elliptic curve point. For consistency with other uses of the function
+  // below, this byte is not used in the derivation of the certificate ID.
+  return DiceDeriveCdiCertificateId(context, &formatted_public_key[1],
+                                    formatted_public_key_size - 1, id);
 }
 
 // 54 byte name is prefix (13), hex id (40), and a null terminator.
@@ -435,7 +441,7 @@
   }
   mbedtls_x509write_crt_set_subject_key(&cert_context, &subject_key_context);
   mbedtls_x509write_crt_set_issuer_key(&cert_context, &authority_key_context);
-  mbedtls_x509write_crt_set_md_alg(&cert_context, MBEDTLS_MD_SHA512);
+  mbedtls_x509write_crt_set_md_alg(&cert_context, MBEDTLS_MD_SHA256);
   if (0 != mbedtls_x509write_crt_set_extension(
                &cert_context, MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER,
                MBEDTLS_OID_SIZE(MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER),
diff --git a/src/mbedtls_ops_test.cc b/src/mbedtls_ops_test.cc
index 96fc8e5..7193b26 100644
--- a/src/mbedtls_ops_test.cc
+++ b/src/mbedtls_ops_test.cc
@@ -28,10 +28,12 @@
 namespace {
 
 using dice::test::CertificateType_X509;
+using dice::test::ComputeX509PayloadSize;
 using dice::test::DeriveFakeInputValue;
 using dice::test::DiceStateForTest;
 using dice::test::DumpState;
-using dice::test::KeyType_P256_COMPRESSED;
+using dice::test::GetX509PayloadPointer;
+using dice::test::KeyType_P256;
 
 TEST(DiceOpsTest, KnownAnswerZeroInput) {
   DiceStateForTest current_state = {};
@@ -42,17 +44,22 @@
       sizeof(next_state.certificate), next_state.certificate,
       &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
   EXPECT_EQ(kDiceResultOk, result);
-  DumpState(CertificateType_X509, KeyType_P256_COMPRESSED, "zero_input",
-            next_state);
+  DumpState(CertificateType_X509, KeyType_P256, "zero_input", next_state);
   // Both CDI values and the certificate should be deterministic.
   EXPECT_EQ(0, memcmp(next_state.cdi_attest,
                       dice::test::kExpectedCdiAttest_ZeroInput, DICE_CDI_SIZE));
   EXPECT_EQ(0, memcmp(next_state.cdi_seal,
                       dice::test::kExpectedCdiSeal_ZeroInput, DICE_CDI_SIZE));
-  ASSERT_EQ(sizeof(dice::test::kExpectedX509P256Cert_ZeroInput),
-            next_state.certificate_size);
-  EXPECT_EQ(0, memcmp(dice::test::kExpectedX509P256Cert_ZeroInput,
-                      next_state.certificate, next_state.certificate_size));
+  size_t expected_length = ComputeX509PayloadSize(
+      dice::test::kExpectedX509P256Cert_ZeroInput,
+      sizeof(dice::test::kExpectedX509P256Cert_ZeroInput));
+  size_t actual_length = ComputeX509PayloadSize(next_state.certificate,
+                                                next_state.certificate_size);
+  ASSERT_EQ(expected_length, actual_length);
+  EXPECT_EQ(
+      0,
+      memcmp(GetX509PayloadPointer(dice::test::kExpectedX509P256Cert_ZeroInput),
+             GetX509PayloadPointer(next_state.certificate), actual_length));
 }
 
 TEST(DiceOpsTest, KnownAnswerHashOnlyInput) {
@@ -73,8 +80,7 @@
       sizeof(next_state.certificate), next_state.certificate,
       &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
   EXPECT_EQ(kDiceResultOk, result);
-  DumpState(CertificateType_X509, KeyType_P256_COMPRESSED, "hash_only_input",
-            next_state);
+  DumpState(CertificateType_X509, KeyType_P256, "hash_only_input", next_state);
   // Both CDI values and the certificate should be deterministic.
   EXPECT_EQ(
       0, memcmp(next_state.cdi_attest,
@@ -82,10 +88,16 @@
   EXPECT_EQ(
       0, memcmp(next_state.cdi_seal, dice::test::kExpectedCdiSeal_HashOnlyInput,
                 DICE_CDI_SIZE));
-  ASSERT_EQ(sizeof(dice::test::kExpectedX509P256Cert_HashOnlyInput),
-            next_state.certificate_size);
-  EXPECT_EQ(0, memcmp(dice::test::kExpectedX509P256Cert_HashOnlyInput,
-                      next_state.certificate, next_state.certificate_size));
+  size_t expected_length = ComputeX509PayloadSize(
+      dice::test::kExpectedX509P256Cert_HashOnlyInput,
+      sizeof(dice::test::kExpectedX509P256Cert_HashOnlyInput));
+  size_t actual_length = ComputeX509PayloadSize(next_state.certificate,
+                                                next_state.certificate_size);
+  ASSERT_EQ(expected_length, actual_length);
+  EXPECT_EQ(
+      0, memcmp(GetX509PayloadPointer(
+                    dice::test::kExpectedX509P256Cert_HashOnlyInput),
+                GetX509PayloadPointer(next_state.certificate), actual_length));
 }
 
 TEST(DiceOpsTest, KnownAnswerDescriptorInput) {
@@ -122,8 +134,7 @@
       sizeof(next_state.certificate), next_state.certificate,
       &next_state.certificate_size, next_state.cdi_attest, next_state.cdi_seal);
   EXPECT_EQ(kDiceResultOk, result);
-  DumpState(CertificateType_X509, KeyType_P256_COMPRESSED, "descriptor_input",
-            next_state);
+  DumpState(CertificateType_X509, KeyType_P256, "descriptor_input", next_state);
   // Both CDI values and the certificate should be deterministic.
   EXPECT_EQ(
       0, memcmp(next_state.cdi_attest,
@@ -131,14 +142,20 @@
   EXPECT_EQ(
       0, memcmp(next_state.cdi_seal,
                 dice::test::kExpectedCdiSeal_DescriptorInput, DICE_CDI_SIZE));
-  ASSERT_EQ(sizeof(dice::test::kExpectedX509P256Cert_DescriptorInput),
-            next_state.certificate_size);
-  EXPECT_EQ(0, memcmp(dice::test::kExpectedX509P256Cert_DescriptorInput,
-                      next_state.certificate, next_state.certificate_size));
+  size_t expected_length = ComputeX509PayloadSize(
+      dice::test::kExpectedX509P256Cert_DescriptorInput,
+      sizeof(dice::test::kExpectedX509P256Cert_DescriptorInput));
+  size_t actual_length = ComputeX509PayloadSize(next_state.certificate,
+                                                next_state.certificate_size);
+  ASSERT_EQ(expected_length, actual_length);
+  EXPECT_EQ(
+      0, memcmp(GetX509PayloadPointer(
+                    dice::test::kExpectedX509P256Cert_DescriptorInput),
+                GetX509PayloadPointer(next_state.certificate), actual_length));
 }
 
 TEST(DiceOpsTest, NonZeroMode) {
-  constexpr size_t kModeOffsetInCert = 0x268;
+  constexpr size_t kModeOffsetInCert = 0x267;
   DiceStateForTest current_state = {};
   DiceStateForTest next_state = {};
   DiceInputValues input_values = {};
@@ -199,8 +216,7 @@
                      states[i + 1].cdi_attest, states[i + 1].cdi_seal));
     char suffix[40];
     pw::string::Format(suffix, "part_cert_chain_%zu", i);
-    DumpState(CertificateType_X509, KeyType_P256_COMPRESSED, suffix,
-              states[i + 1]);
+    DumpState(CertificateType_X509, KeyType_P256, suffix, states[i + 1]);
   }
   // Use the first derived CDI cert as the 'root' of partial chain.
   EXPECT_TRUE(dice::test::VerifyCertificateChain(
@@ -230,16 +246,14 @@
                      states[i + 1].cdi_attest, states[i + 1].cdi_seal));
     char suffix[40];
     pw::string::Format(suffix, "full_cert_chain_%zu", i);
-    DumpState(CertificateType_X509, KeyType_P256_COMPRESSED, suffix,
-              states[i + 1]);
+    DumpState(CertificateType_X509, KeyType_P256, suffix, states[i + 1]);
   }
   // Use a fake self-signed UDS cert as the 'root'.
   uint8_t root_certificate[dice::test::kTestCertSize];
   size_t root_certificate_size = 0;
   dice::test::CreateFakeUdsCertificate(
       NULL, states[0].cdi_attest, dice::test::CertificateType_X509,
-      dice::test::KeyType_P256_COMPRESSED, root_certificate,
-      &root_certificate_size);
+      dice::test::KeyType_P256, root_certificate, &root_certificate_size);
   EXPECT_TRUE(dice::test::VerifyCertificateChain(
       CertificateType_X509, root_certificate, root_certificate_size, &states[1],
       kNumLayers,
diff --git a/src/test_utils.cc b/src/test_utils.cc
index 0592fc5..a8e972c 100644
--- a/src/test_utils.cc
+++ b/src/test_utils.cc
@@ -707,6 +707,32 @@
 namespace dice {
 namespace test {
 
+static constexpr uint8_t kDerTag[] = {0x30, 0x82, 0x00, 0x00};
+
+const uint8_t* GetX509PayloadPointer(const uint8_t* certificate) {
+  if (certificate == NULL) {
+    return NULL;
+  }
+  return &certificate[sizeof(kDerTag)];
+}
+
+size_t ComputeX509PayloadSize(const uint8_t* certificate,
+                              size_t certificate_size) {
+  if (certificate == NULL || certificate_size < 8) {
+    return 0;
+  }
+  // X509 header for certificate usually looks similar to
+  // 30 82 ** ** 30 82 xy zw # bytes
+  // 00 01 02 03 04 05 06 07 # offsets
+  // where xyzw is the length of the certificate payload
+  size_t payload_size =
+      sizeof(kDerTag) + (certificate[6] << 8) | certificate[7];
+  if (payload_size > certificate_size) {
+    return 0;
+  }
+  return payload_size;
+}
+
 void DumpState(CertificateType cert_type, KeyType key_type, const char* suffix,
                const DiceStateForTest& state) {
   char filename[100];
diff --git a/third_party/mbedtls/BUILD.gn b/third_party/mbedtls/BUILD.gn
index 6e5888a..0ca0cac 100644
--- a/third_party/mbedtls/BUILD.gn
+++ b/third_party/mbedtls/BUILD.gn
@@ -44,6 +44,7 @@
     "src/library/pk_wrap.c",
     "src/library/pkwrite.c",
     "src/library/platform_util.c",
+    "src/library/sha256.c",
     "src/library/sha512.c",
     "src/library/x509_create.c",
     "src/library/x509write_crt.c",
diff --git a/third_party/mbedtls/custom_config.h b/third_party/mbedtls/custom_config.h
index 765eef9..bef1ff5 100644
--- a/third_party/mbedtls/custom_config.h
+++ b/third_party/mbedtls/custom_config.h
@@ -34,6 +34,7 @@
 #define MBEDTLS_PK_C
 #define MBEDTLS_PK_PARSE_C
 #define MBEDTLS_PK_WRITE_C
+#define MBEDTLS_SHA256_C
 #define MBEDTLS_SHA512_C
 #define MBEDTLS_X509_CREATE_C
 #define MBEDTLS_X509_CRT_WRITE_C
