W tabelach poniżej znajdziesz typy kluczy obsługiwane przez poszczególne typy proste, podzielone według języka.
AEAD
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-GCM | yes1 | tak | tak | tak | tak | tak |
| AES-GCM-SIV | tak2 | tak | no | no | tak | tak |
| AES-CTR-HMAC | tak | tak | tak | tak | tak | tak |
| AES-EAX | tak | tak | tak | tak | no | tak |
| KMS Envelope | tak | tak | tak | no | tak | tak |
| CHACHA20-POLY1305 | tak | no | no | no | tak | no |
| XCHACHA20-POLY1305 | tak | tak | no | tak | tak | tak |
Strumieniowe AEAD
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-GCM-HKDF-STREAMING | tak | tak | tak | no | tak | tak |
| AES-CTR-HMAC-STREAMING | tak | tak | tak | no | tak | tak |
Deterministyczne AEAD
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-SIV | tak | tak | tak | tak | tak | tak |
MAC
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HMAC-SHA2 | tak | tak | tak | tak | tak | tak |
| AES-CMAC | tak | tak | tak | tak | tak | tak |
PRF
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HKDF-SHA2 | tak | tak | tak | no | tak | tak |
| HMAC-SHA2 | tak | tak | tak | no | tak | tak |
| AES-CMAC | tak | tak | tak | no | tak | tak |
Podpis
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| ECDSA na krzywych NIST | tak | tak | tak | tak | tak | tak |
| Ed25519 | tak | tak | tak | tak | tak | tak |
| RSA-SSA-PKCS1 | tak | tak | tak | tak | tak | tak |
| RSA-SSA-PSS | tak | tak | tak | tak | tak | tak |
| ML-DSA | tak (65) | tak (65, 87) | nie | nie | tak (44, 65, 87) | nie |
| SLH-DSA (SHA2-128S) | tak | tak | nie | nie | tak | nie |
Szyfrowanie hybrydowe
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HPKE | tak | tak | no | no | tak | tak |
| ECIES z AEAD i HKDF | tak3 | tak | tak | tak | tak | tak |
| ECIES z DeterministicAEAD i HKDF | tak4 | tak | tak | no | tak | tak |
JWT MAC
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| JWT HMAC-SHA2 | tak | tak | tak | no | tak | tak |
Podpis JWT
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| JWT ECDSA na krzywych NIST | tak | tak | tak | no | tak | tak |
| JWT RSA-SSA-PKCS1 | tak | tak | tak | no | tak | tak |
| JWT RSA-SSA-PSS | tak | tak | tak | no | tak | tak |
-
AES-GCM nie działa prawidłowo na Androidzie w wersji <=19. ↩
-
Wymaga zainstalowania Conscrypt jako dostawcy zabezpieczeń JCE. ↩
-
Wymaga krzywej NIST. ↩
-
Wymaga krzywej NIST. ↩