tink-go

module
v2.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2025 License: Apache-2.0

README

Tink Go

Test GCP Ubuntu 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.
aesctrhmac
Package aesctrhmac provides a key manager for the AES-CTR-HMAC AEAD.
Package aesctrhmac provides a key manager for the AES-CTR-HMAC AEAD.
aesgcm
Package aesgcm implements AES-GCM parameters and key, as well as key manager.
Package aesgcm implements AES-GCM parameters and key, as well as key manager.
aesgcmsiv
Package aesgcmsiv provides an implementation of AES-GCM-SIV.
Package aesgcmsiv provides an implementation of AES-GCM-SIV.
chacha20poly1305
Package chacha20poly1305 implements ChaCha20-Poly1305 parameters and key.
Package chacha20poly1305 implements ChaCha20-Poly1305 parameters and key.
internal/testutil
Package testutil provides testing utilities for AEAD primitives.
Package testutil provides testing utilities for AEAD primitives.
subtle
Package subtle provides subtle implementations of the AEAD primitive.
Package subtle provides subtle implementations of the AEAD primitive.
xaesgcm
Package xaesgcm provides a key and parameters definition for X-AES-GCM, which is specified in https://c2sp.org/XAES-256-GCM.
Package xaesgcm provides a key and parameters definition for X-AES-GCM, which is specified in https://c2sp.org/XAES-256-GCM.
xchacha20poly1305
Package xchacha20poly1305 provides a Tink key manager for XChaCha20Poly1305 keys.
Package xchacha20poly1305 provides a Tink key manager for XChaCha20Poly1305 keys.
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.
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 insecuresecretdataaccess provides the definition of a token used to control and track access to secret data.
Package insecuresecretdataaccess provides the definition of a token used to control and track access to secret data.
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.
config
Package config provides internal implementation of Configs.
Package config provides internal implementation of Configs.
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.
mac/aescmac
Package aescmac implements AES-CMAC.
Package aescmac implements AES-CMAC.
mac/hmac
Package hmac implements the hmac algorithm.
Package hmac implements the hmac algorithm.
monitoringutil
Package monitoringutil implements utility functions for monitoring.
Package monitoringutil implements utility functions for monitoring.
outputprefix
Package outputprefix provides constants and shared utility functions for computing the prefix applied to the output of a cryptographic function.
Package outputprefix provides constants and shared utility functions for computing the prefix applied to the output of a cryptographic function.
primitiveset
Package primitiveset provides a container for a set of cryptographic primitives.
Package primitiveset provides a container for a set of cryptographic primitives.
protoserialization
Package protoserialization defines interfaces for proto key to key objects parsers, and provides a global registry that maps key type URLs to key parsers.
Package protoserialization defines interfaces for proto key to key objects parsers, and provides a global registry that maps key type URLs to key parsers.
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.
signature/ecdsa
Package ecdsa provides internal ECDSA utility functions.
Package ecdsa provides internal ECDSA utility functions.
testing/aead
Package aead contains types for testing AEAD primitives.
Package aead contains types for testing AEAD primitives.
testing/stubconfig
Package stubconfig provides test utilities that are *NOT* meant for public use.
Package stubconfig provides test utilities that are *NOT* meant for public use.
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 key defines interfaces for Key and Parameters types.
Package key defines interfaces for Key and Parameters types.
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 secretdata provides access-controlled structs to wrap sensitive data.
Package secretdata provides access-controlled structs to wrap sensitive data.
Package signature provides implementations of the Signer and Verifier primitives.
Package signature provides implementations of the Signer and Verifier primitives.
ecdsa
Package ecdsa provides ECDSA keys and parameters definitions, and key managers.
Package ecdsa provides ECDSA keys and parameters definitions, and key managers.
ed25519
Package ed25519 provides ED25519 keys and parameters definitions, and key managers.
Package ed25519 provides ED25519 keys and parameters definitions, and key managers.
rsassapkcs1
Package rsassapkcs1 defines RSA-SSA-PKCS1 key managers, key and parameters.
Package rsassapkcs1 defines RSA-SSA-PKCS1 key managers, key and parameters.
rsassapss
Package rsassapss defines RSASSA-PSS key managers.
Package rsassapss defines RSASSA-PSS key managers.
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.
insecuresecretdataaccesstest
Package insecuresecretdataaccesstest provides a utility function to obtain a insecuresecretdataaccess.Token value to use in tests.
Package insecuresecretdataaccesstest provides a utility function to obtain a insecuresecretdataaccess.Token value to use in tests.
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