tink-go

module
v2.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2024 License: Apache-2.0

README

Tink Go

Test GCP Ubuntu MacOS
Tink (Bazel) Bazel_GcpUbuntu Bazel_MacOs
Tink Gomod Gomod_GcpUbuntu Gomod_MacOs

NOTE: Versions of Tink Go prior to v2.0.0 are located at https://github.com/tink-crypto/tink (godoc).

Using crypto in your application shouldn't have to feel like juggling chainsaws in the dark. Tink is a crypto library written by a group of cryptographers and security engineers at Google. It was born out of our extensive experience working with Google's product teams, fixing weaknesses in implementations, and providing simple APIs that can be used safely without needing a crypto background.

Tink provides secure APIs that are easy to use correctly and hard(er) to misuse. It reduces common crypto pitfalls with user-centered design, careful implementation and code reviews, and extensive testing. At Google, Tink is one of the standard crypto libraries, and has been deployed in hundreds of products and systems.

To get a quick overview of Tink's design please take a look at Tink's goals.

The official documentation is available at https://developers.google.com/tink.

Contact and mailing list

If you want to contribute, please read CONTRIBUTING and send us pull requests. You can also report bugs or file feature requests.

If you'd like to talk to the developers or get notified about major product updates, you may want to subscribe to our mailing list.

Maintainers

Tink is maintained by (A-Z):

  • Moreno Ambrosin
  • Taymon Beal
  • William Conner
  • Thomas Holenstein
  • Stefan Kölbl
  • Charles Lee
  • Cindy Lin
  • Fernando Lobato Meeser
  • Ioana Nedelcu
  • Sophie Schmieg
  • Elizaveta Tretiakova
  • Jürg Wullschleger

Alumni:

  • Haris Andrianakis
  • Daniel Bleichenbacher
  • Tanuj Dhir
  • Thai Duong
  • Atul Luykx
  • Rafael Misoczki
  • Quan Nguyen
  • Bartosz Przydatek
  • Enzo Puig
  • Laurent Simon
  • Veronika Slívová
  • Paula Vidas

Directories

