Skip to content

Releases: tink-crypto/tink-py

Tink Python v1.12.0

05 Jun 10:11
Compare
Choose a tag to compare

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Python 1.12

The complete list of changes since 1.11.0 can be found here.

What's new

Bug Fixes

  • Validate output returned by ciphertext_destination in streamingaead. This prevents segmentation faults if the underlying stream reports back too many bytes written. See #43.

Features

  • Added support for Python 3.13.
  • Added support for passing robot credentials in the GcpKmsClient.

Dependency updates

  • New dependencies:
    • bazel-runfiles (=> 1.3.0), only needed for tests.
  • Updated deps:
    • protobuf (=> 6.30.2)
  • Dependency changes when building with Bazel:
    • Bazel (=> 8.2.1)
    • Added platforms (0.0.11)
    • Updated pybind11_bazel (=> 2.13.6)
    • Updated rules_python (=> 1.4.0)
  • Dropped support for Python 3.8.
  • Added support for Python 3.13.
  • Renamed the file "VERSION" to "TINK_VERSION.txt" in order to avoid build problems on Windows.
  • When building Tink Python with Bazel we now use bzlmod. Since pip install for the sdist (source distribution) uses Bazel, this impacts how Tink is built for people using sdist.

Get started

To get started using Tink, see the setup guide.

Pip

# Core Tink.
pip3 install tink==<VERSION>
# Core Tink + Google Cloud KMS extension.
pip3 install tink[gcpkms]==<VERSION>
# Core Tink + AWS KMS extension.
pip3 install tink[awskms]==<VERSION>
# Core Tink + HashiCorp Vault KMS extension.
pip3 install tink[hcvault]==<VERSION>
# Core Tink + all the KMS extensions.
pip3 install tink[all]==<VERSION>

Bazel

Tink Python can be used in a Bazel project as a pip dependency using rules_python’s pip_parse macro.

v1.11.0

18 Mar 21:18
Compare
Choose a tag to compare

Tink is a multi-language, cross-platform library that provides simple and
misuse-proof APIs for common cryptographic tasks.

This is Tink Python 1.11.0

What's new

The complete list of changes since 1.10.0 can be found
here.

  • Add support for X-AES-GCM.
  • Allow GCP KMS key URIs with crypto key versions.
  • Minimum required macOS version is now 11.0.
  • Dependency upgrades:
    • abseil-cpp (=> 20240722.0)
    • bazel (=> 6.5.0)
    • tink-cc (=> 2.3.0)
    • absl-py (=> 2.1.0)
    • google-auth (=> 2.38.0)
    • google-api-core (=> 2.24.1)
    • google-cloud-kms (=> 3.4.0)
    • boto3 (=> 1.36.8)
    • hvac (=> 2.3.0)
    • protobuf (=> 5.29.3)

Get started

To get started using Tink, see the setup guide.

Pip

# Core Tink.
pip3 install tink==1.11.0
# Core Tink + Google Cloud KMS extension.
pip3 install tink[gcpkms]==1.11.0
# Core Tink + AWS KMS extension.
pip3 install tink[awskms]==1.11.0
# Core Tink + HashiCorp Vault KMS extension.
pip3 install tink[hcvault]==1.11.0
# Core Tink + all the KMS extensions.
pip3 install tink[all]==1.11.0

Bazel

Tink Python can be used in a Bazel project as a pip dependency using rules_python’s pip_parse macro.

v1.10.0

02 May 07:10
Compare
Choose a tag to compare

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Python 1.10.0

What's new

This is the first release from https://github.com/tink-crypto/tink-py.

The complete list of changes since 1.9.0 can be found here.

  • Added support:
    • Python 3.12
    • MS Windows (MSVC >= 2019)
    • HashiCorp Vault; added a KMS extension providing a hcvault.new_aead API to create an AEAD that interacts with a Vault server.
  • The the unused keyset_info metadata in encrypted keysets produced with tink.BinaryKeysetWriter and tink.proto_keyset_format.serialize_encrypted is not written anymore. This results in smaller keysets. tink.JsonKeysetWriter and tink.json_proto_keyset_format.serialize_encrypted are unchanged and still output keyset_info.
  • Added/upgraded deps:
    • tink-cc => 2.1.3
    • Bazel => 6.4.0
    • pybind11_bazel => v2.11.1.bzl.1
    • hvac>=1.1.1 (when using the hcvault extras)
    • rules_python => 0.31.0
  • PRF keys that don't use RAW output prefix type are now rejected.
  • Disallow using pickle on KeysetHandle objects making __getstate__ and __setstate__ raise a TinkError; this intends to prevent unintentional serialization of keyset handles which may leak keys. To serialize the KeysetHandle, use tink.proto_keyset_format or tink.json_proto_keyset_format. If this breaks your code, please file an issue on https://github.com/tink-crypto/tink-python.
  • Bazel build:
    • Updated tink_py_deps() to include all direct dependencies
    • Added tink_py_testonly_deps() to include test-only dependencies

