Commit 7dc8ede
fix: resolve certificate/key mismatch in P12/JKS downloads
Fixes GitHub issue #1: Private key in P12/JKS downloads didn't match
the certificate's public key because the KMS certify operation wasn't
using the pre-created key pair.
Root cause:
- When issuing certificates, a key pair was created first via createKeyPair()
- But the certify() call didn't reference this key pair via UniqueIdentifier
- KMS would generate a NEW key pair for the certificate
- The stored kmsKeyId pointed to the original key pair
- Downloads fetched the original private key, which didn't match the
certificate's actual public key
Fix:
- Add UniqueIdentifier to certify() request to reference existing public key
- Add PublicKeyLink attribute as backup
- Disable key reuse for renewals (was already broken due to same issue)
- Add test to verify certificate/private key modulus match in P12
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>1 parent ed72b17 commit 7dc8ede
File tree
5 files changed
+90
-66
lines changed- backend/src
- kms
- rest/routes
- services
- trpc/procedures
5 files changed
+90
-66
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
413 | 424 | | |
414 | 425 | | |
415 | 426 | | |
| |||
471 | 482 | | |
472 | 483 | | |
473 | 484 | | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
474 | 506 | | |
475 | 507 | | |
476 | 508 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
349 | 349 | | |
350 | 350 | | |
351 | 351 | | |
352 | | - | |
| 352 | + | |
353 | 353 | | |
354 | 354 | | |
355 | 355 | | |
| |||
380 | 380 | | |
381 | 381 | | |
382 | 382 | | |
383 | | - | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
384 | 396 | | |
385 | 397 | | |
386 | 398 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
850 | 850 | | |
851 | 851 | | |
852 | 852 | | |
853 | | - | |
854 | | - | |
855 | | - | |
856 | | - | |
857 | | - | |
858 | | - | |
859 | | - | |
860 | | - | |
861 | | - | |
862 | | - | |
863 | | - | |
864 | | - | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
865 | 860 | | |
866 | | - | |
867 | | - | |
868 | | - | |
869 | | - | |
| 861 | + | |
870 | 862 | | |
871 | | - | |
872 | | - | |
873 | | - | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
874 | 869 | | |
875 | | - | |
876 | | - | |
877 | | - | |
| 870 | + | |
| 871 | + | |
878 | 872 | | |
879 | 873 | | |
880 | 874 | | |
| |||
907 | 901 | | |
908 | 902 | | |
909 | 903 | | |
910 | | - | |
| 904 | + | |
911 | 905 | | |
912 | 906 | | |
913 | 907 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
159 | | - | |
| 159 | + | |
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| |||
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
189 | | - | |
| 189 | + | |
| 190 | + | |
190 | 191 | | |
191 | 192 | | |
192 | | - | |
| 193 | + | |
193 | 194 | | |
194 | 195 | | |
195 | 196 | | |
| |||
202 | 203 | | |
203 | 204 | | |
204 | 205 | | |
205 | | - | |
| 206 | + | |
206 | 207 | | |
207 | 208 | | |
208 | | - | |
| 209 | + | |
209 | 210 | | |
210 | | - | |
| 211 | + | |
211 | 212 | | |
212 | 213 | | |
213 | 214 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1001 | 1001 | | |
1002 | 1002 | | |
1003 | 1003 | | |
1004 | | - | |
1005 | | - | |
1006 | | - | |
1007 | | - | |
1008 | | - | |
1009 | | - | |
1010 | | - | |
1011 | | - | |
1012 | | - | |
1013 | | - | |
1014 | | - | |
1015 | | - | |
1016 | | - | |
1017 | | - | |
1018 | | - | |
1019 | | - | |
1020 | | - | |
1021 | | - | |
1022 | | - | |
1023 | | - | |
1024 | | - | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
1025 | 1011 | | |
1026 | | - | |
1027 | | - | |
1028 | | - | |
1029 | | - | |
1030 | | - | |
1031 | | - | |
| 1012 | + | |
1032 | 1013 | | |
1033 | | - | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
1034 | 1022 | | |
1035 | | - | |
1036 | | - | |
1037 | | - | |
1038 | | - | |
1039 | | - | |
| 1023 | + | |
| 1024 | + | |
1040 | 1025 | | |
1041 | 1026 | | |
1042 | 1027 | | |
| |||
1069 | 1054 | | |
1070 | 1055 | | |
1071 | 1056 | | |
1072 | | - | |
| 1057 | + | |
1073 | 1058 | | |
1074 | 1059 | | |
1075 | 1060 | | |
| |||
2594 | 2579 | | |
2595 | 2580 | | |
2596 | 2581 | | |
2597 | | - | |
| 2582 | + | |
2598 | 2583 | | |
2599 | 2584 | | |
2600 | 2585 | | |
| |||
0 commit comments