|
1 | 1 | # CHANGELOG
|
2 | 2 |
|
| 3 | +## 0.4.0 – Secret derivation, more algorithms, kotlinx-io |
| 4 | + |
| 5 | +> Published 12 Oct 2024 |
| 6 | +
|
| 7 | +### Features |
| 8 | + |
| 9 | +* Ecliptic curves improvements: |
| 10 | + * Implement ECDH via a new shared secret derivation API |
| 11 | + * Support ECDSA in Apple provider |
| 12 | + * Support both ECDSA signature formats for all providers |
| 13 | + * Added RAW private key encoding (encoding secret value) |
| 14 | + * Added SEC1/RFC5915 private key encoding |
| 15 | +* New algorithms: |
| 16 | + * Support for PBKDF2 and HKDF via a new secret derivation API |
| 17 | + * Legacy algorithms supported. Make sure you really need them before use: |
| 18 | + * AES-ECB – JDK name AES/ECB/PKCS1Padding or AES/ECB/NoPadding |
| 19 | + * RSA-PKCS1 (encryption) – JDK name RSA/ECB/PKCS1Padding |
| 20 | + * RSA (encryption) – JDK name RSA/ECB/NoPadding |
| 21 | +* IO improvements and kotlinx-io integration: |
| 22 | + * Support `ByteString` in places where `ByteArray` is used |
| 23 | + * Incremental hashing and signature generation/verification via `HashFunction`, `SignFunction` and `VerifyFunction` |
| 24 | + * Support hash/sign/verify over kotlinx-io `Sink` and `Source` |
| 25 | + * Support for streaming encryption/decryption over kotlinx-io `Sink` and `Source` |
| 26 | +* Add the ability to use custom IV in AES-GCM ([#38](https://github.com/whyoleg/cryptography-kotlin/pull/38)) |
| 27 | +* Allow arbitrary key sizes in HMAC |
| 28 | + |
| 29 | +### Breaking changes |
| 30 | + |
| 31 | +* Drop default signature format parameter for ECDSA |
| 32 | +* Rename some parameters in algorithms/operations to have better clarity and less noise |
| 33 | +* Rename `PEM` and `DER` to `Pem` and `Der` respectively |
| 34 | +* Move operations from subpackages to `operations` package |
| 35 | + * `dev.whyoleg.cryptography.operations.hash.Hasher` was moved to `dev.whyoleg.cryptography.operations.Hasher` |
| 36 | + * `dev.whyoleg.cryptography.operations.cipher.*` was moved to `dev.whyoleg.cryptography.operations.*` |
| 37 | + * `dev.whyoleg.cryptography.operations.signature.*` was moved to `dev.whyoleg.cryptography.operations.*` |
| 38 | + * Old declarations are deprecated for removal with `ReplaceWith` |
| 39 | +* Move algorithms from subpackages to `algorithms` package |
| 40 | + * `dev.whyoleg.cryptography.algorithms.digest.*` was moved to `dev.whyoleg.cryptography.algorithms.*` |
| 41 | + * `dev.whyoleg.cryptography.algorithms.symmetric.*` was moved to `dev.whyoleg.cryptography.algorithms.*` |
| 42 | + * `dev.whyoleg.cryptography.algorithms.asymmetric.*` was moved to `dev.whyoleg.cryptography.algorithms.*` |
| 43 | + * Old declarations are deprecated for removal with `ReplaceWith` |
| 44 | +* `SymmetricKeySize` was deprecated in favor of `AES.Key.Size` properties |
| 45 | +* `SignatureVerifier.verifySignature` now throws on invalid signature instead of returning `Boolean` |
| 46 | + * `SignatureVerifier.tryVerifySignature` is introduced for rare cases when graceful handling is needed |
| 47 | +* Renamed AES methods with explicitly provided IV from `encrypt(iv)`/`decrypt(iv)` to `encryptWithIv(iv)`/`decryptWithIv(iv)` to be more |
| 48 | + explicit and better distinguish implcit and explict cases |
| 49 | +* `CryptographyException` is no longer used: `IllegalStateException` is thrown instead |
| 50 | + |
| 51 | +### Other improvements |
| 52 | + |
| 53 | +* Kotlin 2.0.20 |
| 54 | +* Update the prebuilt OpenSSL version to 3.3.2 |
| 55 | +* Improve ASN.1/DER encoding feature coverage: |
| 56 | + * support Context specific tags, both implicit and explicit |
| 57 | + * fully support optional and default properties |
| 58 | + * support Kotlin inline classes |
| 59 | + * add more ASN.1 modules for RSA and EC |
| 60 | +* Make `ServiceLoader` usage to be optimized by Android R8 |
| 61 | + |
3 | 62 | ## 0.3.1
|
4 | 63 |
|
5 | 64 | > Published 21 May 2024
|
|
36 | 95 | * Replace InsecureAlgorithm annotation with DelicateCryptographyApi - API breaking change
|
37 | 96 | * `publicExponent` parameter in RSA `keyPairGenerator` is now of type `BigInt` - both API and ABI breaking change
|
38 | 97 | * RSA key formats are now implemented via `sealed class` instead of `enum` - ABI breaking change
|
39 |
| -* |
40 | 98 |
|
41 | 99 | ### General improvements
|
42 | 100 |
|
|
0 commit comments