Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.
This is Tink Go GCP KMS 2.3.0
What's new
The complete list of changes since 2.2.0 can be found here.
- Added conventional asymmetric signing capabilities
- Added post-quantum asymmetric signing capabilities
- Added support for MAC computation and verification.
- Removed Bazel config. With this change Bazel users will no longer be able to
import tink-go-gcpkms as a pure Bazel dependency (bazel_dep) in their
MODULE.bazelfile. However, Bazel users can continue importing tink-go
using bazel-gazelle. If this
causes any issues in your project, please file an issue. - Upgraded direct deps:
github.com/tink-crypto/tink-go/v2to v2.4.0google.golang.org/apito v0.248.0cloud.google.com/go/kmsto v1.22.0google.golang.org/grpcto v1.75.0google.golang.org/protobufto v1.36.6google.golang.org/genprototo v0.0.0-20250826171959-ef028d996bc1
- Set minimum supported Go version to 1.24.0
Future work
To see what we're working towards, check our
project roadmap.
Get started
To get started using Tink, see
the setup guide.
Go tooling
go get github.com/tink-crypto/tink-go-gcpkms/v2@v2.3.0Bazel
workspace(name = "example")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# Release X.25.2 from 2024-01-09.
http_archive(
name = "com_google_protobuf",
sha256 = "5e8e2b369a6fcaa24fada21135782eef147aec467cd286c108936a3277e88d2b",
strip_prefix = "protobuf-25.2",
urls = ["https://github.com/protocolbuffers/protobuf/releases/download/v25.2/protobuf-25.2.zip"],
)
# Release from 2023-04-20
http_archive(
name = "io_bazel_rules_go",
sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
],
)
# Release from 2023-01-14
http_archive(
name = "bazel_gazelle",
sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
],
)
# [Optional]: tink-go is imported as a go_repository by tink_go_gcpkms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# http_archive(
# name = "com_github_tink_crypto_tink_go_v2",
# urls = ["https://github.com/tink-crypto/tink-go/releases/download/v2.1.0/tink-go-2.1.0.zip"],
# strip_prefix = "tink-go-2.1.0",
# sha256 = "84b4b233fb20b570812e61ccb134d230222b79d2fd765c1d57352a53d439d746",
# )
http_archive(
name = "com_github_tink_crypto_tink_go_gcpkms",
urls = ["https://github.com/tink-crypto/tink-go-gcpkms/releases/download/v2.3.0/tink-go-gcpkms-2.3.0.zip"],
strip_prefix = "tink-go-gcpkms-2.3.0",
sha256 = "f1a91a1e3a39b7d8b0f8894e5e4c365535e695ed7634935622ade433b3e1a1bd",
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
# [Optional]: tink-go is imported as a go_repository by tink_go_gcpkms_dependencies.
# this is needed only if the user wants to pin to a specific commit/version of tink-go.
# load("@com_github_tink_crypto_tink_go_v2//:deps.bzl", tink_go_dependencies="go_dependencies")
#
# tink_go_dependencies()
load("@com_github_tink_crypto_tink_go_gcpkms//:deps.bzl", "tink_go_gcpkms_dependencies")
tink_go_gcpkms_dependencies()
#######################################
#
# Your project dependencies here.
#
#######################################
go_rules_dependencies()
go_register_toolchains(version = "1.20.13")
gazelle_dependencies()