Tink C++ 2.0.0
Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.
This is Tink C++ 2.0.0
To get started using Tink, see the setup guide.
CMake
You can import Tink C++ as an in-tree dependency.
cmake_minimum_required(VERSION 3.13)
project(Example CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_BUILD_TYPE Release)
# Assumes tink-cc is in third_party.
add_subdirectory(third_party/tink-cc tink)
add_executable(example_app example_app.cc)
target_link_libraries(example_app tink::static)
Bazel
workspace(name = "example")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "com_github_tink_crypto_tink_cc",
urls = ["https://github.com/tink-crypto/tink-cc/archive/refs/tags/v2.0.0.zip"],
strip_prefix = "tink-cc-2.0.0",
sha256 = "103ddfce800e77f3b3b6b2c808a8611bc734b31ddb12fbcfd8bebc1b96a7e963",
)
# Load Tink dependencies.
load("@com_github_tink_crypto_tink_cc//:tink_cc_deps.bzl", "tink_cc_deps")
tink_cc_deps()
load("@com_github_tink_crypto_tink_cc//:tink_cc_deps_init.bzl", "tink_cc_deps_init")
tink_cc_deps_init()
# ... Your dependencies here ...
WARNING: Different from 1.7.0, labels are now prefixed by
tink
: for example@tink_cc
becomes@tink_cc//tink:tink_cc
, or@tink_cc//aead/...
becomes
@tink_cc//tink/aead/...
.Bazel users of Tink can use the script
tools/update_build_files_for_tink_2_0_bazel.sh
to apply the necessary Bazel changes to their > BUILD files:cd <path/to/tink_cc> bazel run //tools:update_build_files_for_tink_2_0_bazel -- <path/to/you/project/root> \ <tink-cc repository name>
WARNING: KMS extensions are now published in separate repositories:
What's new
This is the first release from https://github.com/tink-crypto/tink-cc.
The complete list of changes since 1.7.0 can be found here.
- Upgraded to use Bazel 6.0.0
- Changed minimum C++ version to C++14
- Changed minimum version of CMake to 3.13
- Changed the structure of the repository adding sources to
tink
. As a consequence, target labels are now prefixed withtink
, for example@tink_cc
becomes@tink_cc//tink:tink_cc
, or@tink_cc//aead/...
becomes@tink_cc//tink/aead/...
. - KMS extensions are now published to separate repositories:
- Upgraded dependencies:
- Abseil LTS 20230125
- BoringSSL (Commit from 2023-02-15)
- Protobuf X.21.9
- Added support for building on Windows with Microsoft Visual Studio 2019 version 16.10.4.0 or later with CMake and Bazel
- Added walkthrough examples and ability to build examples with CMake
- Added new keyset handle APIs (experimental)
- Added/upgraded CI test scripts
- Removed deprecated APIs:
- Make
util::Status
an alias ofabsl::Status
(commits: #1, #2)