Commit 251fea2
authored
feat(sdk): enhance assertion verification to support jwk and x509 certificates (#322)
This PR adds support for verifying TDF assertions using JWK and X.509
certificates embedded in the JWT header.
- `CryptoUtils.java`: A new `getPublicKeyJWK` method was added to
convert an RSA public key into a JWK string.
- `Manifest.java`: The assertion verification logic was updated. It now
checks for and uses jwk and x5c (X.509 certificate chain) headers within
the JWT to verify signatures before falling back to the previous
verification method.
- `TDF.java`: Exception handling was updated to catch
`CertificateException`.
- `TDFTest.java`: New tests, `testSimpleTDFWithAssertionWithJWK` and
`testSimpleTDFWithAssertionWithX5C`, were added to validate the new
verification flows.
- `TestUtil.java`: A `createTestCertificate` method was added to
generate self-signed X.509 certificates for testing.
---------
Signed-off-by: Scott Hamrick <2623452+cshamrick@users.noreply.github.com>1 parent 63715d2 commit 251fea2
7 files changed
Lines changed: 1115 additions & 769 deletions
File tree
- cmdline/src/main/java/io/opentdf/platform
- sdk/src
- main/java/io/opentdf/platform/sdk
- test/java/io/opentdf/platform/sdk
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
4 | 14 | | |
5 | | - | |
6 | 15 | | |
7 | 16 | | |
8 | 17 | | |
9 | 18 | | |
10 | | - | |
11 | 19 | | |
12 | 20 | | |
13 | 21 | | |
14 | | - | |
15 | 22 | | |
16 | 23 | | |
17 | 24 | | |
| |||
38 | 45 | | |
39 | 46 | | |
40 | 47 | | |
41 | | - | |
42 | 48 | | |
43 | 49 | | |
44 | 50 | | |
| |||
60 | 66 | | |
61 | 67 | | |
62 | 68 | | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
63 | 102 | | |
64 | 103 | | |
65 | 104 | | |
| |||
177 | 216 | | |
178 | 217 | | |
179 | 218 | | |
180 | | - | |
| 219 | + | |
181 | 220 | | |
182 | 221 | | |
183 | 222 | | |
| |||
235 | 274 | | |
236 | 275 | | |
237 | 276 | | |
238 | | - | |
| 277 | + | |
| 278 | + | |
239 | 279 | | |
240 | 280 | | |
241 | 281 | | |
| |||
252 | 292 | | |
253 | 293 | | |
254 | 294 | | |
255 | | - | |
| 295 | + | |
256 | 296 | | |
257 | | - | |
| 297 | + | |
258 | 298 | | |
259 | 299 | | |
260 | | - | |
| 300 | + | |
261 | 301 | | |
262 | 302 | | |
263 | 303 | | |
264 | 304 | | |
265 | | - | |
| 305 | + | |
266 | 306 | | |
267 | 307 | | |
268 | 308 | | |
| |||
302 | 342 | | |
303 | 343 | | |
304 | 344 | | |
305 | | - | |
| 345 | + | |
| 346 | + | |
306 | 347 | | |
307 | 348 | | |
308 | 349 | | |
| |||
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
5 | 7 | | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
| 12 | + | |
10 | 13 | | |
11 | 14 | | |
12 | 15 | | |
| |||
88 | 91 | | |
89 | 92 | | |
90 | 93 | | |
| 94 | + | |
| 95 | + | |
91 | 96 | | |
92 | 97 | | |
93 | 98 | | |
94 | 99 | | |
95 | 100 | | |
96 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
97 | 112 | | |
98 | 113 | | |
99 | 114 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
3 | 5 | | |
4 | 6 | | |
5 | 7 | | |
| 8 | + | |
6 | 9 | | |
7 | 10 | | |
8 | 11 | | |
| |||
58 | 61 | | |
59 | 62 | | |
60 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
61 | 73 | | |
62 | 74 | | |
63 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
23 | 26 | | |
24 | 27 | | |
25 | 28 | | |
| |||
33 | 36 | | |
34 | 37 | | |
35 | 38 | | |
| 39 | + | |
36 | 40 | | |
37 | 41 | | |
38 | 42 | | |
| |||
400 | 404 | | |
401 | 405 | | |
402 | 406 | | |
403 | | - | |
| 407 | + | |
404 | 408 | | |
405 | 409 | | |
406 | 410 | | |
| |||
409 | 413 | | |
410 | 414 | | |
411 | 415 | | |
412 | | - | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
413 | 447 | | |
414 | 448 | | |
415 | 449 | | |
| |||
424 | 458 | | |
425 | 459 | | |
426 | 460 | | |
427 | | - | |
| 461 | + | |
428 | 462 | | |
429 | 463 | | |
430 | | - | |
| 464 | + | |
431 | 465 | | |
432 | 466 | | |
433 | | - | |
| 467 | + | |
434 | 468 | | |
435 | 469 | | |
436 | 470 | | |
437 | 471 | | |
438 | 472 | | |
439 | | - | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
440 | 482 | | |
441 | 483 | | |
442 | 484 | | |
| |||
460 | 502 | | |
461 | 503 | | |
462 | 504 | | |
463 | | - | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
464 | 512 | | |
465 | 513 | | |
466 | 514 | | |
467 | 515 | | |
468 | 516 | | |
469 | 517 | | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
470 | 529 | | |
471 | 530 | | |
472 | 531 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
695 | 695 | | |
696 | 696 | | |
697 | 697 | | |
698 | | - | |
| 698 | + | |
699 | 699 | | |
700 | 700 | | |
701 | 701 | | |
| |||
0 commit comments