Skip to content

Commit c4edeff

Browse files
committed
Changelog for 0.4.0
1 parent 594f27e commit c4edeff

File tree

1 file changed

+59
-1
lines changed

1 file changed

+59
-1
lines changed

CHANGELOG.md

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,64 @@
11
# CHANGELOG
22

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+
362
## 0.3.1
463

564
> Published 21 May 2024
@@ -36,7 +95,6 @@
3695
* Replace InsecureAlgorithm annotation with DelicateCryptographyApi - API breaking change
3796
* `publicExponent` parameter in RSA `keyPairGenerator` is now of type `BigInt` - both API and ABI breaking change
3897
* RSA key formats are now implemented via `sealed class` instead of `enum` - ABI breaking change
39-
*
4098

4199
### General improvements
42100

0 commit comments

Comments
 (0)