Các loại khoá được hỗ trợ theo ngôn ngữ
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Các bảng sau liệt kê các loại khoá mà mỗi chính hỗ trợ, được phân loại theo ngôn ngữ.
AEAD (mã xác thực điện tử)
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
AES-GCM |
có1 |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
AES-GCM-SIV |
có2 |
đồng ý |
no |
no |
đồng ý |
đồng ý |
AES-CTR-HMAC |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
AES-EAX |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
Phong bì KMS |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
CHACHA20-POLY1305 |
đồng ý |
no |
no |
no |
đồng ý |
no |
XCHACHA20-POLY1305 |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
đồng ý |
Phát trực tuyến AEAD
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
AES-GCM-HKDF-STREAMING |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
AES-CTR-HMAC-STREAMING |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
AEAD xác định
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
AES-SIV |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
Địa chỉ MAC
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
HMAC-SHA2 |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
AES-CMAC |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
PRF
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
HKDF–SHA2 |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
HMAC-SHA2 |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
AES-CMAC |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
Chữ ký
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
ECDSA so với đường cong NIST |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
Ed25519 |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
RSA-SSA-PKCS1 |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
RSA-SSA-PSS |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
Mã hoá kết hợp
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
HPKE |
đồng ý |
đồng ý |
no |
no |
đồng ý |
đồng ý |
ECIES với AEAD và HKDF |
có3 |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
đồng ý |
ECIES với DeterministicAEAD và HKDF |
có4 |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
Địa chỉ MAC trên JWT
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
JWT HMAC-SHA2 |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
Chữ ký JWT
Triển khai |
Java |
C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C |
Go |
Python |
JWT ECDSA trên đường cong NIST |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
JWT RSA-SSA-PKCS1 |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
JWT RSA-SSA-PSS |
đồng ý |
đồng ý |
đồng ý |
no |
đồng ý |
đồng ý |
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-07-25 UTC.
[null,null,["Cập nhật lần gần đây nhất: 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)"]]