Commit 7cf4753
fix(ext/node): implement ECDH.convertKey and fix related ECDH bugs (#32532)
## Summary
- Implement `ECDH.convertKey()` static method supporting compressed,
uncompressed, and hybrid point formats
- Fix `setPrivateKey()` not decoding string keys with encoding parameter
- Fix `getPublicKey()` not supporting hybrid format
- Fix `op_node_ecdh_compute_public_key` using `to_sec1_bytes()`
(compressed, 33 bytes) instead of `to_encoded_point(false)`
(uncompressed, 65 bytes), which caused a panic on `copy_from_slice`
- Enable `test-crypto-ecdh-convert-key.js` in node_compat config
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent f123d84 commit 7cf4753
File tree
3 files changed
+68
-14
lines changed- ext
- node_crypto
- node/polyfills/internal/crypto
- tests/node_compat
3 files changed
+68
-14
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | 18 | | |
20 | 19 | | |
21 | 20 | | |
22 | 21 | | |
23 | 22 | | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
1230 | 1230 | | |
1231 | 1231 | | |
1232 | 1232 | | |
1233 | | - | |
1234 | | - | |
1235 | | - | |
1236 | | - | |
1237 | | - | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
1238 | 1238 | | |
1239 | | - | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
1240 | 1282 | | |
1241 | 1283 | | |
1242 | 1284 | | |
| |||
1312 | 1354 | | |
1313 | 1355 | | |
1314 | 1356 | | |
1315 | | - | |
| 1357 | + | |
1316 | 1358 | | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
1317 | 1367 | | |
1318 | 1368 | | |
1319 | 1369 | | |
| |||
1326 | 1376 | | |
1327 | 1377 | | |
1328 | 1378 | | |
1329 | | - | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
1330 | 1382 | | |
1331 | 1383 | | |
1332 | 1384 | | |
| |||
1343 | 1395 | | |
1344 | 1396 | | |
1345 | 1397 | | |
| 1398 | + | |
1346 | 1399 | | |
1347 | 1400 | | |
1348 | 1401 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1118 | 1118 | | |
1119 | 1119 | | |
1120 | 1120 | | |
1121 | | - | |
| 1121 | + | |
1122 | 1122 | | |
1123 | 1123 | | |
1124 | 1124 | | |
1125 | 1125 | | |
1126 | 1126 | | |
1127 | 1127 | | |
1128 | | - | |
| 1128 | + | |
1129 | 1129 | | |
1130 | 1130 | | |
1131 | 1131 | | |
1132 | 1132 | | |
1133 | 1133 | | |
1134 | 1134 | | |
1135 | | - | |
| 1135 | + | |
1136 | 1136 | | |
1137 | 1137 | | |
1138 | 1138 | | |
1139 | 1139 | | |
1140 | 1140 | | |
1141 | 1141 | | |
1142 | | - | |
| 1142 | + | |
1143 | 1143 | | |
1144 | 1144 | | |
1145 | 1145 | | |
1146 | 1146 | | |
1147 | 1147 | | |
1148 | 1148 | | |
1149 | | - | |
| 1149 | + | |
1150 | 1150 | | |
1151 | 1151 | | |
1152 | 1152 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| 265 | + | |
265 | 266 | | |
266 | 267 | | |
267 | 268 | | |
| |||
0 commit comments