After installing and setting up Tink, continue with Next Steps .
Compatibility
| Compatible with all libraries | Additionally compatible with Tink C++ | |
|---|---|---|
|
Language
|
C++ >= 17 | n/a |
|
OS
|
UbuntuLTS >= 20.04 (x86_64) macOS >= 12.5 Monterey (x86_64) |
Windows Server >= 2019 (x86_64) |
|
Compiler
|
GCC >= 7.5.0 Apple Clang >= 14 |
MSVC >= 2019 |
|
Build system
|
Bazel >= 7 LTS | CMake >= 3.22 |
Installation
Tink C++
The core C++ library is tink-cc with 2.5.0 as the latest release.
Bazel
Bzlmod
Add this to your MODULE.bazel
file:
bazel_dep
(
name
=
"tink_cc"
,
version
=
"2.5.0"
)
WORKSPACE
Add this to your WORKSPACE
file:
load
(
"@bazel_tools//tools/build_defs/repo:http.bzl"
,
"http_archive"
)
http_archive
(
name
=
"tink_cc"
,
urls
=
[
"https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.5.0.zip"
],
strip_prefix
=
"tink-2.5.0"
,
sha256
=
"a7a779ffacf29a48e33153439968c018ae0f6b358b8adf13ec1476180c799ffa"
,
)
load
(
"@tink_cc//:tink_cc_deps.bzl"
,
"tink_cc_deps"
)
tink_cc_deps
()
load
(
"@tink_cc//:tink_cc_deps_init.bzl"
,
"tink_cc_deps_init"
)
tink_cc_deps_init
()
CMake
Add tink-cc
as an in-tree dependency.
cmake_minimum_required
(
VERSION
3.22
)
project
(
YourProject
CXX
)
set
(
CMAKE_CXX_STANDARD_REQUIRED
ON
)
set
(
CMAKE_CXX_STANDARD
14
)
include
(
FetchContent
)
# Import Tink as an in-tree dependency.
FetchContent_Declare
(
tink
URL
https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.5.0.zip
URL_HASH
SHA256=a7a779ffacf29a48e33153439968c018ae0f6b358b8adf13ec1476180c799ffa
)
FetchContent_GetProperties
(
tink
)
if
(
NOT
googletest_POPULATED
)
FetchContent_Populate
(
tink
)
add_subdirectory
(
${
tink_SOURCE_DIR
}
${
tink_BINARY_DIR
}
EXCLUDE_FROM_ALL
)
endif
()
add_executable
(
your_app
your_app.cc
)
target_link_libraries
(
your_app
tink::static
)
AWS KMS Extension
The Tink C++ AWS KMS extension is tink-cc-awskms with 2.0.1 as the latest release.
Bazel
WORKSPACE
Add this to your WORKSPACE
file:
load
(
"@bazel_tools//tools/build_defs/repo:http.bzl"
,
"http_archive"
)
http_archive
(
name
=
"tink_cc"
,
urls
=
[
"https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.5.0.zip"
],
strip_prefix
=
"tink-2.5.0"
,
sha256
=
"a7a779ffacf29a48e33153439968c018ae0f6b358b8adf13ec1476180c799ffa"
,
)
load
(
"@tink_cc//:tink_cc_deps.bzl"
,
"tink_cc_deps"
)
tink_cc_deps
()
load
(
"@tink_cc//:tink_cc_deps_init.bzl"
,
"tink_cc_deps_init"
)
tink_cc_deps_init
()
http_archive
(
name
=
"tink_cc_awskms"
,
urls
=
[
"https://github.com/tink-crypto/tink-cc-awskms/archive/refs/tags/v2.0.1.zip"
],
strip_prefix
=
"tink-cc-awskms-2.0.1"
,
sha256
=
"366319b269f62af120ee312ce4c99ce3738ceb23ce3f9491b4859432f8b991a4"
,
)
load
(
"@tink_cc_awskms//:tink_cc_awskms_deps.bzl"
,
"tink_cc_awskms_deps"
)
tink_cc_awskms_deps
()
Google Cloud KMS Extension
The Tink C++ Google Cloud KMS extension is tink-cc-gcpkms with 2.4.0 as the latest release.
Bazel
WORKSPACE
Add this to your WORKSPACE
file:
load
(
"@bazel_tools//tools/build_defs/repo:http.bzl"
,
"http_archive"
)
http_archive
(
name
=
"tink_cc_gcpkms"
,
urls
=
[
"https://github.com/tink-crypto/tink-cc-gcpkms/releases/download/v2.4.0/tink-cc-gcpkms-2.4.0.zip"
],
strip_prefix
=
"tink-cc-gcpkms-2.4.0"
,
sha256
=
"b2c7803b03fcce2d52b15e97f871155d477ccf88b2146337d54202defd074418"
,
)
load
(
"@tink_cc_gcpkms//:tink_cc_gcpkms_deps.bzl"
,
"tink_cc_gcpkms_deps"
)
tink_cc_gcpkms_deps
()
load
(
"@tink_cc_gcpkms//:tink_cc_gcpkms_deps_init.bzl"
,
"tink_cc_gcpkms_deps_init"
)
tink_cc_gcpkms_deps_init
(
register_go
=
True
)
Next steps
Once you've finished setting up Tink, continue with the standard Tink usage steps:
- Choose a primitive – Decide which primitive to use based on your use case
- Manage keys – Protect your keys with your external KMS, generate keysets, and rotate your keys


