W tabelach poniżej znajdziesz typy kluczy obsługiwane przez poszczególne elementy podstawowe, sklasyfikowane według języka.
program AEAD,
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-GCM | tak1 | 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 |
| Koperta KMS | tak | tak | tak | no | tak | tak |
| CHACHA20-POLY1305 | tak | no | no | no | tak | no |
| XCHACHA20-POLY1305 | tak | tak | no | tak | tak | tak |
Strumieniowe przesyłanie 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 |
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 DeterminismAEAD i HKDF | tak4 | tak | tak | no | tak | tak |
Adres MAC JWT
| Implementacja | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HMAC-SHA2 tokena JWT | 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. ↩