To see what we're working towards, check our project roadmap.

Get started

To get started using Tink, see the setup guide.

Pip

# Core Tink.
pip3 install tink==1.10.0
# Core Tink + Google Cloud KMS extension.
pip3 install tink[gcpkms]==1.10.0
# Core Tink + AWS KMS extension.
pip3 install tink[awskms]==1.10.0
# Core Tink + HashiCorp Vault KMS extension.
pip3 install tink[hcvault]==1.10.0
# Core Tink + all the KMS extensions.
pip3 install tink[all]==1.10.0

Bazel

Tink Python can be used in a Bazel project as a pip dependency using rules_python’s pip_parse macro

Alternatively, tink-py can be added as a Bazel build dependency to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "tink_py",
    urls = ["https://github.com/tink-crypto/tink-py/releases/download/v1.10.0/tink-py-1.10.0.zip"],
    strip_prefix = "tink-py-1.10.0",
    sha256 = "767453aae4aad6de4fbb4162992184aa427b7b27864fe9912c270b24c673e1cc",
)

load("@tink_py//:tink_py_deps.bzl", "tink_py_deps")
tink_py_deps()

// New
load("@rules_python//python:repositories.bzl", "py_repositories")
// New
py_repositories()

load("@tink_py//:tink_py_deps_init.bzl", "tink_py_deps_init")
tink_py_deps_init("tink_py")

Tink Python 1.9.0

27 Nov 12:21
Compare
Choose a tag to compare

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Python 1.9.0

What's new

This is the first release from https://github.com/tink-crypto/tink-py.

The complete list of changes since 1.8.0 can be found here.

To see what we're working towards, check our project roadmap.

Get started

To get started using Tink, see the setup guide.

Pip

# Core Tink.
pip3 install tink==1.9.0
# Core Tink + Google Cloud KMS extension.
pip3 install tink[gcpkms]==1.9.0
# Core Tink + AWS KMS extension.
pip3 install tink[awskms]==1.9.0
# Core Tink + all the KMS extensions.
pip3 install tink[all]==1.9.0

Bazel

Tink Python can be used in a Bazel project as a pip dependency using rules_python’s pip_parse macro, or tink-py can be added as a Bazel build dependency to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "tink_py",
    urls = ["https://github.com/tink-crypto/tink-py/releases/download/v1.9.0/tink-py-1.9.0.zip"],
    strip_prefix = "tink-py-1.9.0",
    sha256 = "c5f9a7b58b79ef0e1b957154672f766489ea0ac956ad187941f950f2dc262e71",
)

load("@tink_py//:tink_py_deps.bzl", "tink_py_deps")

tink_py_deps()

load("@tink_py//:tink_py_deps_init.bzl", "tink_py_deps_init")

tink_py_deps_init("tink_py")

# ...

Tink Python 1.8.0

28 Aug 09:33
Compare
Choose a tag to compare

Tink is a multi-language, cross-platform library that provides simple and misuse-proof APIs for common cryptographic tasks.

This is Tink Python 1.8.0

What's new

This is the first release from https://github.com/tink-crypto/tink-py.

The complete list of changes since 1.7.0 can be found here.

  • Added support for Python 3.11
  • Publish binary wheels for Linux AArch64 (issue)
  • Tink now Rejects JWTs with duplicate map-keys in JSON objects (commit)
  • Upgraded to protobuf >= 4.21.9
  • Upgraded to Bazel 6.0.0
  • Removed dependency on Tink C++ AWS KMS (commits: #1, #2)
  • Removed dependency on Tink C++ GCP KMS (commits: #1, #2)
  • Restricted KMS envelope AEAD to only use Tink AEAD key types as DEK (commit)
  • Use ranges for requirements and exclude known vulnerable protobuf version (commits: #1, #2; issues: #1, #2)
  • Support AWS key aliases (commit)
  • Implemented minor internal fixes and refactorings
  • Added test scripts for internal CI

To see what we're working towards, check our project roadmap.

Get started

To get started using Tink, see the setup guide.

Pip

pip3 install tink==1.8.0

Bazel

Tink Python can be used in a Bazel project as a pip dependency using rules_python’s pip_parse macro, or tink-py can be added as a Bazel build dependency to your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "tink_py",
    urls = ["https://github.com/tink-crypto/tink-py/releases/download/v1.8.0/tink-py-1.8.0.tar.gz"],
    strip_prefix = "tink-py-1.8.0",
    sha256 = "1309f1d5d14062cd3ab623957e74bb17e98b49643d2799f33c441da06c3a61f7",
)

load("@tink_py//:tink_py_deps.bzl", "tink_py_deps")

tink_py_deps()

load("@tink_py//:tink_py_deps_init.bzl", "tink_py_deps_init")

tink_py_deps_init("tink_py")

# ...