Path Synopsis
Package aead provides implementations of the AEAD primitive.
Package aead provides implementations of the AEAD primitive.
internal/testing/kmsaead
Package kmsaead provides a keymanager for KmsAeadKey that may only be used in tests.
Package kmsaead provides a keymanager for KmsAeadKey that may only be used in tests.
subtle
Package subtle provides subtle implementations of the AEAD primitive.
Package subtle provides subtle implementations of the AEAD primitive.
core
cryptofmt
Package cryptofmt provides constants and convenience methods that define the format of ciphertexts and signatures.
Package cryptofmt provides constants and convenience methods that define the format of ciphertexts and signatures.
primitiveset
Package primitiveset provides a container for a set of cryptographic primitives.
Package primitiveset provides a container for a set of cryptographic primitives.
registry
Package registry provides a container that for each supported key type holds a corresponding KeyManager object, which can generate new keys or instantiate the primitive corresponding to given key.
Package registry provides a container that for each supported key type holds a corresponding KeyManager object, which can generate new keys or instantiate the primitive corresponding to given key.
Package daead provides implementations of the DeterministicAEAD primitive.
Package daead provides implementations of the DeterministicAEAD primitive.
subtle
Package subtle provides subtle implementations of the DeterministicAEAD primitive.
Package subtle provides subtle implementations of the DeterministicAEAD primitive.
Package hybrid provides implementations of the Hybrid Encryption primitive.
Package hybrid provides implementations of the Hybrid Encryption primitive.
internal/hpke
Package hpke provides implementations of Hybrid Public Key Encryption.
Package hpke provides implementations of Hybrid Public Key Encryption.
subtle
Package subtle provides subtle implementations of the Hybrid Encryption primitive.
Package subtle provides subtle implementations of the Hybrid Encryption primitive.
Package insecurecleartextkeyset provides methods to read or write cleartext keyset material.
Package insecurecleartextkeyset provides methods to read or write cleartext keyset material.
Package internal provides a coordination point for package keyset, package insecurecleartextkeyset, and package testkeyset.
Package internal provides a coordination point for package keyset, package insecurecleartextkeyset, and package testkeyset.
aead
Package aead provides internal implementations of the AEAD primitive.
Package aead provides internal implementations of the AEAD primitive.
internalapi
Package internalapi provides a token that restricts access to Tink APIs.
Package internalapi provides a token that restricts access to Tink APIs.
internalregistry
Package internalregistry provides a container for functionality that is required across Tink similar to the `registry` but isn't part of the public API.
Package internalregistry provides a container for functionality that is required across Tink similar to the `registry` but isn't part of the public API.
monitoringutil
Package monitoringutil implements utility functions for monitoring.
Package monitoringutil implements utility functions for monitoring.
registryconfig
Package registryconfig is a transitioning stepping stone used by the keyset handle in cases where a configuration is not provided by the user, so it needs to resort to using the old global registry methods.
Package registryconfig is a transitioning stepping stone used by the keyset handle in cases where a configuration is not provided by the user, so it needs to resort to using the old global registry methods.
signature
Package signature provides internal implementations of the Signer and Verifier primitives.
Package signature provides internal implementations of the Signer and Verifier primitives.
testing/stubkeymanager
Package stubkeymanager defines key managers for testing primitives.
Package stubkeymanager defines key managers for testing primitives.
tinkerror
Package tinkerror provides error handling functionality which helps maintain API backwards compatibility.
Package tinkerror provides error handling functionality which helps maintain API backwards compatibility.
tinkerror/tinkerrortest
Package tinkerrortest provides test functionality for package tinkerror.
Package tinkerrortest provides test functionality for package tinkerror.
Package jwt implements a subset of JSON Web Token (JWT) as defined by RFC 7519 (https://tools.ietf.org/html/rfc7519) that is considered safe and most often used.
Package jwt implements a subset of JSON Web Token (JWT) as defined by RFC 7519 (https://tools.ietf.org/html/rfc7519) that is considered safe and most often used.
Package keyderivation provides implementations of the keyset deriver primitive.
Package keyderivation provides implementations of the keyset deriver primitive.
internal/streamingprf
Package streamingprf provides implementations of streaming pseudorandom function families.
Package streamingprf provides implementations of streaming pseudorandom function families.
Package keyset provides methods to generate, read, write or validate keysets.
Package keyset provides methods to generate, read, write or validate keysets.
kwp
subtle
Package subtle implements the key wrapping primitive KWP defined in NIST SP 800 38f.
Package subtle implements the key wrapping primitive KWP defined in NIST SP 800 38f.
mac
Package mac provides implementations of the MAC primitive.
Package mac provides implementations of the MAC primitive.
internal/mactest
Package mactest has testing utilities for the MAC primitive
Package mactest has testing utilities for the MAC primitive
subtle
Package subtle provides subtle implementations of the MAC primitive.
Package subtle provides subtle implementations of the MAC primitive.
Package monitoring defines the structs and interfaces for monitoring primitives with Tink.
Package monitoring defines the structs and interfaces for monitoring primitives with Tink.
prf
Package prf contains utilities to calculate pseudo random function families.
Package prf contains utilities to calculate pseudo random function families.
subtle
Package subtle provides an implementation of PRFs like AES-CMAC.
Package subtle provides an implementation of PRFs like AES-CMAC.
proto
Package signature provides implementations of the Signer and Verifier primitives.
Package signature provides implementations of the Signer and Verifier primitives.
subtle
Package subtle provides subtle implementations of the digital signature primitive.
Package subtle provides subtle implementations of the digital signature primitive.
Package streamingaead provides implementations of the streaming AEAD primitive.
Package streamingaead provides implementations of the streaming AEAD primitive.
subtle
Package subtle provides subtle implementations of the Streaming AEAD primitive.
Package subtle provides subtle implementations of the Streaming AEAD primitive.
subtle/noncebased
Package noncebased provides a reusable streaming AEAD framework.
Package noncebased provides a reusable streaming AEAD framework.
Package subtle provides common methods needed in subtle implementations.
Package subtle provides common methods needed in subtle implementations.
random
Package random provides functions that generate random numbers or bytes.
Package random provides functions that generate random numbers or bytes.
testing
fakekms
Package fakekms provides a fake implementation of registry.KMSClient.
Package fakekms provides a fake implementation of registry.KMSClient.
fakemonitoring
Package fakemonitoring provides a fake implementation of monitoring clients and loggers.
Package fakemonitoring provides a fake implementation of monitoring clients and loggers.
Package testkeyset provides for test code methods to read or write cleartext keyset material.
Package testkeyset provides for test code methods to read or write cleartext keyset material.
Package testutil provides common methods needed in test code.
Package testutil provides common methods needed in test code.
hybrid
Package hybrid provides HybridEncrypt/Decrypt primitive-specific test utilities.
Package hybrid provides HybridEncrypt/Decrypt primitive-specific test utilities.
Package tink provides the abstract interfaces of the primitives supported by Tink.
Package tink provides the abstract interfaces of the primitives supported by Tink.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL