Expand description
Protocol buffer message definitions for Tink.
Almost all of the code in this crate is auto-generated (using prost) from the protocol
buffer message definitions in the proto/
subdirectory. These .proto
files are copies from
the upstream Tink project.
Re-exports§
pub use prost;
Modules§
- json
json
- jwt_
hmac_ key - Nested message and enum types in
JwtHmacKey
. - key_
data - Nested message and enum types in
KeyData
. - keyset
- Nested message and enum types in
Keyset
. - keyset_
info - Nested message and enum types in
KeysetInfo
.
Structs§
- AesCmac
Key - key_type: type.googleapis.com/google.crypto.tink.AesCmacKey
- AesCmac
KeyFormat - AesCmac
Params - AesCmac
PrfKey - key_type: type.googleapis.com/google.crypto.tink.AesCmacPrfKey
- AesCmac
PrfKey Format - AesCtr
Hmac Aead Key - key_type: type.googleapis.com/google.crypto.tink.AesCtrHmacAeadKey
- AesCtr
Hmac Aead KeyFormat - AesCtr
Hmac Streaming Key - key_type: type.googleapis.com/google.crypto.tink.AesCtrHmacStreamingKey
- AesCtr
Hmac Streaming KeyFormat - AesCtr
Hmac Streaming Params - AesCtr
Key - key_type: type.googleapis.com/google.crypto.tink.AesCtrKey
- AesCtr
KeyFormat - AesCtr
Params - AesEax
Key - key_type: type.googleapis.com/google.crypto.tink.AesEaxKey
- AesEax
KeyFormat - AesEax
Params - only allowing tag size in bytes = 16
- AesGcm
Hkdf Streaming Key - key_type: type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey
- AesGcm
Hkdf Streaming KeyFormat - AesGcm
Hkdf Streaming Params - AesGcm
Key - key_type: type.googleapis.com/google.crypto.tink.AesGcmKey
- AesGcm
KeyFormat - only allowing IV size in bytes = 12 and tag size in bytes = 16 Thus, accept no params.
- AesGcm
SivKey - key_type: type.googleapis.com/google.crypto.tink.AesGcmSivKey
- AesGcm
SivKey Format - The only allowed IV size is 12 bytes and tag size is 16 bytes. Thus, accept no params.
- AesSiv
Key - key_type: type.googleapis.com/google.crypto.tink.AesSivKey
- AesSiv
KeyFormat - ChaCha20
Poly1305 Key - key_type: type.googleapis.com/google.crypto.tink.ChaCha20Poly1305. This key type actually implements ChaCha20Poly1305 as described at https://tools.ietf.org/html/rfc7539#section-2.8.
- ChaCha20
Poly1305 KeyFormat - Ecdsa
KeyFormat - Ecdsa
Params - Protos for Ecdsa.
- Ecdsa
Private Key - key_type: type.googleapis.com/google.crypto.tink.EcdsaPrivateKey
- Ecdsa
Public Key - key_type: type.googleapis.com/google.crypto.tink.EcdsaPublicKey
- Ecies
Aead DemParams - Parameters of AEAD DEM (Data Encapsulation Mechanism).
- Ecies
Aead Hkdf KeyFormat - Ecies
Aead Hkdf Params - Ecies
Aead Hkdf Private Key - EciesKdfAeadPrivateKey represents HybridDecryption primitive. key_type: type.googleapis.com/google.crypto.tink.EciesAeadHkdfPrivateKey
- Ecies
Aead Hkdf Public Key - EciesAeadHkdfPublicKey represents HybridEncryption primitive. key_type: type.googleapis.com/google.crypto.tink.EciesAeadHkdfPublicKey
- Ecies
Hkdf KemParams - Parameters of KEM (Key Encapsulation Mechanism)
- Ed25519
KeyFormat - Ed25519
Private Key - key_type: type.googleapis.com/google.crypto.tink.Ed25519PrivateKey
- Ed25519
Public Key - key_type: type.googleapis.com/google.crypto.tink.Ed25519PublicKey
- Empty
- Encrypted
Keyset - Represents a keyset that is encrypted with a master key.
- Hkdf
PrfKey - Hkdf
PrfKey Format - Hkdf
PrfParams - HmacKey
- key_type: type.googleapis.com/google.crypto.tink.HmacKey
- Hmac
KeyFormat - Hmac
Params - Hmac
PrfKey - key_type: type.googleapis.com/google.crypto.tink.HmacPrfKey
- Hmac
PrfKey Format - Hmac
PrfParams - JwtHmac
Key - key_type: type.googleapis.com/google.crypto.tink.JwtHmacKey
- JwtHmac
KeyFormat - KeyData
- The actual *Key-proto is wrapped in a KeyData message, which in addition to this serialized proto contains also type_url identifying the definition of *Key-proto (as in KeyFormat-message), and some extra metadata about the type key material.
- KeyTemplate
- KeyType
Entry - An entry that describes a key type to be used with Tink library, specifying the corresponding primitive, key manager, and deprecation status. All fields are required.
- Keyset
- A Tink user works usually not with single keys, but with keysets, to enable key rotation. The keys in a keyset can belong to different implementations/key types, but must all implement the same primitive. Any given keyset (and any given key) can be used for one primitive only.
- Keyset
Info - Represents a “safe” Keyset that doesn’t contain any actual key material, thus can be used for logging or monitoring. Most fields are copied from Keyset.
- KmsAead
Key - There is no actual key material in the key.
- KmsAead
KeyFormat - KmsEnvelope
Aead Key - There is no actual key material in the key.
- KmsEnvelope
Aead KeyFormat - PrfBased
Deriver Key - key_type: type.googleapis.com/google.crypto.tink.PrfBasedDeriverKey
- PrfBased
Deriver KeyFormat - PrfBased
Deriver Params - Registry
Config - A complete configuration of Tink library: a list of key types to be available via the Registry after initialization. All fields are required.
- RsaSsa
Pkcs1 KeyFormat - RsaSsa
Pkcs1 Params - RsaSsa
Pkcs1 Private Key - key_type: type.googleapis.com/google.crypto.tink.RsaSsaPkcs1PrivateKey
- RsaSsa
Pkcs1 Public Key - key_type: type.googleapis.com/google.crypto.tink.RsaSsaPkcs1PublicKey
- RsaSsa
PssKey Format - RsaSsa
PssParams - RsaSsa
PssPrivate Key - key_type: type.googleapis.com/google.crypto.tink.RsaSsaPssPrivateKey
- RsaSsa
PssPublic Key - key_type: type.googleapis.com/google.crypto.tink.RsaSsaPssPublicKey
- XCha
Cha20 Poly1305 Key - key_type: type.googleapis.com/google.crypto.tink.XChaCha20Poly1305Key
- XCha
Cha20 Poly1305 KeyFormat
Enums§
- EcPoint
Format - Ecdsa
Signature Encoding - Elliptic
Curve Type - Hash
Type - JwtHmac
Algorithm - KeyStatus
Type - Output
Prefix Type - Tink produces and accepts ciphertexts or signatures that consist of a prefix and a payload. The payload and its format is determined entirely by the primitive, but the prefix has to be one of the following 4 types: