diff options
author | tb <> | 2024-10-26 10:15:19 +0000 |
---|---|---|
committer | tb <> | 2024-10-26 10:15:19 +0000 |
commit | e2a62e818bf165355adbef5a3d01db7e7c51499e (patch) | |
tree | 5d36dfbaefdb2c00198e717b443c590b79828e87 /src | |
parent | c4eb8d5a79a0ea768ecf9ab0dc14b49504631d35 (diff) | |
download | openbsd-e2a62e818bf165355adbef5a3d01db7e7c51499e.tar.gz openbsd-e2a62e818bf165355adbef5a3d01db7e7c51499e.tar.bz2 openbsd-e2a62e818bf165355adbef5a3d01db7e7c51499e.zip |
Add regress coverage for ec_print.c
Of course the four stunning beauties in there aren't printing anything.
the hex family converts an elliptic curve point's X9.62 encoding into a
hex string (which kind of makes sense, you can print that if you want).
Much more astounding is EC_POINT_point2bn() where the X9.62 octet string
is interpreted as a BIGNUM. Yes, the bignum's hex digits are the point
conversion form followed by the affine coordinate(s) of the elliptic
curve point, and yes you can choose between compressed, uncompressed,
and hybrid encoding, why do you ask? This doesn't really make any sense
whatsoever but of course you can also print that if you really want to.
Of course the beloved platinum members of the "gotta try every terrible
OpenSSL interface" club had to use and expose this.
Diffstat (limited to 'src')
-rw-r--r-- | src/regress/lib/libcrypto/ec/ec_asn1_test.c | 891 |
1 files changed, 889 insertions, 2 deletions
diff --git a/src/regress/lib/libcrypto/ec/ec_asn1_test.c b/src/regress/lib/libcrypto/ec/ec_asn1_test.c index c899c418fd..76dc415a93 100644 --- a/src/regress/lib/libcrypto/ec/ec_asn1_test.c +++ b/src/regress/lib/libcrypto/ec/ec_asn1_test.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_asn1_test.c,v 1.15 2024/10/25 07:31:02 tb Exp $ */ | 1 | /* $OpenBSD: ec_asn1_test.c,v 1.16 2024/10/26 10:15:19 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2017, 2021 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2017, 2021 Joel Sing <jsing@openbsd.org> |
4 | * Copyright (c) 2024 Theo Buehler <tb@openbsd.org> | 4 | * Copyright (c) 2024 Theo Buehler <tb@openbsd.org> |
@@ -930,6 +930,9 @@ static const struct ec_private_key { | |||
930 | const char *name; | 930 | const char *name; |
931 | size_t der_len; | 931 | size_t der_len; |
932 | uint8_t der[256]; | 932 | uint8_t der[256]; |
933 | const char *hex; | ||
934 | int oct_len; | ||
935 | uint8_t oct[256]; | ||
933 | } ec_private_keys[] = { | 936 | } ec_private_keys[] = { |
934 | { | 937 | { |
935 | .name = "secp112r1", | 938 | .name = "secp112r1", |
@@ -944,6 +947,17 @@ static const struct ec_private_key { | |||
944 | 0x7a, 0x3d, 0x49, 0x3a, 0xaa, 0xeb, 0x97, 0xec, | 947 | 0x7a, 0x3d, 0x49, 0x3a, 0xaa, 0xeb, 0x97, 0xec, |
945 | 0x19, 0xa3, 0x92, 0x3d, 0xe7, 0xe6, 0x6e, 0x47, | 948 | 0x19, 0xa3, 0x92, 0x3d, 0xe7, 0xe6, 0x6e, 0x47, |
946 | }, | 949 | }, |
950 | .hex = "040FA96ACD146587" | ||
951 | "E42C58861B7A3D49" | ||
952 | "3AAAEB97EC19A392" | ||
953 | "3DE7E66E47", | ||
954 | .oct_len = 29, | ||
955 | .oct = { | ||
956 | 0x04, 0x0f, 0xa9, 0x6a, 0xcd, 0x14, 0x65, 0x87, | ||
957 | 0xe4, 0x2c, 0x58, 0x86, 0x1b, 0x7a, 0x3d, 0x49, | ||
958 | 0x3a, 0xaa, 0xeb, 0x97, 0xec, 0x19, 0xa3, 0x92, | ||
959 | 0x3d, 0xe7, 0xe6, 0x6e, 0x47, | ||
960 | }, | ||
947 | }, | 961 | }, |
948 | { | 962 | { |
949 | .name = "secp112r2", | 963 | .name = "secp112r2", |
@@ -958,6 +972,17 @@ static const struct ec_private_key { | |||
958 | 0xfd, 0x57, 0x7a, 0x8f, 0x38, 0x8b, 0x04, 0xd9, | 972 | 0xfd, 0x57, 0x7a, 0x8f, 0x38, 0x8b, 0x04, 0xd9, |
959 | 0xae, 0x3b, 0xcf, 0x10, 0x30, 0x29, 0xdb, 0x59, | 973 | 0xae, 0x3b, 0xcf, 0x10, 0x30, 0x29, 0xdb, 0x59, |
960 | }, | 974 | }, |
975 | .hex = "04642D25533F43F2" | ||
976 | "69B2558D7CFD577A" | ||
977 | "8F388B04D9AE3BCF" | ||
978 | "103029DB59", | ||
979 | .oct_len = 29, | ||
980 | .oct = { | ||
981 | 0x04, 0x64, 0x2d, 0x25, 0x53, 0x3f, 0x43, 0xf2, | ||
982 | 0x69, 0xb2, 0x55, 0x8d, 0x7c, 0xfd, 0x57, 0x7a, | ||
983 | 0x8f, 0x38, 0x8b, 0x04, 0xd9, 0xae, 0x3b, 0xcf, | ||
984 | 0x10, 0x30, 0x29, 0xdb, 0x59, | ||
985 | }, | ||
961 | }, | 986 | }, |
962 | { | 987 | { |
963 | .name = "secp128r1", | 988 | .name = "secp128r1", |
@@ -973,6 +998,19 @@ static const struct ec_private_key { | |||
973 | 0x31, 0xaf, 0xd3, 0x85, 0x5e, 0x4d, 0xc0, 0xee, | 998 | 0x31, 0xaf, 0xd3, 0x85, 0x5e, 0x4d, 0xc0, 0xee, |
974 | 0x06, 0x4c, 0x26, 0x6d, 0x5e, 0x6d, | 999 | 0x06, 0x4c, 0x26, 0x6d, 0x5e, 0x6d, |
975 | }, | 1000 | }, |
1001 | .hex = "043F88451052C2F6" | ||
1002 | "56881B6EEE302164" | ||
1003 | "9874DE31AFD3855E" | ||
1004 | "4DC0EE064C266D5E" | ||
1005 | "6D", | ||
1006 | .oct_len = 33, | ||
1007 | .oct = { | ||
1008 | 0x04, 0x3f, 0x88, 0x45, 0x10, 0x52, 0xc2, 0xf6, | ||
1009 | 0x56, 0x88, 0x1b, 0x6e, 0xee, 0x30, 0x21, 0x64, | ||
1010 | 0x98, 0x74, 0xde, 0x31, 0xaf, 0xd3, 0x85, 0x5e, | ||
1011 | 0x4d, 0xc0, 0xee, 0x06, 0x4c, 0x26, 0x6d, 0x5e, | ||
1012 | 0x6d, | ||
1013 | }, | ||
976 | }, | 1014 | }, |
977 | { | 1015 | { |
978 | .name = "secp128r2", | 1016 | .name = "secp128r2", |
@@ -988,6 +1026,19 @@ static const struct ec_private_key { | |||
988 | 0x0d, 0x54, 0x61, 0xa0, 0xf3, 0x32, 0xdc, 0xe1, | 1026 | 0x0d, 0x54, 0x61, 0xa0, 0xf3, 0x32, 0xdc, 0xe1, |
989 | 0x19, 0xbb, 0x6e, 0xcf, 0x3c, 0xe2, | 1027 | 0x19, 0xbb, 0x6e, 0xcf, 0x3c, 0xe2, |
990 | }, | 1028 | }, |
1029 | .hex = "04D5F51C2F02C039" | ||
1030 | "EB6C7B202BCF67E0" | ||
1031 | "8A2B830D5461A0F3" | ||
1032 | "32DCE119BB6ECF3C" | ||
1033 | "E2", | ||
1034 | .oct_len = 33, | ||
1035 | .oct = { | ||
1036 | 0x04, 0xd5, 0xf5, 0x1c, 0x2f, 0x02, 0xc0, 0x39, | ||
1037 | 0xeb, 0x6c, 0x7b, 0x20, 0x2b, 0xcf, 0x67, 0xe0, | ||
1038 | 0x8a, 0x2b, 0x83, 0x0d, 0x54, 0x61, 0xa0, 0xf3, | ||
1039 | 0x32, 0xdc, 0xe1, 0x19, 0xbb, 0x6e, 0xcf, 0x3c, | ||
1040 | 0xe2, | ||
1041 | }, | ||
991 | }, | 1042 | }, |
992 | #if CORRECT_PRIV_KEY_PADDING | 1043 | #if CORRECT_PRIV_KEY_PADDING |
993 | { | 1044 | { |
@@ -1006,6 +1057,21 @@ static const struct ec_private_key { | |||
1006 | 0x63, 0x8d, 0x7f, 0x17, 0x3e, 0x28, 0x49, 0xcc, | 1057 | 0x63, 0x8d, 0x7f, 0x17, 0x3e, 0x28, 0x49, 0xcc, |
1007 | 0xcd, 0x6e, 0xb0, | 1058 | 0xcd, 0x6e, 0xb0, |
1008 | }, | 1059 | }, |
1060 | .hex = "04FE46EFA6DE9520" | ||
1061 | "342E7C65E931EF5B" | ||
1062 | "D6B2800A03BAE8C6" | ||
1063 | "9C89FF3D6BA5638D" | ||
1064 | "7F173E2849CCCD6E" | ||
1065 | "B0", | ||
1066 | .oct_len = 41, | ||
1067 | .oct = { | ||
1068 | 0x04, 0xfe, 0x46, 0xef, 0xa6, 0xde, 0x95, 0x20, | ||
1069 | 0x34, 0x2e, 0x7c, 0x65, 0xe9, 0x31, 0xef, 0x5b, | ||
1070 | 0xd6, 0xb2, 0x80, 0x0a, 0x03, 0xba, 0xe8, 0xc6, | ||
1071 | 0x9c, 0x89, 0xff, 0x3d, 0x6b, 0xa5, 0x63, 0x8d, | ||
1072 | 0x7f, 0x17, 0x3e, 0x28, 0x49, 0xcc, 0xcd, 0x6e, | ||
1073 | 0xb0, | ||
1074 | }, | ||
1009 | }, | 1075 | }, |
1010 | { | 1076 | { |
1011 | .name = "secp160r1", | 1077 | .name = "secp160r1", |
@@ -1023,6 +1089,21 @@ static const struct ec_private_key { | |||
1023 | 0xcb, 0xae, 0x9e, 0xe0, 0xa2, 0x7e, 0x26, 0x6b, | 1089 | 0xcb, 0xae, 0x9e, 0xe0, 0xa2, 0x7e, 0x26, 0x6b, |
1024 | 0xfe, 0xc4, 0xa7, | 1090 | 0xfe, 0xc4, 0xa7, |
1025 | }, | 1091 | }, |
1092 | .hex = "04DAF0DA8CAD13E1" | ||
1093 | "123B53EF9498A357" | ||
1094 | "85BB20C0D8B661AD" | ||
1095 | "4479D4BE3E6CCBAE" | ||
1096 | "9EE0A27E266BFEC4" | ||
1097 | "A7", | ||
1098 | .oct_len = 41, | ||
1099 | .oct = { | ||
1100 | 0x04, 0xda, 0xf0, 0xda, 0x8c, 0xad, 0x13, 0xe1, | ||
1101 | 0x12, 0x3b, 0x53, 0xef, 0x94, 0x98, 0xa3, 0x57, | ||
1102 | 0x85, 0xbb, 0x20, 0xc0, 0xd8, 0xb6, 0x61, 0xad, | ||
1103 | 0x44, 0x79, 0xd4, 0xbe, 0x3e, 0x6c, 0xcb, 0xae, | ||
1104 | 0x9e, 0xe0, 0xa2, 0x7e, 0x26, 0x6b, 0xfe, 0xc4, | ||
1105 | 0xa7, | ||
1106 | }, | ||
1026 | }, | 1107 | }, |
1027 | { | 1108 | { |
1028 | .name = "secp160r2", | 1109 | .name = "secp160r2", |
@@ -1040,6 +1121,21 @@ static const struct ec_private_key { | |||
1040 | 0x79, 0x19, 0xdc, 0xb1, 0x03, 0xdc, 0xcb, 0x73, | 1121 | 0x79, 0x19, 0xdc, 0xb1, 0x03, 0xdc, 0xcb, 0x73, |
1041 | 0x2b, 0x02, 0x63, | 1122 | 0x2b, 0x02, 0x63, |
1042 | }, | 1123 | }, |
1124 | .hex = "0436CE2ABBEC29DF" | ||
1125 | "DA52218B8B4937E3" | ||
1126 | "D67FAB662081C730" | ||
1127 | "EB00F0AD667C7919" | ||
1128 | "DCB103DCCB732B02" | ||
1129 | "63", | ||
1130 | .oct_len = 41, | ||
1131 | .oct = { | ||
1132 | 0x04, 0x36, 0xce, 0x2a, 0xbb, 0xec, 0x29, 0xdf, | ||
1133 | 0xda, 0x52, 0x21, 0x8b, 0x8b, 0x49, 0x37, 0xe3, | ||
1134 | 0xd6, 0x7f, 0xab, 0x66, 0x20, 0x81, 0xc7, 0x30, | ||
1135 | 0xeb, 0x00, 0xf0, 0xad, 0x66, 0x7c, 0x79, 0x19, | ||
1136 | 0xdc, 0xb1, 0x03, 0xdc, 0xcb, 0x73, 0x2b, 0x02, | ||
1137 | 0x63, | ||
1138 | }, | ||
1043 | }, | 1139 | }, |
1044 | #endif | 1140 | #endif |
1045 | { | 1141 | { |
@@ -1059,6 +1155,23 @@ static const struct ec_private_key { | |||
1059 | 0x95, 0xed, 0x6f, 0x61, 0x83, 0xc3, 0x06, 0x27, | 1155 | 0x95, 0xed, 0x6f, 0x61, 0x83, 0xc3, 0x06, 0x27, |
1060 | 0x0c, 0x73, 0x6e, 0x73, 0x7c, 0xdc, | 1156 | 0x0c, 0x73, 0x6e, 0x73, 0x7c, 0xdc, |
1061 | }, | 1157 | }, |
1158 | .hex = "04A87C1E15F01C8A" | ||
1159 | "8D7E14DB07D1ACAF" | ||
1160 | "2577E539BD595AED" | ||
1161 | "6414EFD3F233AB7B" | ||
1162 | "D59E2A95ED6F6183" | ||
1163 | "C306270C736E737C" | ||
1164 | "DC", | ||
1165 | .oct_len = 49, | ||
1166 | .oct = { | ||
1167 | 0x04, 0xa8, 0x7c, 0x1e, 0x15, 0xf0, 0x1c, 0x8a, | ||
1168 | 0x8d, 0x7e, 0x14, 0xdb, 0x07, 0xd1, 0xac, 0xaf, | ||
1169 | 0x25, 0x77, 0xe5, 0x39, 0xbd, 0x59, 0x5a, 0xed, | ||
1170 | 0x64, 0x14, 0xef, 0xd3, 0xf2, 0x33, 0xab, 0x7b, | ||
1171 | 0xd5, 0x9e, 0x2a, 0x95, 0xed, 0x6f, 0x61, 0x83, | ||
1172 | 0xc3, 0x06, 0x27, 0x0c, 0x73, 0x6e, 0x73, 0x7c, | ||
1173 | 0xdc, | ||
1174 | }, | ||
1062 | }, | 1175 | }, |
1063 | #if CORRECT_PRIV_KEY_PADDING | 1176 | #if CORRECT_PRIV_KEY_PADDING |
1064 | { | 1177 | { |
@@ -1080,6 +1193,25 @@ static const struct ec_private_key { | |||
1080 | 0x34, 0xef, 0xfb, 0x04, 0xa1, 0x28, 0x7d, 0x51, | 1193 | 0x34, 0xef, 0xfb, 0x04, 0xa1, 0x28, 0x7d, 0x51, |
1081 | 0xbe, 0xe7, 0x0b, | 1194 | 0xbe, 0xe7, 0x0b, |
1082 | }, | 1195 | }, |
1196 | .hex = "0451C469DF2D497B" | ||
1197 | "056C125F9A83517D" | ||
1198 | "F34A6CE13AEA4435" | ||
1199 | "3E7AA440DFC49018" | ||
1200 | "FC2F5D4B1237874D" | ||
1201 | "2AF8BD29FB1334EF" | ||
1202 | "FB04A1287D51BEE7" | ||
1203 | "0B", | ||
1204 | .oct_len = 57, | ||
1205 | .oct = { | ||
1206 | 0x04, 0x51, 0xc4, 0x69, 0xdf, 0x2d, 0x49, 0x7b, | ||
1207 | 0x05, 0x6c, 0x12, 0x5f, 0x9a, 0x83, 0x51, 0x7d, | ||
1208 | 0xf3, 0x4a, 0x6c, 0xe1, 0x3a, 0xea, 0x44, 0x35, | ||
1209 | 0x3e, 0x7a, 0xa4, 0x40, 0xdf, 0xc4, 0x90, 0x18, | ||
1210 | 0xfc, 0x2f, 0x5d, 0x4b, 0x12, 0x37, 0x87, 0x4d, | ||
1211 | 0x2a, 0xf8, 0xbd, 0x29, 0xfb, 0x13, 0x34, 0xef, | ||
1212 | 0xfb, 0x04, 0xa1, 0x28, 0x7d, 0x51, 0xbe, 0xe7, | ||
1213 | 0x0b, | ||
1214 | }, | ||
1083 | }, | 1215 | }, |
1084 | #endif | 1216 | #endif |
1085 | { | 1217 | { |
@@ -1101,6 +1233,25 @@ static const struct ec_private_key { | |||
1101 | 0xf4, 0x2d, 0x34, 0x25, 0xee, 0x4c, 0xec, 0xfb, | 1233 | 0xf4, 0x2d, 0x34, 0x25, 0xee, 0x4c, 0xec, 0xfb, |
1102 | 0x4d, 0x0b, | 1234 | 0x4d, 0x0b, |
1103 | }, | 1235 | }, |
1236 | .hex = "049484B0CD65EFC5" | ||
1237 | "5DC9E49171CBC7F1" | ||
1238 | "8E4439C2D307F06C" | ||
1239 | "B6EF77C084302CD2" | ||
1240 | "F2F0B5B66F0AF443" | ||
1241 | "AB5E5DD897BFABF4" | ||
1242 | "2D3425EE4CECFB4D" | ||
1243 | "0B", | ||
1244 | .oct_len = 57, | ||
1245 | .oct = { | ||
1246 | 0x04, 0x94, 0x84, 0xb0, 0xcd, 0x65, 0xef, 0xc5, | ||
1247 | 0x5d, 0xc9, 0xe4, 0x91, 0x71, 0xcb, 0xc7, 0xf1, | ||
1248 | 0x8e, 0x44, 0x39, 0xc2, 0xd3, 0x07, 0xf0, 0x6c, | ||
1249 | 0xb6, 0xef, 0x77, 0xc0, 0x84, 0x30, 0x2c, 0xd2, | ||
1250 | 0xf2, 0xf0, 0xb5, 0xb6, 0x6f, 0x0a, 0xf4, 0x43, | ||
1251 | 0xab, 0x5e, 0x5d, 0xd8, 0x97, 0xbf, 0xab, 0xf4, | ||
1252 | 0x2d, 0x34, 0x25, 0xee, 0x4c, 0xec, 0xfb, 0x4d, | ||
1253 | 0x0b, | ||
1254 | }, | ||
1104 | }, | 1255 | }, |
1105 | { | 1256 | { |
1106 | .name = "secp256k1", | 1257 | .name = "secp256k1", |
@@ -1122,6 +1273,27 @@ static const struct ec_private_key { | |||
1122 | 0x5e, 0xb5, 0x37, 0x44, 0x40, 0x1c, 0x34, 0x6c, | 1273 | 0x5e, 0xb5, 0x37, 0x44, 0x40, 0x1c, 0x34, 0x6c, |
1123 | 0xf2, 0xdb, 0x44, 0x71, 0x26, 0xeb, | 1274 | 0xf2, 0xdb, 0x44, 0x71, 0x26, 0xeb, |
1124 | }, | 1275 | }, |
1276 | .hex = "049FD2BECCF800E8" | ||
1277 | "D0407311B9347668" | ||
1278 | "B26B88EAA66437E7" | ||
1279 | "06DF9F20B8C37F9F" | ||
1280 | "8FBC8065E973CB1D" | ||
1281 | "A1FA342366B94789" | ||
1282 | "E908925EB5374440" | ||
1283 | "1C346CF2DB447126" | ||
1284 | "EB", | ||
1285 | .oct_len = 65, | ||
1286 | .oct = { | ||
1287 | 0x04, 0x9f, 0xd2, 0xbe, 0xcc, 0xf8, 0x00, 0xe8, | ||
1288 | 0xd0, 0x40, 0x73, 0x11, 0xb9, 0x34, 0x76, 0x68, | ||
1289 | 0xb2, 0x6b, 0x88, 0xea, 0xa6, 0x64, 0x37, 0xe7, | ||
1290 | 0x06, 0xdf, 0x9f, 0x20, 0xb8, 0xc3, 0x7f, 0x9f, | ||
1291 | 0x8f, 0xbc, 0x80, 0x65, 0xe9, 0x73, 0xcb, 0x1d, | ||
1292 | 0xa1, 0xfa, 0x34, 0x23, 0x66, 0xb9, 0x47, 0x89, | ||
1293 | 0xe9, 0x08, 0x92, 0x5e, 0xb5, 0x37, 0x44, 0x40, | ||
1294 | 0x1c, 0x34, 0x6c, 0xf2, 0xdb, 0x44, 0x71, 0x26, | ||
1295 | 0xeb, | ||
1296 | }, | ||
1125 | }, | 1297 | }, |
1126 | { | 1298 | { |
1127 | .name = "secp384r1", | 1299 | .name = "secp384r1", |
@@ -1149,6 +1321,35 @@ static const struct ec_private_key { | |||
1149 | 0xe5, 0xd2, 0xa2, 0x79, 0x47, 0xb0, 0x6e, 0x5f, | 1321 | 0xe5, 0xd2, 0xa2, 0x79, 0x47, 0xb0, 0x6e, 0x5f, |
1150 | 0x85, 0x39, 0x94, 0x57, 0xbf, 0x54, 0x76, | 1322 | 0x85, 0x39, 0x94, 0x57, 0xbf, 0x54, 0x76, |
1151 | }, | 1323 | }, |
1324 | .hex = "04CE9A3B4B01E6C4" | ||
1325 | "5AFA9703C1CE18D5" | ||
1326 | "6C47274D6C9ABD47" | ||
1327 | "AB200F9983198BCB" | ||
1328 | "18D7A3B2E73BD0F1" | ||
1329 | "F329B26D38D6CC8E" | ||
1330 | "5EF0B2B9BD852CAB" | ||
1331 | "4BB69D98A1CEF18A" | ||
1332 | "DB92757DF7824C0A" | ||
1333 | "C73B526E97C623C9" | ||
1334 | "6F3FE5D2A27947B0" | ||
1335 | "6E5F85399457BF54" | ||
1336 | "76", | ||
1337 | .oct_len = 97, | ||
1338 | .oct = { | ||
1339 | 0x04, 0xce, 0x9a, 0x3b, 0x4b, 0x01, 0xe6, 0xc4, | ||
1340 | 0x5a, 0xfa, 0x97, 0x03, 0xc1, 0xce, 0x18, 0xd5, | ||
1341 | 0x6c, 0x47, 0x27, 0x4d, 0x6c, 0x9a, 0xbd, 0x47, | ||
1342 | 0xab, 0x20, 0x0f, 0x99, 0x83, 0x19, 0x8b, 0xcb, | ||
1343 | 0x18, 0xd7, 0xa3, 0xb2, 0xe7, 0x3b, 0xd0, 0xf1, | ||
1344 | 0xf3, 0x29, 0xb2, 0x6d, 0x38, 0xd6, 0xcc, 0x8e, | ||
1345 | 0x5e, 0xf0, 0xb2, 0xb9, 0xbd, 0x85, 0x2c, 0xab, | ||
1346 | 0x4b, 0xb6, 0x9d, 0x98, 0xa1, 0xce, 0xf1, 0x8a, | ||
1347 | 0xdb, 0x92, 0x75, 0x7d, 0xf7, 0x82, 0x4c, 0x0a, | ||
1348 | 0xc7, 0x3b, 0x52, 0x6e, 0x97, 0xc6, 0x23, 0xc9, | ||
1349 | 0x6f, 0x3f, 0xe5, 0xd2, 0xa2, 0x79, 0x47, 0xb0, | ||
1350 | 0x6e, 0x5f, 0x85, 0x39, 0x94, 0x57, 0xbf, 0x54, | ||
1351 | 0x76, | ||
1352 | }, | ||
1152 | }, | 1353 | }, |
1153 | { | 1354 | { |
1154 | .name = "secp521r1", | 1355 | .name = "secp521r1", |
@@ -1183,6 +1384,43 @@ static const struct ec_private_key { | |||
1183 | 0x8f, 0x89, 0xb6, 0x39, 0x2c, 0x2c, 0x23, 0x0a, | 1384 | 0x8f, 0x89, 0xb6, 0x39, 0x2c, 0x2c, 0x23, 0x0a, |
1184 | 0xb6, 0x95, 0x9c, 0x6b, 0xce, 0xc4, 0x8e, | 1385 | 0xb6, 0x95, 0x9c, 0x6b, 0xce, 0xc4, 0x8e, |
1185 | }, | 1386 | }, |
1387 | .hex = "0401D2C37841B186" | ||
1388 | "24CA6D805C97CF96" | ||
1389 | "F087B425BE379AF3" | ||
1390 | "E54A70D1E6369E69" | ||
1391 | "CCFB83D6A1626DA8" | ||
1392 | "E6CAE70E24E626CD" | ||
1393 | "C00D2A01816AD694" | ||
1394 | "F290CD2668282C57" | ||
1395 | "D3F03700BC5EFAF9" | ||
1396 | "36CD0FEB4F82176A" | ||
1397 | "A073D248FCFBF054" | ||
1398 | "C3232976C7219809" | ||
1399 | "298BCE6E6BE39794" | ||
1400 | "B230AAF6435C15D7" | ||
1401 | "B8DB0692A8368F89" | ||
1402 | "B6392C2C230AB695" | ||
1403 | "9C6BCEC48E", | ||
1404 | .oct_len = 133, | ||
1405 | .oct = { | ||
1406 | 0x04, 0x01, 0xd2, 0xc3, 0x78, 0x41, 0xb1, 0x86, | ||
1407 | 0x24, 0xca, 0x6d, 0x80, 0x5c, 0x97, 0xcf, 0x96, | ||
1408 | 0xf0, 0x87, 0xb4, 0x25, 0xbe, 0x37, 0x9a, 0xf3, | ||
1409 | 0xe5, 0x4a, 0x70, 0xd1, 0xe6, 0x36, 0x9e, 0x69, | ||
1410 | 0xcc, 0xfb, 0x83, 0xd6, 0xa1, 0x62, 0x6d, 0xa8, | ||
1411 | 0xe6, 0xca, 0xe7, 0x0e, 0x24, 0xe6, 0x26, 0xcd, | ||
1412 | 0xc0, 0x0d, 0x2a, 0x01, 0x81, 0x6a, 0xd6, 0x94, | ||
1413 | 0xf2, 0x90, 0xcd, 0x26, 0x68, 0x28, 0x2c, 0x57, | ||
1414 | 0xd3, 0xf0, 0x37, 0x00, 0xbc, 0x5e, 0xfa, 0xf9, | ||
1415 | 0x36, 0xcd, 0x0f, 0xeb, 0x4f, 0x82, 0x17, 0x6a, | ||
1416 | 0xa0, 0x73, 0xd2, 0x48, 0xfc, 0xfb, 0xf0, 0x54, | ||
1417 | 0xc3, 0x23, 0x29, 0x76, 0xc7, 0x21, 0x98, 0x09, | ||
1418 | 0x29, 0x8b, 0xce, 0x6e, 0x6b, 0xe3, 0x97, 0x94, | ||
1419 | 0xb2, 0x30, 0xaa, 0xf6, 0x43, 0x5c, 0x15, 0xd7, | ||
1420 | 0xb8, 0xdb, 0x06, 0x92, 0xa8, 0x36, 0x8f, 0x89, | ||
1421 | 0xb6, 0x39, 0x2c, 0x2c, 0x23, 0x0a, 0xb6, 0x95, | ||
1422 | 0x9c, 0x6b, 0xce, 0xc4, 0x8e, | ||
1423 | }, | ||
1186 | }, | 1424 | }, |
1187 | { | 1425 | { |
1188 | .name = "prime192v1", | 1426 | .name = "prime192v1", |
@@ -1202,6 +1440,23 @@ static const struct ec_private_key { | |||
1202 | 0x6a, 0xba, 0x4e, 0x52, 0xeb, 0x29, 0x81, 0x87, | 1440 | 0x6a, 0xba, 0x4e, 0x52, 0xeb, 0x29, 0x81, 0x87, |
1203 | 0x92, | 1441 | 0x92, |
1204 | }, | 1442 | }, |
1443 | .hex = "046E8A842C8A39EE" | ||
1444 | "946BB28A178E965E" | ||
1445 | "A20F2EB073435646" | ||
1446 | "F102E8A681419374" | ||
1447 | "FEE64CF6B95A3918" | ||
1448 | "6ABA4E52EB298187" | ||
1449 | "92", | ||
1450 | .oct_len = 49, | ||
1451 | .oct = { | ||
1452 | 0x04, 0x6e, 0x8a, 0x84, 0x2c, 0x8a, 0x39, 0xee, | ||
1453 | 0x94, 0x6b, 0xb2, 0x8a, 0x17, 0x8e, 0x96, 0x5e, | ||
1454 | 0xa2, 0x0f, 0x2e, 0xb0, 0x73, 0x43, 0x56, 0x46, | ||
1455 | 0xf1, 0x02, 0xe8, 0xa6, 0x81, 0x41, 0x93, 0x74, | ||
1456 | 0xfe, 0xe6, 0x4c, 0xf6, 0xb9, 0x5a, 0x39, 0x18, | ||
1457 | 0x6a, 0xba, 0x4e, 0x52, 0xeb, 0x29, 0x81, 0x87, | ||
1458 | 0x92, | ||
1459 | }, | ||
1205 | }, | 1460 | }, |
1206 | { | 1461 | { |
1207 | .name = "prime192v2", | 1462 | .name = "prime192v2", |
@@ -1221,6 +1476,23 @@ static const struct ec_private_key { | |||
1221 | 0x4b, 0xab, 0x5b, 0x66, 0xa7, 0x98, 0xa6, 0x9a, | 1476 | 0x4b, 0xab, 0x5b, 0x66, 0xa7, 0x98, 0xa6, 0x9a, |
1222 | 0xe6, | 1477 | 0xe6, |
1223 | }, | 1478 | }, |
1479 | .hex = "04625DFB0E5895D1" | ||
1480 | "E713669A0C5CEF2F" | ||
1481 | "2F33BB2BA0096E04" | ||
1482 | "3E013C605EC3BAFC" | ||
1483 | "1CB94D0DB5A99E56" | ||
1484 | "4BAB5B66A798A69A" | ||
1485 | "E6", | ||
1486 | .oct_len = 49, | ||
1487 | .oct = { | ||
1488 | 0x04, 0x62, 0x5d, 0xfb, 0x0e, 0x58, 0x95, 0xd1, | ||
1489 | 0xe7, 0x13, 0x66, 0x9a, 0x0c, 0x5c, 0xef, 0x2f, | ||
1490 | 0x2f, 0x33, 0xbb, 0x2b, 0xa0, 0x09, 0x6e, 0x04, | ||
1491 | 0x3e, 0x01, 0x3c, 0x60, 0x5e, 0xc3, 0xba, 0xfc, | ||
1492 | 0x1c, 0xb9, 0x4d, 0x0d, 0xb5, 0xa9, 0x9e, 0x56, | ||
1493 | 0x4b, 0xab, 0x5b, 0x66, 0xa7, 0x98, 0xa6, 0x9a, | ||
1494 | 0xe6, | ||
1495 | }, | ||
1224 | }, | 1496 | }, |
1225 | { | 1497 | { |
1226 | .name = "prime192v3", | 1498 | .name = "prime192v3", |
@@ -1240,6 +1512,23 @@ static const struct ec_private_key { | |||
1240 | 0xc8, 0xd8, 0x3a, 0xc5, 0x7d, 0xfb, 0x9c, 0x78, | 1512 | 0xc8, 0xd8, 0x3a, 0xc5, 0x7d, 0xfb, 0x9c, 0x78, |
1241 | 0xd3, | 1513 | 0xd3, |
1242 | }, | 1514 | }, |
1515 | .hex = "0451389F964E130C" | ||
1516 | "E293EEC64410FDFF" | ||
1517 | "AED4080F3A7871DC" | ||
1518 | "FE6D460EE4E699D1" | ||
1519 | "258CB8C0E97C7AD3" | ||
1520 | "C8D83AC57DFB9C78" | ||
1521 | "D3", | ||
1522 | .oct_len = 49, | ||
1523 | .oct = { | ||
1524 | 0x04, 0x51, 0x38, 0x9f, 0x96, 0x4e, 0x13, 0x0c, | ||
1525 | 0xe2, 0x93, 0xee, 0xc6, 0x44, 0x10, 0xfd, 0xff, | ||
1526 | 0xae, 0xd4, 0x08, 0x0f, 0x3a, 0x78, 0x71, 0xdc, | ||
1527 | 0xfe, 0x6d, 0x46, 0x0e, 0xe4, 0xe6, 0x99, 0xd1, | ||
1528 | 0x25, 0x8c, 0xb8, 0xc0, 0xe9, 0x7c, 0x7a, 0xd3, | ||
1529 | 0xc8, 0xd8, 0x3a, 0xc5, 0x7d, 0xfb, 0x9c, 0x78, | ||
1530 | 0xd3, | ||
1531 | }, | ||
1243 | }, | 1532 | }, |
1244 | { | 1533 | { |
1245 | .name = "prime239v1", | 1534 | .name = "prime239v1", |
@@ -1261,6 +1550,25 @@ static const struct ec_private_key { | |||
1261 | 0xe3, 0x04, 0xef, 0x5d, 0x65, 0x75, 0x98, 0x7f, | 1550 | 0xe3, 0x04, 0xef, 0x5d, 0x65, 0x75, 0x98, 0x7f, |
1262 | 0x2d, 0xd0, 0x68, | 1551 | 0x2d, 0xd0, 0x68, |
1263 | }, | 1552 | }, |
1553 | .hex = "0433C6E58AC18B7C" | ||
1554 | "9619C9E1547F819E" | ||
1555 | "5962ECC01EE553D5" | ||
1556 | "AE6BD3E00907C527" | ||
1557 | "81A68D398EFE01C2" | ||
1558 | "1DDADE7BDC762717" | ||
1559 | "F96FE304EF5D6575" | ||
1560 | "987F2DD068", | ||
1561 | .oct_len = 61, | ||
1562 | .oct = { | ||
1563 | 0x04, 0x33, 0xc6, 0xe5, 0x8a, 0xc1, 0x8b, 0x7c, | ||
1564 | 0x96, 0x19, 0xc9, 0xe1, 0x54, 0x7f, 0x81, 0x9e, | ||
1565 | 0x59, 0x62, 0xec, 0xc0, 0x1e, 0xe5, 0x53, 0xd5, | ||
1566 | 0xae, 0x6b, 0xd3, 0xe0, 0x09, 0x07, 0xc5, 0x27, | ||
1567 | 0x81, 0xa6, 0x8d, 0x39, 0x8e, 0xfe, 0x01, 0xc2, | ||
1568 | 0x1d, 0xda, 0xde, 0x7b, 0xdc, 0x76, 0x27, 0x17, | ||
1569 | 0xf9, 0x6f, 0xe3, 0x04, 0xef, 0x5d, 0x65, 0x75, | ||
1570 | 0x98, 0x7f, 0x2d, 0xd0, 0x68, | ||
1571 | }, | ||
1264 | }, | 1572 | }, |
1265 | { | 1573 | { |
1266 | .name = "prime239v2", | 1574 | .name = "prime239v2", |
@@ -1282,6 +1590,25 @@ static const struct ec_private_key { | |||
1282 | 0xe0, 0xcc, 0xdd, 0x45, 0xd8, 0xa6, 0x29, 0x2f, | 1590 | 0xe0, 0xcc, 0xdd, 0x45, 0xd8, 0xa6, 0x29, 0x2f, |
1283 | 0xad, 0x6b, 0xf9, | 1591 | 0xad, 0x6b, 0xf9, |
1284 | }, | 1592 | }, |
1593 | .hex = "043C10277BACDF86" | ||
1594 | "C94FF839870239AF" | ||
1595 | "41BC4B67D85E0496" | ||
1596 | "84B56050486A201D" | ||
1597 | "2B7E9FAFF88E7EA4" | ||
1598 | "CD00ADB1AD226932" | ||
1599 | "106CE0CCDD45D8A6" | ||
1600 | "292FAD6BF9", | ||
1601 | .oct_len = 61, | ||
1602 | .oct = { | ||
1603 | 0x04, 0x3c, 0x10, 0x27, 0x7b, 0xac, 0xdf, 0x86, | ||
1604 | 0xc9, 0x4f, 0xf8, 0x39, 0x87, 0x02, 0x39, 0xaf, | ||
1605 | 0x41, 0xbc, 0x4b, 0x67, 0xd8, 0x5e, 0x04, 0x96, | ||
1606 | 0x84, 0xb5, 0x60, 0x50, 0x48, 0x6a, 0x20, 0x1d, | ||
1607 | 0x2b, 0x7e, 0x9f, 0xaf, 0xf8, 0x8e, 0x7e, 0xa4, | ||
1608 | 0xcd, 0x00, 0xad, 0xb1, 0xad, 0x22, 0x69, 0x32, | ||
1609 | 0x10, 0x6c, 0xe0, 0xcc, 0xdd, 0x45, 0xd8, 0xa6, | ||
1610 | 0x29, 0x2f, 0xad, 0x6b, 0xf9, | ||
1611 | }, | ||
1285 | }, | 1612 | }, |
1286 | { | 1613 | { |
1287 | .name = "prime239v3", | 1614 | .name = "prime239v3", |
@@ -1303,6 +1630,25 @@ static const struct ec_private_key { | |||
1303 | 0x26, 0x81, 0x2a, 0x91, 0x14, 0x0f, 0xc7, 0x31, | 1630 | 0x26, 0x81, 0x2a, 0x91, 0x14, 0x0f, 0xc7, 0x31, |
1304 | 0x13, 0x78, 0x16, | 1631 | 0x13, 0x78, 0x16, |
1305 | }, | 1632 | }, |
1633 | .hex = "0437BA077FD9465A" | ||
1634 | "3303317738EFEECC" | ||
1635 | "3DE1AA57E38DB7CD" | ||
1636 | "E301F4D675497261" | ||
1637 | "4CBFC01F8B5F989B" | ||
1638 | "A7E56AB7FE63DBB0" | ||
1639 | "40CB26812A91140F" | ||
1640 | "C731137816", | ||
1641 | .oct_len = 61, | ||
1642 | .oct = { | ||
1643 | 0x04, 0x37, 0xba, 0x07, 0x7f, 0xd9, 0x46, 0x5a, | ||
1644 | 0x33, 0x03, 0x31, 0x77, 0x38, 0xef, 0xee, 0xcc, | ||
1645 | 0x3d, 0xe1, 0xaa, 0x57, 0xe3, 0x8d, 0xb7, 0xcd, | ||
1646 | 0xe3, 0x01, 0xf4, 0xd6, 0x75, 0x49, 0x72, 0x61, | ||
1647 | 0x4c, 0xbf, 0xc0, 0x1f, 0x8b, 0x5f, 0x98, 0x9b, | ||
1648 | 0xa7, 0xe5, 0x6a, 0xb7, 0xfe, 0x63, 0xdb, 0xb0, | ||
1649 | 0x40, 0xcb, 0x26, 0x81, 0x2a, 0x91, 0x14, 0x0f, | ||
1650 | 0xc7, 0x31, 0x13, 0x78, 0x16, | ||
1651 | }, | ||
1306 | }, | 1652 | }, |
1307 | { | 1653 | { |
1308 | .name = "prime256v1", | 1654 | .name = "prime256v1", |
@@ -1325,6 +1671,27 @@ static const struct ec_private_key { | |||
1325 | 0x0b, 0xa6, 0xdd, 0x16, 0xc5, 0x8d, 0x5a, 0xcf, | 1671 | 0x0b, 0xa6, 0xdd, 0x16, 0xc5, 0x8d, 0x5a, 0xcf, |
1326 | 0xe3, | 1672 | 0xe3, |
1327 | }, | 1673 | }, |
1674 | .hex = "04968AC3661EF7CF" | ||
1675 | "F6CC4E73AEE264C4" | ||
1676 | "565F2DFEDEAC92BE" | ||
1677 | "104037CE24123019" | ||
1678 | "0866CF90C93703D1" | ||
1679 | "D58DAA182ABCED82" | ||
1680 | "32C9434B987FDCB1" | ||
1681 | "0BA6DD16C58D5ACF" | ||
1682 | "E3", | ||
1683 | .oct_len = 65, | ||
1684 | .oct = { | ||
1685 | 0x04, 0x96, 0x8a, 0xc3, 0x66, 0x1e, 0xf7, 0xcf, | ||
1686 | 0xf6, 0xcc, 0x4e, 0x73, 0xae, 0xe2, 0x64, 0xc4, | ||
1687 | 0x56, 0x5f, 0x2d, 0xfe, 0xde, 0xac, 0x92, 0xbe, | ||
1688 | 0x10, 0x40, 0x37, 0xce, 0x24, 0x12, 0x30, 0x19, | ||
1689 | 0x08, 0x66, 0xcf, 0x90, 0xc9, 0x37, 0x03, 0xd1, | ||
1690 | 0xd5, 0x8d, 0xaa, 0x18, 0x2a, 0xbc, 0xed, 0x82, | ||
1691 | 0x32, 0xc9, 0x43, 0x4b, 0x98, 0x7f, 0xdc, 0xb1, | ||
1692 | 0x0b, 0xa6, 0xdd, 0x16, 0xc5, 0x8d, 0x5a, 0xcf, | ||
1693 | 0xe3, | ||
1694 | }, | ||
1328 | }, | 1695 | }, |
1329 | { | 1696 | { |
1330 | .name = "wap-wsg-idm-ecid-wtls6", | 1697 | .name = "wap-wsg-idm-ecid-wtls6", |
@@ -1339,6 +1706,17 @@ static const struct ec_private_key { | |||
1339 | 0x43, 0x15, 0x6e, 0x27, 0x8a, 0x4f, 0x28, 0x11, | 1706 | 0x43, 0x15, 0x6e, 0x27, 0x8a, 0x4f, 0x28, 0x11, |
1340 | 0xb8, 0xf6, 0x80, 0xfe, 0x7a, 0xb1, 0xa2, 0x74, | 1707 | 0xb8, 0xf6, 0x80, 0xfe, 0x7a, 0xb1, 0xa2, 0x74, |
1341 | }, | 1708 | }, |
1709 | .hex = "04563F72F1B5EE7A" | ||
1710 | "4C5976D49743156E" | ||
1711 | "278A4F2811B8F680" | ||
1712 | "FE7AB1A274", | ||
1713 | .oct_len = 29, | ||
1714 | .oct = { | ||
1715 | 0x04, 0x56, 0x3f, 0x72, 0xf1, 0xb5, 0xee, 0x7a, | ||
1716 | 0x4c, 0x59, 0x76, 0xd4, 0x97, 0x43, 0x15, 0x6e, | ||
1717 | 0x27, 0x8a, 0x4f, 0x28, 0x11, 0xb8, 0xf6, 0x80, | ||
1718 | 0xfe, 0x7a, 0xb1, 0xa2, 0x74, | ||
1719 | }, | ||
1342 | }, | 1720 | }, |
1343 | #if CORRECT_PRIV_KEY_PADDING | 1721 | #if CORRECT_PRIV_KEY_PADDING |
1344 | { | 1722 | { |
@@ -1357,6 +1735,21 @@ static const struct ec_private_key { | |||
1357 | 0x92, 0x2e, 0x9a, 0xa9, 0x73, 0x2b, 0xc3, 0x06, | 1735 | 0x92, 0x2e, 0x9a, 0xa9, 0x73, 0x2b, 0xc3, 0x06, |
1358 | 0x0e, 0x4e, 0x69, | 1736 | 0x0e, 0x4e, 0x69, |
1359 | }, | 1737 | }, |
1738 | .hex = "04AF842D08CBE2F2" | ||
1739 | "A3AC20B0995C38D7" | ||
1740 | "5ECEB90B2E38DDCF" | ||
1741 | "137F5AFAAC1D922E" | ||
1742 | "9AA9732BC3060E4E" | ||
1743 | "69", | ||
1744 | .oct_len = 41, | ||
1745 | .oct = { | ||
1746 | 0x04, 0xaf, 0x84, 0x2d, 0x08, 0xcb, 0xe2, 0xf2, | ||
1747 | 0xa3, 0xac, 0x20, 0xb0, 0x99, 0x5c, 0x38, 0xd7, | ||
1748 | 0x5e, 0xce, 0xb9, 0x0b, 0x2e, 0x38, 0xdd, 0xcf, | ||
1749 | 0x13, 0x7f, 0x5a, 0xfa, 0xac, 0x1d, 0x92, 0x2e, | ||
1750 | 0x9a, 0xa9, 0x73, 0x2b, 0xc3, 0x06, 0x0e, 0x4e, | ||
1751 | 0x69, | ||
1752 | }, | ||
1360 | }, | 1753 | }, |
1361 | { | 1754 | { |
1362 | .name = "wap-wsg-idm-ecid-wtls8", | 1755 | .name = "wap-wsg-idm-ecid-wtls8", |
@@ -1372,6 +1765,17 @@ static const struct ec_private_key { | |||
1372 | 0x52, 0x3c, 0x6a, 0x6a, 0x2f, 0x69, 0x1a, 0x06, | 1765 | 0x52, 0x3c, 0x6a, 0x6a, 0x2f, 0x69, 0x1a, 0x06, |
1373 | 0x56, | 1766 | 0x56, |
1374 | }, | 1767 | }, |
1768 | .hex = "0448814BAE65F8DA" | ||
1769 | "022C66C60B1DA698" | ||
1770 | "4225F231523C6A6A" | ||
1771 | "2F691A0656", | ||
1772 | .oct_len = 29, | ||
1773 | .oct = { | ||
1774 | 0x04, 0x48, 0x81, 0x4b, 0xae, 0x65, 0xf8, 0xda, | ||
1775 | 0x02, 0x2c, 0x66, 0xc6, 0x0b, 0x1d, 0xa6, 0x98, | ||
1776 | 0x42, 0x25, 0xf2, 0x31, 0x52, 0x3c, 0x6a, 0x6a, | ||
1777 | 0x2f, 0x69, 0x1a, 0x06, 0x56, | ||
1778 | }, | ||
1375 | }, | 1779 | }, |
1376 | { | 1780 | { |
1377 | .name = "wap-wsg-idm-ecid-wtls9", | 1781 | .name = "wap-wsg-idm-ecid-wtls9", |
@@ -1389,6 +1793,21 @@ static const struct ec_private_key { | |||
1389 | 0xfa, 0x7e, 0xdc, 0x50, 0xc4, 0xac, 0xea, 0x84, | 1793 | 0xfa, 0x7e, 0xdc, 0x50, 0xc4, 0xac, 0xea, 0x84, |
1390 | 0x2f, 0xba, 0x3c, | 1794 | 0x2f, 0xba, 0x3c, |
1391 | }, | 1795 | }, |
1796 | .hex = "04AAFCE4FEF89148" | ||
1797 | "F1CC4944353D4971" | ||
1798 | "44DC74735B5F014B" | ||
1799 | "AB8B5C84EC2BFA7E" | ||
1800 | "DC50C4ACEA842FBA" | ||
1801 | "3C", | ||
1802 | .oct_len = 41, | ||
1803 | .oct = { | ||
1804 | 0x04, 0xaa, 0xfc, 0xe4, 0xfe, 0xf8, 0x91, 0x48, | ||
1805 | 0xf1, 0xcc, 0x49, 0x44, 0x35, 0x3d, 0x49, 0x71, | ||
1806 | 0x44, 0xdc, 0x74, 0x73, 0x5b, 0x5f, 0x01, 0x4b, | ||
1807 | 0xab, 0x8b, 0x5c, 0x84, 0xec, 0x2b, 0xfa, 0x7e, | ||
1808 | 0xdc, 0x50, 0xc4, 0xac, 0xea, 0x84, 0x2f, 0xba, | ||
1809 | 0x3c, | ||
1810 | }, | ||
1392 | }, | 1811 | }, |
1393 | #endif | 1812 | #endif |
1394 | { | 1813 | { |
@@ -1410,6 +1829,25 @@ static const struct ec_private_key { | |||
1410 | 0x00, 0xaf, 0xdc, 0x4a, 0xe7, 0xc6, 0x61, 0x44, | 1829 | 0x00, 0xaf, 0xdc, 0x4a, 0xe7, 0xc6, 0x61, 0x44, |
1411 | 0x50, 0xc6, | 1830 | 0x50, 0xc6, |
1412 | }, | 1831 | }, |
1832 | .hex = "0447D66327E1AD30" | ||
1833 | "ACBAAB86D663B5D9" | ||
1834 | "C59C243AD96A7A5D" | ||
1835 | "2B45718D7ED23275" | ||
1836 | "65C43725C71FEB33" | ||
1837 | "F76829168296D900" | ||
1838 | "AFDC4AE7C6614450" | ||
1839 | "C6", | ||
1840 | .oct_len = 57, | ||
1841 | .oct = { | ||
1842 | 0x04, 0x47, 0xd6, 0x63, 0x27, 0xe1, 0xad, 0x30, | ||
1843 | 0xac, 0xba, 0xab, 0x86, 0xd6, 0x63, 0xb5, 0xd9, | ||
1844 | 0xc5, 0x9c, 0x24, 0x3a, 0xd9, 0x6a, 0x7a, 0x5d, | ||
1845 | 0x2b, 0x45, 0x71, 0x8d, 0x7e, 0xd2, 0x32, 0x75, | ||
1846 | 0x65, 0xc4, 0x37, 0x25, 0xc7, 0x1f, 0xeb, 0x33, | ||
1847 | 0xf7, 0x68, 0x29, 0x16, 0x82, 0x96, 0xd9, 0x00, | ||
1848 | 0xaf, 0xdc, 0x4a, 0xe7, 0xc6, 0x61, 0x44, 0x50, | ||
1849 | 0xc6, | ||
1850 | }, | ||
1413 | }, | 1851 | }, |
1414 | { | 1852 | { |
1415 | .name = "brainpoolP160r1", | 1853 | .name = "brainpoolP160r1", |
@@ -1427,6 +1865,21 @@ static const struct ec_private_key { | |||
1427 | 0xa2, 0xcc, 0xc4, 0xd0, 0x1d, 0xd6, 0xe6, 0xcf, | 1865 | 0xa2, 0xcc, 0xc4, 0xd0, 0x1d, 0xd6, 0xe6, 0xcf, |
1428 | 0x11, 0x6e, 0x59, 0x12, 0xbb, 0x14, | 1866 | 0x11, 0x6e, 0x59, 0x12, 0xbb, 0x14, |
1429 | }, | 1867 | }, |
1868 | .hex = "044C15498194F56E" | ||
1869 | "808EC865EA48FA29" | ||
1870 | "C259F136D68DA4C5" | ||
1871 | "E07DE5A2CCC4D01D" | ||
1872 | "D6E6CF116E5912BB" | ||
1873 | "14", | ||
1874 | .oct_len = 41, | ||
1875 | .oct = { | ||
1876 | 0x04, 0x4c, 0x15, 0x49, 0x81, 0x94, 0xf5, 0x6e, | ||
1877 | 0x80, 0x8e, 0xc8, 0x65, 0xea, 0x48, 0xfa, 0x29, | ||
1878 | 0xc2, 0x59, 0xf1, 0x36, 0xd6, 0x8d, 0xa4, 0xc5, | ||
1879 | 0xe0, 0x7d, 0xe5, 0xa2, 0xcc, 0xc4, 0xd0, 0x1d, | ||
1880 | 0xd6, 0xe6, 0xcf, 0x11, 0x6e, 0x59, 0x12, 0xbb, | ||
1881 | 0x14, | ||
1882 | }, | ||
1430 | }, | 1883 | }, |
1431 | { | 1884 | { |
1432 | .name = "brainpoolP160t1", | 1885 | .name = "brainpoolP160t1", |
@@ -1444,6 +1897,21 @@ static const struct ec_private_key { | |||
1444 | 0xcf, 0x8f, 0x31, 0xb1, 0x69, 0x99, 0xc6, 0x11, | 1897 | 0xcf, 0x8f, 0x31, 0xb1, 0x69, 0x99, 0xc6, 0x11, |
1445 | 0x80, 0x0d, 0x40, 0x25, 0xf0, 0x90, | 1898 | 0x80, 0x0d, 0x40, 0x25, 0xf0, 0x90, |
1446 | }, | 1899 | }, |
1900 | .hex = "04964B2C8AED9B18" | ||
1901 | "30C11CBC16567BC0" | ||
1902 | "3A6C52F871DF5420" | ||
1903 | "96E3E9CF8F31B169" | ||
1904 | "99C611800D4025F0" | ||
1905 | "90", | ||
1906 | .oct_len = 41, | ||
1907 | .oct = { | ||
1908 | 0x04, 0x96, 0x4b, 0x2c, 0x8a, 0xed, 0x9b, 0x18, | ||
1909 | 0x30, 0xc1, 0x1c, 0xbc, 0x16, 0x56, 0x7b, 0xc0, | ||
1910 | 0x3a, 0x6c, 0x52, 0xf8, 0x71, 0xdf, 0x54, 0x20, | ||
1911 | 0x96, 0xe3, 0xe9, 0xcf, 0x8f, 0x31, 0xb1, 0x69, | ||
1912 | 0x99, 0xc6, 0x11, 0x80, 0x0d, 0x40, 0x25, 0xf0, | ||
1913 | 0x90, | ||
1914 | }, | ||
1447 | }, | 1915 | }, |
1448 | { | 1916 | { |
1449 | .name = "brainpoolP192r1", | 1917 | .name = "brainpoolP192r1", |
@@ -1463,6 +1931,23 @@ static const struct ec_private_key { | |||
1463 | 0x3c, 0xf1, 0x96, 0x94, 0x1f, 0x9c, 0x04, 0x2a, | 1931 | 0x3c, 0xf1, 0x96, 0x94, 0x1f, 0x9c, 0x04, 0x2a, |
1464 | 0x43, 0x27, | 1932 | 0x43, 0x27, |
1465 | }, | 1933 | }, |
1934 | .hex = "0471609C629876C9" | ||
1935 | "149175C6C81632C2" | ||
1936 | "294764A359A745DB" | ||
1937 | "D75195BAA433466E" | ||
1938 | "4F86ED1EEAF6F13C" | ||
1939 | "F196941F9C042A43" | ||
1940 | "27", | ||
1941 | .oct_len = 49, | ||
1942 | .oct = { | ||
1943 | 0x04, 0x71, 0x60, 0x9c, 0x62, 0x98, 0x76, 0xc9, | ||
1944 | 0x14, 0x91, 0x75, 0xc6, 0xc8, 0x16, 0x32, 0xc2, | ||
1945 | 0x29, 0x47, 0x64, 0xa3, 0x59, 0xa7, 0x45, 0xdb, | ||
1946 | 0xd7, 0x51, 0x95, 0xba, 0xa4, 0x33, 0x46, 0x6e, | ||
1947 | 0x4f, 0x86, 0xed, 0x1e, 0xea, 0xf6, 0xf1, 0x3c, | ||
1948 | 0xf1, 0x96, 0x94, 0x1f, 0x9c, 0x04, 0x2a, 0x43, | ||
1949 | 0x27, | ||
1950 | }, | ||
1466 | }, | 1951 | }, |
1467 | { | 1952 | { |
1468 | .name = "brainpoolP192t1", | 1953 | .name = "brainpoolP192t1", |
@@ -1482,6 +1967,23 @@ static const struct ec_private_key { | |||
1482 | 0x6d, 0x1b, 0x15, 0xd7, 0x4b, 0x79, 0xc1, 0xb5, | 1967 | 0x6d, 0x1b, 0x15, 0xd7, 0x4b, 0x79, 0xc1, 0xb5, |
1483 | 0x28, 0xc7, | 1968 | 0x28, 0xc7, |
1484 | }, | 1969 | }, |
1970 | .hex = "048D2B0CEEEA4B63" | ||
1971 | "AF6336B23A554085" | ||
1972 | "3395C11D37D3FC5C" | ||
1973 | "258A0AC5EC7FE07F" | ||
1974 | "085EDF89E6EE216D" | ||
1975 | "1B15D74B79C1B528" | ||
1976 | "C7", | ||
1977 | .oct_len = 49, | ||
1978 | .oct = { | ||
1979 | 0x04, 0x8d, 0x2b, 0x0c, 0xee, 0xea, 0x4b, 0x63, | ||
1980 | 0xaf, 0x63, 0x36, 0xb2, 0x3a, 0x55, 0x40, 0x85, | ||
1981 | 0x33, 0x95, 0xc1, 0x1d, 0x37, 0xd3, 0xfc, 0x5c, | ||
1982 | 0x25, 0x8a, 0x0a, 0xc5, 0xec, 0x7f, 0xe0, 0x7f, | ||
1983 | 0x08, 0x5e, 0xdf, 0x89, 0xe6, 0xee, 0x21, 0x6d, | ||
1984 | 0x1b, 0x15, 0xd7, 0x4b, 0x79, 0xc1, 0xb5, 0x28, | ||
1985 | 0xc7, | ||
1986 | }, | ||
1485 | }, | 1987 | }, |
1486 | { | 1988 | { |
1487 | .name = "brainpoolP224r1", | 1989 | .name = "brainpoolP224r1", |
@@ -1502,6 +2004,25 @@ static const struct ec_private_key { | |||
1502 | 0x71, 0x50, 0x6b, 0xed, 0xe3, 0xc5, 0xd4, 0xe9, | 2004 | 0x71, 0x50, 0x6b, 0xed, 0xe3, 0xc5, 0xd4, 0xe9, |
1503 | 0x1b, 0x59, 0x92, 0xa4, 0xa8, 0x81, | 2005 | 0x1b, 0x59, 0x92, 0xa4, 0xa8, 0x81, |
1504 | }, | 2006 | }, |
2007 | .hex = "04308820B3472E40" | ||
2008 | "1E68AEE10058A24B" | ||
2009 | "B9ACF75DC1EEF5FB" | ||
2010 | "DD34AEBE3C93DDC2" | ||
2011 | "D83A9A726541ACCC" | ||
2012 | "256ACF71506BEDE3" | ||
2013 | "C5D4E91B5992A4A8" | ||
2014 | "81", | ||
2015 | .oct_len = 57, | ||
2016 | .oct = { | ||
2017 | 0x04, 0x30, 0x88, 0x20, 0xb3, 0x47, 0x2e, 0x40, | ||
2018 | 0x1e, 0x68, 0xae, 0xe1, 0x00, 0x58, 0xa2, 0x4b, | ||
2019 | 0xb9, 0xac, 0xf7, 0x5d, 0xc1, 0xee, 0xf5, 0xfb, | ||
2020 | 0xdd, 0x34, 0xae, 0xbe, 0x3c, 0x93, 0xdd, 0xc2, | ||
2021 | 0xd8, 0x3a, 0x9a, 0x72, 0x65, 0x41, 0xac, 0xcc, | ||
2022 | 0x25, 0x6a, 0xcf, 0x71, 0x50, 0x6b, 0xed, 0xe3, | ||
2023 | 0xc5, 0xd4, 0xe9, 0x1b, 0x59, 0x92, 0xa4, 0xa8, | ||
2024 | 0x81, | ||
2025 | }, | ||
1505 | }, | 2026 | }, |
1506 | { | 2027 | { |
1507 | .name = "brainpoolP224t1", | 2028 | .name = "brainpoolP224t1", |
@@ -1522,6 +2043,25 @@ static const struct ec_private_key { | |||
1522 | 0x59, 0xb2, 0xfd, 0xe7, 0xdf, 0x41, 0xff, 0x4f, | 2043 | 0x59, 0xb2, 0xfd, 0xe7, 0xdf, 0x41, 0xff, 0x4f, |
1523 | 0x36, 0xe9, 0x56, 0xe9, 0x07, 0xc2, | 2044 | 0x36, 0xe9, 0x56, 0xe9, 0x07, 0xc2, |
1524 | }, | 2045 | }, |
2046 | .hex = "040BBF95EA8BA824" | ||
2047 | "94685469D955A536" | ||
2048 | "34F14A45F99F667B" | ||
2049 | "5DC98B0A7A5DEF25" | ||
2050 | "9AA386E1981B5BE3" | ||
2051 | "E355A059B2FDE7DF" | ||
2052 | "41FF4F36E956E907" | ||
2053 | "C2", | ||
2054 | .oct_len = 57, | ||
2055 | .oct = { | ||
2056 | 0x04, 0x0b, 0xbf, 0x95, 0xea, 0x8b, 0xa8, 0x24, | ||
2057 | 0x94, 0x68, 0x54, 0x69, 0xd9, 0x55, 0xa5, 0x36, | ||
2058 | 0x34, 0xf1, 0x4a, 0x45, 0xf9, 0x9f, 0x66, 0x7b, | ||
2059 | 0x5d, 0xc9, 0x8b, 0x0a, 0x7a, 0x5d, 0xef, 0x25, | ||
2060 | 0x9a, 0xa3, 0x86, 0xe1, 0x98, 0x1b, 0x5b, 0xe3, | ||
2061 | 0xe3, 0x55, 0xa0, 0x59, 0xb2, 0xfd, 0xe7, 0xdf, | ||
2062 | 0x41, 0xff, 0x4f, 0x36, 0xe9, 0x56, 0xe9, 0x07, | ||
2063 | 0xc2, | ||
2064 | }, | ||
1525 | }, | 2065 | }, |
1526 | { | 2066 | { |
1527 | .name = "brainpoolP256r1", | 2067 | .name = "brainpoolP256r1", |
@@ -1544,6 +2084,27 @@ static const struct ec_private_key { | |||
1544 | 0xcf, 0xe3, 0x38, 0xa0, 0xb7, 0x95, 0x85, 0x26, | 2084 | 0xcf, 0xe3, 0x38, 0xa0, 0xb7, 0x95, 0x85, 0x26, |
1545 | 0xf5, 0xb2, | 2085 | 0xf5, 0xb2, |
1546 | }, | 2086 | }, |
2087 | .hex = "0408D777F510A983" | ||
2088 | "D9DFFD40E442CED8" | ||
2089 | "3B9BEFE64D4ECA2D" | ||
2090 | "EAE669FED3A93F30" | ||
2091 | "FA7EA7149D3777C5" | ||
2092 | "CC1E32F6CE17911B" | ||
2093 | "EBA38FCE7055C1CF" | ||
2094 | "E338A0B7958526F5" | ||
2095 | "B2", | ||
2096 | .oct_len = 65, | ||
2097 | .oct = { | ||
2098 | 0x04, 0x08, 0xd7, 0x77, 0xf5, 0x10, 0xa9, 0x83, | ||
2099 | 0xd9, 0xdf, 0xfd, 0x40, 0xe4, 0x42, 0xce, 0xd8, | ||
2100 | 0x3b, 0x9b, 0xef, 0xe6, 0x4d, 0x4e, 0xca, 0x2d, | ||
2101 | 0xea, 0xe6, 0x69, 0xfe, 0xd3, 0xa9, 0x3f, 0x30, | ||
2102 | 0xfa, 0x7e, 0xa7, 0x14, 0x9d, 0x37, 0x77, 0xc5, | ||
2103 | 0xcc, 0x1e, 0x32, 0xf6, 0xce, 0x17, 0x91, 0x1b, | ||
2104 | 0xeb, 0xa3, 0x8f, 0xce, 0x70, 0x55, 0xc1, 0xcf, | ||
2105 | 0xe3, 0x38, 0xa0, 0xb7, 0x95, 0x85, 0x26, 0xf5, | ||
2106 | 0xb2, | ||
2107 | }, | ||
1547 | }, | 2108 | }, |
1548 | { | 2109 | { |
1549 | .name = "brainpoolP256t1", | 2110 | .name = "brainpoolP256t1", |
@@ -1566,6 +2127,27 @@ static const struct ec_private_key { | |||
1566 | 0xbd, 0x1e, 0x53, 0x8d, 0x26, 0x96, 0xab, 0x44, | 2127 | 0xbd, 0x1e, 0x53, 0x8d, 0x26, 0x96, 0xab, 0x44, |
1567 | 0x6b, 0x84, | 2128 | 0x6b, 0x84, |
1568 | }, | 2129 | }, |
2130 | .hex = "047B1D55290B0A0D" | ||
2131 | "027A1D7253C184B9" | ||
2132 | "9000B945E5A5D4EE" | ||
2133 | "D69A1DB03A91A895" | ||
2134 | "565832CBF32895A6" | ||
2135 | "8246E60A3300D10C" | ||
2136 | "61AC1EA0B0AD3ABD" | ||
2137 | "1E538D2696AB446B" | ||
2138 | "84", | ||
2139 | .oct_len = 65, | ||
2140 | .oct = { | ||
2141 | 0x04, 0x7b, 0x1d, 0x55, 0x29, 0x0b, 0x0a, 0x0d, | ||
2142 | 0x02, 0x7a, 0x1d, 0x72, 0x53, 0xc1, 0x84, 0xb9, | ||
2143 | 0x90, 0x00, 0xb9, 0x45, 0xe5, 0xa5, 0xd4, 0xee, | ||
2144 | 0xd6, 0x9a, 0x1d, 0xb0, 0x3a, 0x91, 0xa8, 0x95, | ||
2145 | 0x56, 0x58, 0x32, 0xcb, 0xf3, 0x28, 0x95, 0xa6, | ||
2146 | 0x82, 0x46, 0xe6, 0x0a, 0x33, 0x00, 0xd1, 0x0c, | ||
2147 | 0x61, 0xac, 0x1e, 0xa0, 0xb0, 0xad, 0x3a, 0xbd, | ||
2148 | 0x1e, 0x53, 0x8d, 0x26, 0x96, 0xab, 0x44, 0x6b, | ||
2149 | 0x84, | ||
2150 | }, | ||
1569 | }, | 2151 | }, |
1570 | { | 2152 | { |
1571 | .name = "brainpoolP320r1", | 2153 | .name = "brainpoolP320r1", |
@@ -1591,6 +2173,31 @@ static const struct ec_private_key { | |||
1591 | 0x54, 0xcc, 0x11, 0x2a, 0x84, 0xc6, 0x79, 0x10, | 2173 | 0x54, 0xcc, 0x11, 0x2a, 0x84, 0xc6, 0x79, 0x10, |
1592 | 0x7b, 0x20, 0x26, | 2174 | 0x7b, 0x20, 0x26, |
1593 | }, | 2175 | }, |
2176 | .hex = "04A33785E2F25FA1" | ||
2177 | "71A675FEA1EA6635" | ||
2178 | "7A53712483CDC95D" | ||
2179 | "3F43C4976DCC0CED" | ||
2180 | "9A51517D1ED0EAD2" | ||
2181 | "8C36B09362EB26DA" | ||
2182 | "E1EFC71AFA0CEA84" | ||
2183 | "7AF1502CEEF1B3CC" | ||
2184 | "B7A0985DDEC254CC" | ||
2185 | "112A84C679107B20" | ||
2186 | "26", | ||
2187 | .oct_len = 81, | ||
2188 | .oct = { | ||
2189 | 0x04, 0xa3, 0x37, 0x85, 0xe2, 0xf2, 0x5f, 0xa1, | ||
2190 | 0x71, 0xa6, 0x75, 0xfe, 0xa1, 0xea, 0x66, 0x35, | ||
2191 | 0x7a, 0x53, 0x71, 0x24, 0x83, 0xcd, 0xc9, 0x5d, | ||
2192 | 0x3f, 0x43, 0xc4, 0x97, 0x6d, 0xcc, 0x0c, 0xed, | ||
2193 | 0x9a, 0x51, 0x51, 0x7d, 0x1e, 0xd0, 0xea, 0xd2, | ||
2194 | 0x8c, 0x36, 0xb0, 0x93, 0x62, 0xeb, 0x26, 0xda, | ||
2195 | 0xe1, 0xef, 0xc7, 0x1a, 0xfa, 0x0c, 0xea, 0x84, | ||
2196 | 0x7a, 0xf1, 0x50, 0x2c, 0xee, 0xf1, 0xb3, 0xcc, | ||
2197 | 0xb7, 0xa0, 0x98, 0x5d, 0xde, 0xc2, 0x54, 0xcc, | ||
2198 | 0x11, 0x2a, 0x84, 0xc6, 0x79, 0x10, 0x7b, 0x20, | ||
2199 | 0x26, | ||
2200 | }, | ||
1594 | }, | 2201 | }, |
1595 | { | 2202 | { |
1596 | .name = "brainpoolP320t1", | 2203 | .name = "brainpoolP320t1", |
@@ -1616,6 +2223,31 @@ static const struct ec_private_key { | |||
1616 | 0x03, 0xbe, 0xa5, 0x05, 0x88, 0x16, 0x47, 0x9f, | 2223 | 0x03, 0xbe, 0xa5, 0x05, 0x88, 0x16, 0x47, 0x9f, |
1617 | 0xe5, 0x3b, 0xb8, | 2224 | 0xe5, 0x3b, 0xb8, |
1618 | }, | 2225 | }, |
2226 | .hex = "043D8C4CBB303FA0" | ||
2227 | "846143502370E370" | ||
2228 | "B64D89C895A009AE" | ||
2229 | "FC559C2FEF16C072" | ||
2230 | "3C3E07A1BBD88AFA" | ||
2231 | "AF9FAF077C154D75" | ||
2232 | "6BF525655BC47859" | ||
2233 | "22E5925CC28FDC97" | ||
2234 | "5982C50D247003BE" | ||
2235 | "A5058816479FE53B" | ||
2236 | "B8", | ||
2237 | .oct_len = 81, | ||
2238 | .oct = { | ||
2239 | 0x04, 0x3d, 0x8c, 0x4c, 0xbb, 0x30, 0x3f, 0xa0, | ||
2240 | 0x84, 0x61, 0x43, 0x50, 0x23, 0x70, 0xe3, 0x70, | ||
2241 | 0xb6, 0x4d, 0x89, 0xc8, 0x95, 0xa0, 0x09, 0xae, | ||
2242 | 0xfc, 0x55, 0x9c, 0x2f, 0xef, 0x16, 0xc0, 0x72, | ||
2243 | 0x3c, 0x3e, 0x07, 0xa1, 0xbb, 0xd8, 0x8a, 0xfa, | ||
2244 | 0xaf, 0x9f, 0xaf, 0x07, 0x7c, 0x15, 0x4d, 0x75, | ||
2245 | 0x6b, 0xf5, 0x25, 0x65, 0x5b, 0xc4, 0x78, 0x59, | ||
2246 | 0x22, 0xe5, 0x92, 0x5c, 0xc2, 0x8f, 0xdc, 0x97, | ||
2247 | 0x59, 0x82, 0xc5, 0x0d, 0x24, 0x70, 0x03, 0xbe, | ||
2248 | 0xa5, 0x05, 0x88, 0x16, 0x47, 0x9f, 0xe5, 0x3b, | ||
2249 | 0xb8, | ||
2250 | }, | ||
1619 | }, | 2251 | }, |
1620 | { | 2252 | { |
1621 | .name = "brainpoolP384r1", | 2253 | .name = "brainpoolP384r1", |
@@ -1644,6 +2276,35 @@ static const struct ec_private_key { | |||
1644 | 0x92, 0x00, 0xaf, 0x3d, 0xe8, 0x5a, 0x7d, 0x7b, | 2276 | 0x92, 0x00, 0xaf, 0x3d, 0xe8, 0x5a, 0x7d, 0x7b, |
1645 | 0x63, 0xc2, 0xde, | 2277 | 0x63, 0xc2, 0xde, |
1646 | }, | 2278 | }, |
2279 | .hex = "044F79E0E7F95733" | ||
2280 | "F99D6A5C006EB8BC" | ||
2281 | "E64F701D73025C87" | ||
2282 | "A188EAE3575C1A27" | ||
2283 | "40CFCC6F7E6DFD96" | ||
2284 | "0BAAC50292106D7E" | ||
2285 | "D517DAAB529BCD87" | ||
2286 | "08642A6103C9FE97" | ||
2287 | "79F05C8472505395" | ||
2288 | "567A97CE36132378" | ||
2289 | "3182360745AD9200" | ||
2290 | "AF3DE85A7D7B63C2" | ||
2291 | "DE", | ||
2292 | .oct_len = 97, | ||
2293 | .oct = { | ||
2294 | 0x04, 0x4f, 0x79, 0xe0, 0xe7, 0xf9, 0x57, 0x33, | ||
2295 | 0xf9, 0x9d, 0x6a, 0x5c, 0x00, 0x6e, 0xb8, 0xbc, | ||
2296 | 0xe6, 0x4f, 0x70, 0x1d, 0x73, 0x02, 0x5c, 0x87, | ||
2297 | 0xa1, 0x88, 0xea, 0xe3, 0x57, 0x5c, 0x1a, 0x27, | ||
2298 | 0x40, 0xcf, 0xcc, 0x6f, 0x7e, 0x6d, 0xfd, 0x96, | ||
2299 | 0x0b, 0xaa, 0xc5, 0x02, 0x92, 0x10, 0x6d, 0x7e, | ||
2300 | 0xd5, 0x17, 0xda, 0xab, 0x52, 0x9b, 0xcd, 0x87, | ||
2301 | 0x08, 0x64, 0x2a, 0x61, 0x03, 0xc9, 0xfe, 0x97, | ||
2302 | 0x79, 0xf0, 0x5c, 0x84, 0x72, 0x50, 0x53, 0x95, | ||
2303 | 0x56, 0x7a, 0x97, 0xce, 0x36, 0x13, 0x23, 0x78, | ||
2304 | 0x31, 0x82, 0x36, 0x07, 0x45, 0xad, 0x92, 0x00, | ||
2305 | 0xaf, 0x3d, 0xe8, 0x5a, 0x7d, 0x7b, 0x63, 0xc2, | ||
2306 | 0xde, | ||
2307 | }, | ||
1647 | }, | 2308 | }, |
1648 | { | 2309 | { |
1649 | .name = "brainpoolP384t1", | 2310 | .name = "brainpoolP384t1", |
@@ -1672,6 +2333,35 @@ static const struct ec_private_key { | |||
1672 | 0x88, 0x76, 0x72, 0x9a, 0xb4, 0xea, 0xc0, 0x48, | 2333 | 0x88, 0x76, 0x72, 0x9a, 0xb4, 0xea, 0xc0, 0x48, |
1673 | 0x01, 0x5d, 0x8e, | 2334 | 0x01, 0x5d, 0x8e, |
1674 | }, | 2335 | }, |
2336 | .hex = "0485DB574B71B165" | ||
2337 | "9351837CB324076B" | ||
2338 | "7B5733733AA61486" | ||
2339 | "83A88881F290DF93" | ||
2340 | "4F6741EFCB3514AD" | ||
2341 | "4C670BDB86035E6D" | ||
2342 | "5E7E4B0F739E7350" | ||
2343 | "8629097C38FCBEAF" | ||
2344 | "599C69DFB460143E" | ||
2345 | "B21A728657CB6B42" | ||
2346 | "20677FBCA8578876" | ||
2347 | "729AB4EAC048015D" | ||
2348 | "8E", | ||
2349 | .oct_len = 97, | ||
2350 | .oct = { | ||
2351 | 0x04, 0x85, 0xdb, 0x57, 0x4b, 0x71, 0xb1, 0x65, | ||
2352 | 0x93, 0x51, 0x83, 0x7c, 0xb3, 0x24, 0x07, 0x6b, | ||
2353 | 0x7b, 0x57, 0x33, 0x73, 0x3a, 0xa6, 0x14, 0x86, | ||
2354 | 0x83, 0xa8, 0x88, 0x81, 0xf2, 0x90, 0xdf, 0x93, | ||
2355 | 0x4f, 0x67, 0x41, 0xef, 0xcb, 0x35, 0x14, 0xad, | ||
2356 | 0x4c, 0x67, 0x0b, 0xdb, 0x86, 0x03, 0x5e, 0x6d, | ||
2357 | 0x5e, 0x7e, 0x4b, 0x0f, 0x73, 0x9e, 0x73, 0x50, | ||
2358 | 0x86, 0x29, 0x09, 0x7c, 0x38, 0xfc, 0xbe, 0xaf, | ||
2359 | 0x59, 0x9c, 0x69, 0xdf, 0xb4, 0x60, 0x14, 0x3e, | ||
2360 | 0xb2, 0x1a, 0x72, 0x86, 0x57, 0xcb, 0x6b, 0x42, | ||
2361 | 0x20, 0x67, 0x7f, 0xbc, 0xa8, 0x57, 0x88, 0x76, | ||
2362 | 0x72, 0x9a, 0xb4, 0xea, 0xc0, 0x48, 0x01, 0x5d, | ||
2363 | 0x8e, | ||
2364 | }, | ||
1675 | }, | 2365 | }, |
1676 | { | 2366 | { |
1677 | .name = "brainpoolP512r1", | 2367 | .name = "brainpoolP512r1", |
@@ -1706,6 +2396,43 @@ static const struct ec_private_key { | |||
1706 | 0x68, 0xe7, 0x19, 0xc1, 0x7d, 0xb6, 0x9d, 0xb9, | 2396 | 0x68, 0xe7, 0x19, 0xc1, 0x7d, 0xb6, 0x9d, 0xb9, |
1707 | 0xc6, 0xc2, 0x1b, 0x48, 0x7f, | 2397 | 0xc6, 0xc2, 0x1b, 0x48, 0x7f, |
1708 | }, | 2398 | }, |
2399 | .hex = "041E99EA54B61A4F" | ||
2400 | "4425F4F8BE337CD1" | ||
2401 | "6235F5D18E9FAEA8" | ||
2402 | "8F6D61272D2AB196" | ||
2403 | "486DB263059FECA1" | ||
2404 | "CD6545C8CDF1A4BA" | ||
2405 | "20B7E4C7923C1F16" | ||
2406 | "F45B75E42A2E4472" | ||
2407 | "6563C3785450CB50" | ||
2408 | "E0BEE76F2ADC247B" | ||
2409 | "F84BA8E21B27002D" | ||
2410 | "E899DC5FA443A8F7" | ||
2411 | "B155EAD702090897" | ||
2412 | "5F211E16A0D827E4" | ||
2413 | "5E3AA55168E719C1" | ||
2414 | "7DB69DB9C6C21B48" | ||
2415 | "7F", | ||
2416 | .oct_len = 129, | ||
2417 | .oct = { | ||
2418 | 0x04, 0x1e, 0x99, 0xea, 0x54, 0xb6, 0x1a, 0x4f, | ||
2419 | 0x44, 0x25, 0xf4, 0xf8, 0xbe, 0x33, 0x7c, 0xd1, | ||
2420 | 0x62, 0x35, 0xf5, 0xd1, 0x8e, 0x9f, 0xae, 0xa8, | ||
2421 | 0x8f, 0x6d, 0x61, 0x27, 0x2d, 0x2a, 0xb1, 0x96, | ||
2422 | 0x48, 0x6d, 0xb2, 0x63, 0x05, 0x9f, 0xec, 0xa1, | ||
2423 | 0xcd, 0x65, 0x45, 0xc8, 0xcd, 0xf1, 0xa4, 0xba, | ||
2424 | 0x20, 0xb7, 0xe4, 0xc7, 0x92, 0x3c, 0x1f, 0x16, | ||
2425 | 0xf4, 0x5b, 0x75, 0xe4, 0x2a, 0x2e, 0x44, 0x72, | ||
2426 | 0x65, 0x63, 0xc3, 0x78, 0x54, 0x50, 0xcb, 0x50, | ||
2427 | 0xe0, 0xbe, 0xe7, 0x6f, 0x2a, 0xdc, 0x24, 0x7b, | ||
2428 | 0xf8, 0x4b, 0xa8, 0xe2, 0x1b, 0x27, 0x00, 0x2d, | ||
2429 | 0xe8, 0x99, 0xdc, 0x5f, 0xa4, 0x43, 0xa8, 0xf7, | ||
2430 | 0xb1, 0x55, 0xea, 0xd7, 0x02, 0x09, 0x08, 0x97, | ||
2431 | 0x5f, 0x21, 0x1e, 0x16, 0xa0, 0xd8, 0x27, 0xe4, | ||
2432 | 0x5e, 0x3a, 0xa5, 0x51, 0x68, 0xe7, 0x19, 0xc1, | ||
2433 | 0x7d, 0xb6, 0x9d, 0xb9, 0xc6, 0xc2, 0x1b, 0x48, | ||
2434 | 0x7f, | ||
2435 | }, | ||
1709 | }, | 2436 | }, |
1710 | { | 2437 | { |
1711 | .name = "brainpoolP512t1", | 2438 | .name = "brainpoolP512t1", |
@@ -1740,6 +2467,43 @@ static const struct ec_private_key { | |||
1740 | 0x68, 0x0f, 0x3f, 0x34, 0xee, 0x90, 0x4e, 0xab, | 2467 | 0x68, 0x0f, 0x3f, 0x34, 0xee, 0x90, 0x4e, 0xab, |
1741 | 0x80, 0x7c, 0x41, 0xd7, 0x8f, | 2468 | 0x80, 0x7c, 0x41, 0xd7, 0x8f, |
1742 | }, | 2469 | }, |
2470 | .hex = "045B2B478361EA80" | ||
2471 | "148506E703BD2404" | ||
2472 | "475D334EDE0C9209" | ||
2473 | "5477530E333073C0" | ||
2474 | "C06AF2B5B5D4D302" | ||
2475 | "2F20E288B2074A9F" | ||
2476 | "90BFBAB53DC45B65" | ||
2477 | "76B5E5A17D633957" | ||
2478 | "AA1D1F9952435D0B" | ||
2479 | "58A6511E6F7B9E2F" | ||
2480 | "455A2D6FAA2BFCE1" | ||
2481 | "9F78117080F8FE51" | ||
2482 | "4512BF79D8AF0559" | ||
2483 | "1401819C125C8D4D" | ||
2484 | "EDC74461680F3F34" | ||
2485 | "EE904EAB807C41D7" | ||
2486 | "8F", | ||
2487 | .oct_len = 129, | ||
2488 | .oct = { | ||
2489 | 0x04, 0x5b, 0x2b, 0x47, 0x83, 0x61, 0xea, 0x80, | ||
2490 | 0x14, 0x85, 0x06, 0xe7, 0x03, 0xbd, 0x24, 0x04, | ||
2491 | 0x47, 0x5d, 0x33, 0x4e, 0xde, 0x0c, 0x92, 0x09, | ||
2492 | 0x54, 0x77, 0x53, 0x0e, 0x33, 0x30, 0x73, 0xc0, | ||
2493 | 0xc0, 0x6a, 0xf2, 0xb5, 0xb5, 0xd4, 0xd3, 0x02, | ||
2494 | 0x2f, 0x20, 0xe2, 0x88, 0xb2, 0x07, 0x4a, 0x9f, | ||
2495 | 0x90, 0xbf, 0xba, 0xb5, 0x3d, 0xc4, 0x5b, 0x65, | ||
2496 | 0x76, 0xb5, 0xe5, 0xa1, 0x7d, 0x63, 0x39, 0x57, | ||
2497 | 0xaa, 0x1d, 0x1f, 0x99, 0x52, 0x43, 0x5d, 0x0b, | ||
2498 | 0x58, 0xa6, 0x51, 0x1e, 0x6f, 0x7b, 0x9e, 0x2f, | ||
2499 | 0x45, 0x5a, 0x2d, 0x6f, 0xaa, 0x2b, 0xfc, 0xe1, | ||
2500 | 0x9f, 0x78, 0x11, 0x70, 0x80, 0xf8, 0xfe, 0x51, | ||
2501 | 0x45, 0x12, 0xbf, 0x79, 0xd8, 0xaf, 0x05, 0x59, | ||
2502 | 0x14, 0x01, 0x81, 0x9c, 0x12, 0x5c, 0x8d, 0x4d, | ||
2503 | 0xed, 0xc7, 0x44, 0x61, 0x68, 0x0f, 0x3f, 0x34, | ||
2504 | 0xee, 0x90, 0x4e, 0xab, 0x80, 0x7c, 0x41, 0xd7, | ||
2505 | 0x8f, | ||
2506 | }, | ||
1743 | }, | 2507 | }, |
1744 | { | 2508 | { |
1745 | .name = "FRP256v1", | 2509 | .name = "FRP256v1", |
@@ -1762,6 +2526,27 @@ static const struct ec_private_key { | |||
1762 | 0xa7, 0xe0, 0x31, 0x1c, 0x4d, 0x1c, 0xa8, 0x2a, | 2526 | 0xa7, 0xe0, 0x31, 0x1c, 0x4d, 0x1c, 0xa8, 0x2a, |
1763 | 0x51, 0x11, 0x24, | 2527 | 0x51, 0x11, 0x24, |
1764 | }, | 2528 | }, |
2529 | .hex = "0417C7AE1BE4C6D6" | ||
2530 | "3ACF6B7E43299FDC" | ||
2531 | "C2A3905362426EA3" | ||
2532 | "A4CAD3F65353D4A6" | ||
2533 | "1FA8031F6DD47577" | ||
2534 | "23F792A47C5A4CC7" | ||
2535 | "C6965462949BA7E0" | ||
2536 | "311C4D1CA82A5111" | ||
2537 | "24", | ||
2538 | .oct_len = 65, | ||
2539 | .oct = { | ||
2540 | 0x04, 0x17, 0xc7, 0xae, 0x1b, 0xe4, 0xc6, 0xd6, | ||
2541 | 0x3a, 0xcf, 0x6b, 0x7e, 0x43, 0x29, 0x9f, 0xdc, | ||
2542 | 0xc2, 0xa3, 0x90, 0x53, 0x62, 0x42, 0x6e, 0xa3, | ||
2543 | 0xa4, 0xca, 0xd3, 0xf6, 0x53, 0x53, 0xd4, 0xa6, | ||
2544 | 0x1f, 0xa8, 0x03, 0x1f, 0x6d, 0xd4, 0x75, 0x77, | ||
2545 | 0x23, 0xf7, 0x92, 0xa4, 0x7c, 0x5a, 0x4c, 0xc7, | ||
2546 | 0xc6, 0x96, 0x54, 0x62, 0x94, 0x9b, 0xa7, 0xe0, | ||
2547 | 0x31, 0x1c, 0x4d, 0x1c, 0xa8, 0x2a, 0x51, 0x11, | ||
2548 | 0x24, | ||
2549 | }, | ||
1765 | }, | 2550 | }, |
1766 | }; | 2551 | }; |
1767 | 2552 | ||
@@ -1771,10 +2556,15 @@ static int | |||
1771 | ec_group_check_private_key(const struct ec_private_key *key) | 2556 | ec_group_check_private_key(const struct ec_private_key *key) |
1772 | { | 2557 | { |
1773 | EC_KEY *ec_key = NULL, *ec_pub_key = NULL; | 2558 | EC_KEY *ec_key = NULL, *ec_pub_key = NULL; |
2559 | const EC_GROUP *group; | ||
2560 | const EC_POINT *ec_public_point; | ||
2561 | EC_POINT *point = NULL; | ||
2562 | BIGNUM *hex_bn = NULL, *point_bn = NULL; | ||
1774 | const unsigned char *p; | 2563 | const unsigned char *p; |
1775 | unsigned int flags; | 2564 | unsigned int flags; |
1776 | unsigned char *der = NULL, *ostr = NULL; | 2565 | unsigned char *der = NULL, *ostr = NULL; |
1777 | int der_len = 0, ostr_len = 0; | 2566 | char *hex = NULL; |
2567 | int der_len = 0, hex_len = 0, ostr_len = 0; | ||
1778 | uint8_t form; | 2568 | uint8_t form; |
1779 | int rv; | 2569 | int rv; |
1780 | int failed = 1; | 2570 | int failed = 1; |
@@ -1790,6 +2580,11 @@ ec_group_check_private_key(const struct ec_private_key *key) | |||
1790 | flags, key->name); | 2580 | flags, key->name); |
1791 | goto err; | 2581 | goto err; |
1792 | } | 2582 | } |
2583 | if ((form = EC_KEY_get_conv_form(ec_key)) != POINT_CONVERSION_UNCOMPRESSED) { | ||
2584 | fprintf(stderr, "FAIL: got conversion form %02x, want %02x\n", | ||
2585 | form, POINT_CONVERSION_UNCOMPRESSED); | ||
2586 | goto err; | ||
2587 | } | ||
1793 | 2588 | ||
1794 | ERR_clear_error(); | 2589 | ERR_clear_error(); |
1795 | if (!EC_KEY_check_key(ec_key)) { | 2590 | if (!EC_KEY_check_key(ec_key)) { |
@@ -1811,6 +2606,92 @@ ec_group_check_private_key(const struct ec_private_key *key) | |||
1811 | der = NULL; | 2606 | der = NULL; |
1812 | 2607 | ||
1813 | /* | 2608 | /* |
2609 | * Check the outputs of EC_POINT_point2hex() and i2o_ECPublicKey(). | ||
2610 | */ | ||
2611 | |||
2612 | if ((group = EC_KEY_get0_group(ec_key)) == NULL) { | ||
2613 | fprintf(stderr, "FAIL: EC_KEY_get0_group() for %s\n", key->name); | ||
2614 | goto err; | ||
2615 | } | ||
2616 | if ((ec_public_point = EC_KEY_get0_public_key(ec_key)) == NULL) { | ||
2617 | fprintf(stderr, "FAIL: EC_KEY_get0_public_key() for %s\n", key->name); | ||
2618 | goto err; | ||
2619 | } | ||
2620 | |||
2621 | if ((hex = EC_POINT_point2hex(group, ec_public_point, | ||
2622 | POINT_CONVERSION_UNCOMPRESSED, NULL)) == NULL) { | ||
2623 | fprintf(stderr, "FAIL: EC_POINT_point2hex() for %s\n", key->name); | ||
2624 | goto err; | ||
2625 | } | ||
2626 | |||
2627 | if ((hex_len = strlen(hex)) != 2 * key->oct_len) { | ||
2628 | fprintf(stderr, "FAIL: hex_len: %d, oct_len %d for %s\n", | ||
2629 | hex_len, key->oct_len, key->name); | ||
2630 | goto err; | ||
2631 | } | ||
2632 | |||
2633 | freezero(ostr, ostr_len); | ||
2634 | ostr = NULL; | ||
2635 | if ((ostr_len = i2o_ECPublicKey(ec_key, &ostr)) <= 0) { | ||
2636 | fprintf(stderr, "FAIL: i2o_ECPublicKey for %s\n", key->name); | ||
2637 | goto err; | ||
2638 | } | ||
2639 | |||
2640 | if (compare_data(key->name, ostr, ostr_len, key->oct, key->oct_len) == -1) { | ||
2641 | fprintf(stderr, "FAIL: i2o_ECPublicKey comparison for %s\n", | ||
2642 | key->name); | ||
2643 | goto err; | ||
2644 | } | ||
2645 | |||
2646 | /* | ||
2647 | * Now compare the octet string placed into a bignum with what we got | ||
2648 | * from point2hex (what a wonderful idea). | ||
2649 | */ | ||
2650 | |||
2651 | if ((point_bn = BN_new()) == NULL) | ||
2652 | err(1, "BN_new()"); | ||
2653 | if ((EC_POINT_point2bn(group, ec_public_point, | ||
2654 | POINT_CONVERSION_UNCOMPRESSED, point_bn, NULL)) == NULL) { | ||
2655 | fprintf(stderr, "FAIL: EC_POINT_point2bn() for %s\n", key->name); | ||
2656 | goto err; | ||
2657 | } | ||
2658 | |||
2659 | if ((BN_hex2bn(&hex_bn, hex)) != hex_len) { | ||
2660 | fprintf(stderr, "FAIL: BN_hex2bn() for %s\n", key->name); | ||
2661 | goto err; | ||
2662 | } | ||
2663 | |||
2664 | if (BN_cmp(hex_bn, point_bn) != 0) { | ||
2665 | fprintf(stderr, "FAIL: mismatch between " | ||
2666 | "hex point and curve point for %s\n", key->name); | ||
2667 | goto err; | ||
2668 | } | ||
2669 | |||
2670 | /* | ||
2671 | * And translate back to a point on the curve. | ||
2672 | */ | ||
2673 | |||
2674 | EC_POINT_free(point); | ||
2675 | point = NULL; | ||
2676 | if ((point = EC_POINT_hex2point(group, hex, NULL, NULL)) == NULL) { | ||
2677 | fprintf(stderr, "FAIL: EC_POINT_hex2point() failed for %s\n", | ||
2678 | key->name); | ||
2679 | goto err; | ||
2680 | } | ||
2681 | |||
2682 | if ((rv = EC_POINT_cmp(group, ec_public_point, point, NULL)) != 0) { | ||
2683 | fprintf(stderr, "FAIL: EC_POINT_cmp() returned %d for %s\n", | ||
2684 | rv, key->name); | ||
2685 | goto err; | ||
2686 | } | ||
2687 | |||
2688 | free(hex); | ||
2689 | hex = NULL; | ||
2690 | |||
2691 | freezero(ostr, ostr_len); | ||
2692 | ostr = NULL; | ||
2693 | |||
2694 | /* | ||
1814 | * Round trip the public key through i2o and o2i in compressed form. | 2695 | * Round trip the public key through i2o and o2i in compressed form. |
1815 | */ | 2696 | */ |
1816 | 2697 | ||
@@ -1911,6 +2792,12 @@ ec_group_check_private_key(const struct ec_private_key *key) | |||
1911 | 2792 | ||
1912 | freezero(der, der_len); | 2793 | freezero(der, der_len); |
1913 | freezero(ostr, ostr_len); | 2794 | freezero(ostr, ostr_len); |
2795 | free(hex); | ||
2796 | |||
2797 | BN_free(hex_bn); | ||
2798 | BN_free(point_bn); | ||
2799 | |||
2800 | EC_POINT_free(point); | ||
1914 | 2801 | ||
1915 | return failed; | 2802 | return failed; |
1916 | } | 2803 | } |