@@ -8,6 +8,8 @@ On current moment following providers are available out of the box:
8
8
[ WebCrypto] ( https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API )
9
9
* [ Apple] ( ../modules/cryptography-provider-apple.md ) - via
10
10
[ CommonCrypto] ( https://developer.apple.com/library/archive/documentation/Security/Conceptual/cryptoservices/Introduction/Introduction.html )
11
+ * [ CryptoKit] ( ../modules/cryptography-provider-cryptokit.md ) - via
12
+ [ CryptoKit] ( https://developer.apple.com/documentation/cryptokit/ )
11
13
* [ OpenSSL3] ( ../modules/cryptography-provider-openssl3.md ) - via [ OpenSSL 3.x] ( https://www.openssl.org ) ,
12
14
statically linked to prebuilt OpenSSL 3.3.2 or dynamically linked (experimental)
13
15
@@ -23,19 +25,19 @@ For additional limitation please consult provider specific documentation.
23
25
24
26
### Supported targets per provider
25
27
26
- | Target | jdk | webcrypto | apple | openssl3 |
27
- | -----------------------------------------------------------------------------------------------| -----| -----------| -------| -----------------|
28
- | jvm | ✅ | ➖ | ➖ | ❌ |
29
- | js | ➖ | ✅ | ➖ | ❌ |
30
- | wasmJs | ➖ | ✅ | ➖ | ❌ |
31
- | wasmWasi | ➖ | ➖ | ➖ | ❌ |
32
- | iosX64<br />iosSimulatorArm64<br />iosArm64 | ➖ | ➖ | ✅ | ✅ prebuilt only |
33
- | watchosX64<br />watchosArm32<br />watchosArm64<br />watchosSimulatorArm64<br />watchosDeviceArm64 | ➖ | ➖ | ✅ | ✅ prebuilt only |
34
- | tvosX64<br />tvosArm64<br />tvosSimulatorArm64 | ➖ | ➖ | ✅ | ✅ prebuilt only |
35
- | macosX64<br />macosArm64 | ➖ | ➖ | ✅ | ✅ |
36
- | linuxX64<br />linuxArm64 | ➖ | ➖ | ➖ | ✅ |
37
- | mingwX64 | ➖ | ➖ | ➖ | ✅ |
38
- | androidNativeX64<br />androidNativeX86<br />androidNativeArm64<br />androidNativeArm32 | ➖ | ➖ | ➖ | ✅ prebuilt only |
28
+ | Target | jdk | webcrypto | apple | cryptokit | openssl3 |
29
+ | -----------------------------------------------------------------------------------------------| -----| -----------| -------| --------------------------- | ----------------- |
30
+ | jvm | ✅ | ➖ | ➖ | ➖ | ❌ |
31
+ | js | ➖ | ✅ | ➖ | ➖ | ❌ |
32
+ | wasmJs | ➖ | ✅ | ➖ | ➖ | ❌ |
33
+ | wasmWasi | ➖ | ➖ | ➖ | ➖ | ❌ |
34
+ | iosX64<br />iosSimulatorArm64<br />iosArm64 | ➖ | ➖ | ✅ | ✅ | ✅ prebuilt only |
35
+ | watchosX64<br />watchosArm32<br />watchosArm64<br />watchosSimulatorArm64<br />watchosDeviceArm64 | ➖ | ➖ | ✅ | ✅ (except ` watchosArm32 ` ) | ✅ prebuilt only |
36
+ | tvosX64<br />tvosArm64<br />tvosSimulatorArm64 | ➖ | ➖ | ✅ | ✅ | ✅ prebuilt only |
37
+ | macosX64<br />macosArm64 | ➖ | ➖ | ✅ | ✅ | ✅ |
38
+ | linuxX64<br />linuxArm64 | ➖ | ➖ | ➖ | ➖ | ✅ |
39
+ | mingwX64 | ➖ | ➖ | ➖ | ➖ | ✅ |
40
+ | androidNativeX64<br />androidNativeX86<br />androidNativeArm64<br />androidNativeArm32 | ➖ | ➖ | ➖ | ➖ | ✅ prebuilt only |
39
41
40
42
> ✅ : supported
41
43
>
@@ -48,31 +50,31 @@ For additional limitation please consult provider specific documentation.
48
50
> ` supported ` here means that those algorithms are tested and works at least in some configuration
49
51
> (f.e. different Java versions or Java providers can have different algorithms supported)
50
52
51
- | Operation | Algorithm | jdk | webcrypto | apple | openssl3 |
52
- | ---------------------------------------------| ------------------| :---:| :---------:| :-----:| :--------:|
53
- | ** Digest** | ⚠️ MD5 | ✅ | ❌ | ✅ | ✅ |
54
- | | ⚠️ SHA1 | ✅ | ✅ | ✅ | ✅ |
55
- | | SHA224 | ✅ | ❌ | ✅ | ✅ |
56
- | | SHA256 | ✅ | ✅ | ✅ | ✅ |
57
- | | SHA384 | ✅ | ✅ | ✅ | ✅ |
58
- | | SHA512 | ✅ | ✅ | ✅ | ✅ |
59
- | | SHA3 family | ✅ | ❌ | ❌ | ✅ |
60
- | | ⚠️ RIPEMD160 | ✅ | ❌ | ❌ | ✅ |
61
- | ** MAC** | HMAC | ✅ | ✅ | ✅ | ✅ |
62
- | | CMAC | ✅ | ❌ | ❌ | ✅ |
63
- | ** Symmetric-key<br />encryption/decryption** | AES-CBC | ✅ | ✅ | ✅ | ✅ |
64
- | | AES-CTR | ✅ | ✅ | ✅ | ✅ |
65
- | | AES-GCM | ✅ | ✅ | ❌ | ✅ |
66
- | | ⚠️ AES-ECB | ✅ | ❌ | ✅ | ✅ |
67
- | ** Public-key<br />encryption/decryption** | RSA-OAEP | ✅ | ✅ | ✅ | ✅ |
68
- | | ⚠️ RSA-PKS1-v1_5 | ✅ | ❌ | ✅ | ✅ |
69
- | | ⚠️ RSA-RAW | ✅ | ❌ | ✅ | ✅ |
70
- | ** Digital Signatures** | ECDSA | ✅ | ✅ | ✅ | ✅ |
71
- | | RSA-SSA-PSS | ✅ | ✅ | ✅ | ✅ |
72
- | | RSA-PKS1-v1_5 | ✅ | ✅ | ✅ | ✅ |
73
- | ** Key Agreement** | ECDH | ✅ | ✅ | ❌ | ✅ |
74
- | ** PRF/KDF** | PBKDF2 | ✅ | ✅ | ✅ | ✅ |
75
- | | HKDF | ✅ | ✅ | ✅ | ✅ |
53
+ | Operation | Algorithm | jdk | webcrypto | apple | cryptokit | openssl3 |
54
+ | ---------------------------------------------| ------------------| :---:| :---------:| :-----:| ----------- | :--------:|
55
+ | ** Digest** | ⚠️ MD5 | ✅ | ❌ | ✅ | ✅ | ✅ |
56
+ | | ⚠️ SHA1 | ✅ | ✅ | ✅ | ✅ | ✅ |
57
+ | | SHA224 | ✅ | ❌ | ✅ | ❌ | ✅ |
58
+ | | SHA256 | ✅ | ✅ | ✅ | ✅ | ✅ |
59
+ | | SHA384 | ✅ | ✅ | ✅ | ✅ | ✅ |
60
+ | | SHA512 | ✅ | ✅ | ✅ | ✅ | ✅ |
61
+ | | SHA3 family | ✅ | ❌ | ❌ | ❌ | ✅ |
62
+ | | ⚠️ RIPEMD160 | ✅ | ❌ | ❌ | ❌ | ✅ |
63
+ | ** MAC** | HMAC | ✅ | ✅ | ✅ | ✅ | ✅ |
64
+ | | CMAC | ✅ | ❌ | ❌ | ❌ | ✅ |
65
+ | ** Symmetric-key<br />encryption/decryption** | AES-CBC | ✅ | ✅ | ✅ | ❌ | ✅ |
66
+ | | AES-CTR | ✅ | ✅ | ✅ | ❌ | ✅ |
67
+ | | AES-GCM | ✅ | ✅ | ❌ | ✅ | ✅ |
68
+ | | ⚠️ AES-ECB | ✅ | ❌ | ✅ | ❌ | ✅ |
69
+ | ** Public-key<br />encryption/decryption** | RSA-OAEP | ✅ | ✅ | ✅ | ❌ | ✅ |
70
+ | | ⚠️ RSA-PKS1-v1_5 | ✅ | ❌ | ✅ | ❌ | ✅ |
71
+ | | ⚠️ RSA-RAW | ✅ | ❌ | ✅ | ❌ | ✅ |
72
+ | ** Digital Signatures** | ECDSA | ✅ | ✅ | ✅ | ✅ | ✅ |
73
+ | | RSA-SSA-PSS | ✅ | ✅ | ✅ | ❌ | ✅ |
74
+ | | RSA-PKS1-v1_5 | ✅ | ✅ | ✅ | ❌ | ✅ |
75
+ | ** Key Agreement** | ECDH | ✅ | ✅ | ❌ | ✅ | ✅ |
76
+ | ** PRF/KDF** | PBKDF2 | ✅ | ✅ | ✅ | ❌ | ✅ |
77
+ | | HKDF | ✅ | ✅ | ✅ | ✅ | ✅ |
76
78
77
79
> ⚠️ : use carefully
78
80
>
0 commit comments