|
1 | 1 | # CHANGELOG
|
2 | 2 |
|
| 3 | +## Version 0.2.5 (2023-06-08) |
| 4 | + - Fixes Android API 21-23 requiring a `Provider` in order to set |
| 5 | + `javax.crypto.Mac.spiImpl` when `javax.crypto.Mac.init` is |
| 6 | + invoked [[#44]][44] |
| 7 | + - Throw `InvalidKeyException` if `javax.crypto.Mac.init` is invoked [[#43]][43] |
| 8 | + - All `org.kotlincrypto.core.Mac` APIs are constructed such that |
| 9 | + implementations always require a key as a constructor argument |
| 10 | + and are initialized immediately. As such, if a java caller |
| 11 | + attempts to re-initialize the `Mac` with a different key, they |
| 12 | + may assume the output thus produced is using the new key. This |
| 13 | + is not the case as `Kotlin Crypto` does not use a provider based |
| 14 | + architecture so a new, uninitialized `Mac` cannot be created. |
| 15 | + - Note that `Mac.init` is **not** available from `commonMain`. It is |
| 16 | + a remnant of bad API design requiring ability to lazily initialize |
| 17 | + things which `Kotlin Crypto` will **never** support as it leads |
| 18 | + to monolithic structures, instead of building on good abstractions. |
| 19 | + If `Mac.init` is required to be called, a wholly new instance of the |
| 20 | + `org.kotlincrypto.core.Mac` implementation should be instantiated |
| 21 | + with the new key. |
| 22 | + |
3 | 23 | ## Version 0.2.5 (2023-06-07)
|
4 | 24 | - Fixes Android API 23 and below not accepting `null` for `Mac.init` key
|
5 | 25 | parameter [[#38]][38]
|
|
47 | 67 | [36]: https://github.com/KotlinCrypto/core/pull/36
|
48 | 68 | [38]: https://github.com/KotlinCrypto/core/pull/38
|
49 | 69 | [40]: https://github.com/KotlinCrypto/core/pull/40
|
| 70 | +[43]: https://github.com/KotlinCrypto/core/pull/43 |
| 71 | +[44]: https://github.com/KotlinCrypto/core/pull/44 |
0 commit comments