Typy kluczy obsługiwane przez język
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
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 |
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-25 UTC.
[null,null,["Ostatnia aktualizacja: 2025-07-25 UTC."],[[["\u003cp\u003eThe tables provide a comprehensive overview of the cryptographic primitives supported by Tink across various programming languages, including Java, C++, Objective-C, Go, and Python.\u003c/p\u003e\n"],["\u003cp\u003eSupport for specific primitives can vary depending on the chosen language and underlying cryptographic library (e.g., BoringSSL, OpenSSL).\u003c/p\u003e\n"],["\u003cp\u003eTink offers a wide range of cryptographic capabilities, encompassing AEAD, Streaming AEAD, Deterministic AEAD, MAC, PRF, Signatures, Hybrid Encryption, and JWT support.\u003c/p\u003e\n"],["\u003cp\u003eWhile most primitives are widely supported, some exceptions exist, such as limited AES-GCM functionality on older Android versions and the need for Conscrypt for AES-GCM-SIV in Java.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers should consult the tables to ensure their target language and platform support the required cryptographic primitives for their specific use case.\u003c/p\u003e\n"]]],["The content outlines the supported cryptographic primitives across different programming languages, including Java, C++, Objective-C, Go, and Python. Key actions involve identifying language support for AEAD (AES-GCM, AES-GCM-SIV, etc.), Streaming AEAD, Deterministic AEAD, MAC (HMAC-SHA2, AES-CMAC), PRF, Signature (ECDSA, Ed25519, RSA), Hybrid Encryption, JWT MAC, and JWT Signature. Each table indicates whether a specific implementation is supported (\"yes\") or not (\"no\") within each language's Tink library.\n"],null,["# Key types supported by language\n\nThe following tables list the key types each [primitive](/tink/primitives-by-language)\nsupports, classified by language.\n\nAEAD\n----\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|--------------------|----------------|-----------------|---------------|-------------|--------|--------|\n| AES-GCM | yes^[1](#fn1)^ | yes | yes | yes | yes | yes |\n| AES-GCM-SIV | yes^[2](#fn2)^ | yes | **no** | **no** | yes | yes |\n| AES-CTR-HMAC | yes | yes | yes | yes | yes | yes |\n| AES-EAX | yes | yes | yes | yes | **no** | yes |\n| KMS Envelope | yes | yes | yes | **no** | yes | yes |\n| CHACHA20-POLY1305 | yes | **no** | **no** | **no** | yes | **no** |\n| XCHACHA20-POLY1305 | yes | yes | **no** | yes | yes | yes |\n\nStreaming AEAD\n--------------\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|------------------------|------|-----------------|---------------|-------------|-----|--------|\n| AES-GCM-HKDF-STREAMING | yes | yes | yes | **no** | yes | yes |\n| AES-CTR-HMAC-STREAMING | yes | yes | yes | **no** | yes | yes |\n\nDeterministic AEAD\n------------------\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|----------------|------|-----------------|---------------|-------------|-----|--------|\n| AES-SIV | yes | yes | yes | yes | yes | yes |\n\nMAC\n---\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|----------------|------|-----------------|---------------|-------------|-----|--------|\n| HMAC-SHA2 | yes | yes | yes | yes | yes | yes |\n| AES-CMAC | yes | yes | yes | yes | yes | yes |\n\nPRF\n---\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|----------------|------|-----------------|---------------|-------------|-----|--------|\n| HKDF-SHA2 | yes | yes | yes | **no** | yes | yes |\n| HMAC-SHA2 | yes | yes | yes | **no** | yes | yes |\n| AES-CMAC | yes | yes | yes | **no** | yes | yes |\n\nSignature\n---------\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|------------------------|------|-----------------|---------------|-------------|-----|--------|\n| ECDSA over NIST curves | yes | yes | yes | yes | yes | yes |\n| Ed25519 | yes | yes | yes | yes | yes | yes |\n| RSA-SSA-PKCS1 | yes | yes | yes | yes | yes | yes |\n| RSA-SSA-PSS | yes | yes | yes | yes | yes | yes |\n\nHybrid Encryption\n-----------------\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|---------------------------------------|----------------|-----------------|---------------|-------------|-----|--------|\n| HPKE | yes | yes | **no** | **no** | yes | yes |\n| ECIES with AEAD and HKDF | yes^[3](#fn3)^ | yes | yes | yes | yes | yes |\n| ECIES with DeterministicAEAD and HKDF | yes^[4](#fn4)^ | yes | yes | **no** | yes | yes |\n\nJWT MAC\n-------\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|----------------|------|-----------------|---------------|-------------|-----|--------|\n| JWT HMAC-SHA2 | yes | yes | yes | **no** | yes | yes |\n\nJWT Signature\n-------------\n\n| Implementation | Java | C++ (BoringSSL) | C++ (OpenSSL) | Objective-C | Go | Python |\n|----------------------------|------|-----------------|---------------|-------------|-----|--------|\n| JWT ECDSA over NIST curves | yes | yes | yes | **no** | yes | yes |\n| JWT RSA-SSA-PKCS1 | yes | yes | yes | **no** | yes | yes |\n| JWT RSA-SSA-PSS | yes | yes | yes | **no** | yes | yes |\n\n*** ** * ** ***\n\n1. AES-GCM does not work [properly](/tink/issues/aes_gcm_android_19) on Android \\\u003c=19. [↩](#fnref1)\n\n2. Requires Conscrypt to be installed as a JCE security provider. [↩](#fnref2)\n\n3. Requires a NIST curve. [↩](#fnref3)\n\n4. Requires a NIST curve. [↩](#fnref4)"]]