| Gilles Peskine | 65b5483 | 2025-02-05 20:33:15 +0100 | [diff] [blame] | 1 | Bugfix |
| 2 | * Fix failures of PSA multipart or interruptible operations when the |
| 3 | library or the application is built with a compiler where |
| 4 | "union foo x = {0}" does not initialize non-default members of the |
| 5 | union, such as GCC 15 and some versions of Clang 18. This affected MAC |
| 6 | multipart operations, MAC-based key derivation operations, interruptible |
| 7 | signature, interruptible verification, and potentially other operations |
| 8 | when using third-party drivers. This also affected one-shot MAC |
| 9 | operations using the built-in implementation. Fixes #9814. |
| 10 | * On entry to PSA driver entry points that set up a multipart operation |
| 11 | ("xxx_setup"), the operation object is supposed to be all-bits-zero. |
| 12 | This was sometimes not the case when an operation object is reused, |
| 13 | or with compilers where "union foo x = {0}" does not initialize |
| 14 | non-default members of the union. The PSA core now ensures that this |
| 15 | guarantee is met in all cases. Fixes #9975. |