0.3.0 - Support for ALL targets, new experimental modules
New Kotlin targets
cryptography-core
andcryptography-random
modules are now supported for ALL Kotlin targets!- CryptographyRandom implementation for WasmJs and WasmWasi
- WebCrypto provider for WasmJs
- OpenSSL provider now supports ALL K/N targets (#10)
- new targets: linuxArm64, tvOS*, watchOS*, androidNative*
New features
- RSA (PSS, OAEP, PKCS1) support in Apple provider (#12)
- RSA PKCS#1 key encoding support
- New algorithm support: AES-CTR
- Support for explicitly provided IV in AES-CTR and AES-CBC
- Note: these APIs are marked as
DelicateCryptographyApi
,
and so should be used only when it's really required as they are easy to misuse
- Note: these APIs are marked as
Bug fixes
- Fix mingw linking because of zlib (#13)
Breaking changes
- Replace InsecureAlgorithm annotation with DelicateCryptographyApi - API breaking change
publicExponent
parameter in RSAkeyPairGenerator
is now of typeBigInt
- both API and ABI breaking change- RSA key formats are now implemented via
sealed class
instead ofenum
- ABI breaking change
General improvements
- Kotlin 1.9.22
- Update the prebuilt OpenSSL version to 3.2.0
- Test OpenSSL provider over 3.0, 3.1, 3.2
- A lot of changes and improvements to build, tests and CI configuration
Experimental features
- Introduce support for BigInt
- use platform specifics where possible
- RSA public exponent now works in the same way for all providers
- all Kotlin targets supported
- Introduce support for PEM encoding/decoding
- fully common implementation
- Introduce support for ASN.1/DER serialization
- fully common implementation via kotlinx.serialization
For more information please consult documentation: https://whyoleg.github.io/cryptography-kotlin/