Get desktop application:
View/edit binary Protocol Buffers messages
key_type: type.googleapis.com/google.crypto.tink.AesCmacKey
Placeholder for ctype and debug_redact.
Used in:
,key_type: type.googleapis.com/google.crypto.tink.AesCmacPrfKey
Placeholder for ctype and debug_redact.
key_type: type.googleapis.com/google.crypto.tink.AesCtrHmacAeadKey
key_type: type.googleapis.com/google.crypto.tink.AesCtrHmacStreamingKey
Placeholder for multi-line ctype and debug_redact. // the main key, aka. "ikm", input key material
size of the main key (aka. "ikm", input key material)
Used in:
,size of AES-CTR keys derived for each segment
hash function for key derivation via HKDF
params for authentication tags
key_type: type.googleapis.com/google.crypto.tink.AesCtrKey
Used in:
Placeholder for ctype and debug_redact.
Used in:
Used in:
,key_type: type.googleapis.com/google.crypto.tink.AesEaxKey
Placeholder for ctype and debug_redact.
only allowing tag size in bytes = 16
Used in:
,possible value is 12 or 16 bytes.
key_type: type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey
Placeholder for ctype and debug_redact.
size of the main key (aka. "ikm", input key material)
Used in:
,size of AES-GCM keys derived for each segment
Placeholder for ctype and debug_redact.
key_type: type.googleapis.com/google.crypto.tink.AesGcmSivKey
Placeholder for ctype and debug_redact.
The only allowed IV size is 12 bytes and tag size is 16 bytes. Thus, accept no params.
key_type: type.googleapis.com/google.crypto.tink.AesSivKey
First half is AES-CTR key, second is AES-SIV.
Placeholder for ctype and debug_redact.
Only valid value is: 64.
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.
Placeholder for ctype and debug_redact.
(message has no fields)
Used in:
Like UNCOMPRESSED but without the \x04 prefix. Crunchy uses this format. DO NOT USE unless you are a Crunchy user moving to Tink.
Required.
Protos for Ecdsa.
Used in:
,Required.
Required.
Required.
key_type: type.googleapis.com/google.crypto.tink.EcdsaPrivateKey
Required.
Required.
Unsigned big integer in bigendian representation. Required.
Placeholder for ctype and debug_redact.
key_type: type.googleapis.com/google.crypto.tink.EcdsaPublicKey
Used in:
Required.
Required.
Affine coordinates of the public key in bigendian representation. The public key is a point (x, y) on the curve defined by params.curve. For ECDH, it is crucial to verify whether the public key point (x, y) is on the private's key curve. For ECDSA, such verification is a defense in depth. Required.
Required.
Used in:
The signature's format is r || s, where r and s are zero-padded and have the same size in bytes as the order of the curve. For example, for NIST P-256 curve, r and s are zero-padded to 32 bytes.
The signature is encoded using ASN.1 (https://tools.ietf.org/html/rfc5480#appendix-A): ECDSA-Sig-Value :: = SEQUENCE { r INTEGER, s INTEGER }
Parameters of AEAD DEM (Data Encapsulation Mechanism).
Used in:
Required. Contains an Aead or DeterministicAead key format (e.g: AesCtrHmacAeadKeyFormat, AesGcmKeyFormat or AesSivKeyFormat). The output_prefix_type in this template here is ignored (RAW is assumed).
Required.
Used in:
,Key Encapsulation Mechanism. Required.
Data Encapsulation Mechanism. Required.
EC point format. Required.
EciesKdfAeadPrivateKey represents HybridDecryption primitive. key_type: type.googleapis.com/google.crypto.tink.EciesAeadHkdfPrivateKey
Required.
Required.
Required.
Placeholder for multi-line ctype and debug_redact. // Big integer in bigendian representation.
EciesAeadHkdfPublicKey represents HybridEncryption primitive. key_type: type.googleapis.com/google.crypto.tink.EciesAeadHkdfPublicKey
Used in:
Required.
Required.
Affine coordinates of the public key in bigendian representation. The public key is a point (x, y) on the curve defined by params.kem_params.curve. Required.
Required.
Parameters of KEM (Key Encapsulation Mechanism)
Used in:
Required.
Required.
Optional.
key_type: type.googleapis.com/google.crypto.tink.Ed25519PrivateKey
Required.
The private key is 32 bytes of cryptographically secure random data. See https://tools.ietf.org/html/rfc8032#section-5.1.5. Required.
Placeholder for ctype and debug_redact.
The corresponding public key.
key_type: type.googleapis.com/google.crypto.tink.Ed25519PublicKey
Used in:
Required.
The public key is 32 bytes, encoded according to https://tools.ietf.org/html/rfc8032#section-5.1.2. Required.
Placeholder for ctype.
Used in:
,(message has no fields)
Represents a keyset that is encrypted with a master key.
Required.
Optional.
Used in:
, , , , , , , ,Using SHA1 for digital signature is deprecated but HMAC-SHA1 is
fine.
Placeholder for ctype and debug_redact.
Used in:
,Optional. An unspecified or zero-length value is equivalent to a sequence of zeros (0x00) with a length equal to the output size of hash. See https://rfc-editor.org/rfc/rfc5869.
key_type: type.googleapis.com/google.crypto.tink.HmacKey
Used in:
Placeholder for ctype and debug_redact.
Used in:
Used in:
, ,HashType is an enum.
key_type: type.googleapis.com/google.crypto.tink.HmacPrfKey
Placeholder for ctype and debug_redact.
Used in:
,HashType is an enum.
Used in:
Used in:
Used in:
Used in:
,KEM-encoding of private key (i.e., SerializePrivateKey() ) as described in https://www.rfc-editor.org/rfc/rfc9180.html#name-cryptographic-dependencies.
Placeholder for debug_redact.
Used in:
KEM-encoding of public key (i.e., SerializePublicKey() ) as described in https://www.rfc-editor.org/rfc/rfc9180.html#name-cryptographic-dependencies.
See https://datatracker.ietf.org/doc/html/rfc7518#section-3.4
Used in:
,ECDSA using P-256 and SHA-256
ECDSA using P-384 and SHA-384
ECDSA using P-521 and SHA-512
key_type: type.googleapis.com/google.crypto.tink.JwtEcdsaPrivateKey
Unsigned big integer in bigendian representation.
Placeholder for ctype and debug_redact.
key_type: type.googleapis.com/google.crypto.tink.JwtEcdsaPublicKey
Used in:
Affine coordinates of the public key in big-endian representation. The public key is a point (x, y) on the curve defined by algorithm.
Optional, custom kid header value to be used with "RAW" keys. "TINK" keys with this value set will be rejected.
Used in:
See https://datatracker.ietf.org/doc/html/rfc7518#section-3.2
Used in:
,HMAC using SHA-256
HMAC using SHA-384
HMAC using SHA-512
key_type: type.googleapis.com/google.crypto.tink.JwtHmacKey
Placeholder for ctype and debug_redact.
Optional, custom kid header value to be used with "RAW" keys. "TINK" keys with this value set will be rejected.
Used in:
See https://datatracker.ietf.org/doc/html/rfc7518#section-3.3
Used in:
,RSASSA-PKCS1-v1_5 using SHA-256
RSASSA-PKCS1-v1_5 using SHA-384
RSASSA-PKCS1-v1_5 using SHA-512
key_type: type.googleapis.com/google.crypto.tink.RsaSsaPkcs1PrivateKey
Private exponent. Unsigned big integer in big-endian representation.
The following parameters are used to optimize RSA signature computation. The prime factor p of n. Unsigned big integer in big-endian representation.
The prime factor q of n. Unsigned big integer in big-endian representation.
d mod (p - 1). Unsigned big integer in big-endian representation.
d mod (q - 1). Unsigned big integer in big-endian representation.
Chinese Remainder Theorem coefficient q^(-1) mod p. Unsigned big integer in big-endian representation.
key_type: type.googleapis.com/google.crypto.tink.JwtRsaSsaPkcs1PublicKey
Used in:
Modulus. Unsigned big integer in big-endian representation.
Public exponent. Unsigned big integer in big-endian representation.
Optional, custom kid header value to be used with "RAW" keys. "TINK" keys with this value set will be rejected.
Used in:
See https://datatracker.ietf.org/doc/html/rfc7518#section-3.5
Used in:
,RSASSA-PSS using SHA-256 and MGF1 with SHA-256
RSASSA-PSS using SHA-384 and MGF1 with SHA-384
RSASSA-PSS using SHA-512 and MGF1 with SHA-512
key_type: type.googleapis.com/google.crypto.tink.JwtRsaSsaPssPrivateKey
Private exponent. Unsigned big integer in big-endian representation.
The following parameters are used to optimize RSA signature computation. The prime factor p of n. Unsigned big integer in big-endian representation.
The prime factor q of n. Unsigned big integer in big-endian representation.
d mod (p - 1). Unsigned big integer in big-endian representation.
d mod (q - 1). Unsigned big integer in big-endian representation.
Chinese Remainder Theorem coefficient q^(-1) mod p. Unsigned big integer in big-endian representation.
key_type: type.googleapis.com/google.crypto.tink.JwtRsaSsaPssPublicKey
Used in:
Modulus. Unsigned big integer in big-endian representation.
Public exponent. Unsigned big integer in big-endian representation.
Optional, custom kid header value to be used with "RAW" keys. "TINK" keys with this value set will be rejected.
Used in:
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.
Used in:
,Required.
In format type.googleapis.com/packagename.messagename
Required. Contains specific serialized *Key proto
Placeholder for ctype and debug_redact.
Required.
Used in:
points to a remote key, i.e., in a KMS.
Used in:
,Can be used for crypto operations.
Cannot be used, but exists and can become ENABLED.
Key data does not exist in this Keyset any more.
Used in:
, , ,Required. The type_url of the key type in format type.googleapis.com/packagename.messagename -- see above for details. This is typically the protobuf type URL of the *Key proto. In particular, this is different of the protobuf type URL of the *KeyFormat proto.
Required. The serialized *KeyFormat proto.
Required. The type of prefix used when computing some primitives to identify the ciphertext/signature, etc.
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.
Used in:
E.g. “Aead”, “Mac”, ... (case-insensitive)
Name of the key type.
Minimum required version of key manager.
Can the key manager create new keys?
Catalogue to be queried for key manager,
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.
Identifies key used to generate new crypto data (encrypt, sign). Required.
Actual keys in the Keyset. Required.
Used in:
Contains the actual, instantiation specific key proto. By convention, each key proto contains a version field.
Identifies a key within a keyset, is a part of metadata of a ciphertext/signature.
Determines the prefix of the ciphertexts/signatures produced by this key. This value is copied verbatim from the key template.
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.
Used in:
See Keyset.primary_key_id.
KeyInfos in the KeysetInfo. Each KeyInfo is corresponding to a Key in the corresponding Keyset.
Used in:
the type url of this key, e.g., type.googleapis.com/google.crypto.tink.HmacKey.
See Keyset.Key.status.
See Keyset.Key.key_id.
See Keyset.Key.output_prefix_type.
There is no actual key material in the key.
The key format also contains the params.
Used in:
Required. The location of a KMS key. With Google Cloud KMS, valid values have this format: gcp-kms://projects/*/locations/*/keyRings/*/cryptoKeys/*. With AWS KMS, valid values have this format: aws-kms://arn:aws:kms:<region>:<account-id>:key/<key-id>
There is no actual key material in the key.
The key format also contains the params.
Used in:
Required. The location of the KEK in a remote KMS. With Google Cloud KMS, valid values have this format: gcp-kms://projects/*/locations/*/keyRings/*/cryptoKeys/*. With AWS KMS, valid values have this format: aws-kms://arn:aws:kms:<region>:<account-id>:key/<key-id>
Key template of the Data Encryption Key, e.g., AesCtrHmacAeadKeyFormat. Required.
Used in:
Required.
Required.
Used in:
,Required.
key_type: type.googleapis.com/google.crypto.tink.MlDsaPrivateKey
Required.
Required. Note that this contains the seed used to generate the private key, not the private key itself.
The corresponding public key.
key_type: type.googleapis.com/google.crypto.tink.MlDsaPublicKey
Used in:
Required.
Required.
Required.
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 5 types: - Legacy: prefix is 5 bytes, starts with \x00 and followed by a 4-byte key id that is computed from the key material. In addition to that, signature schemes and MACs will add a \x00 byte to the end of the data being signed / MACed when operating on keys with this OutputPrefixType. - Crunchy: prefix is 5 bytes, starts with \x00 and followed by a 4-byte key id that is generated randomly. - Tink : prefix is 5 bytes, starts with \x01 and followed by 4-byte key id that is generated randomly. - Raw : prefix is 0 byte, i.e., empty. - WITH_ID_REQUIREMENT: prefix size may vary i.e., empty, 1 byte etc, but the key is always required to have an ID. This is used for example for pre-hashing, where the ID is used to sync with a remote pre-hash signer, but no prefix is added to the signature.
Used in:
, ,key_type: type.googleapis.com/google.crypto.tink.PrfBasedDeriverKey
Used in:
,A complete configuration of Tink library: a list of key types to be available via the Registry after initialization. All fields are required.
Required.
Required.
Required.
Used in:
,Hash function used in computing hash of the signing message (see https://tools.ietf.org/html/rfc8017#section-9.2). Required.
key_type: type.googleapis.com/google.crypto.tink.RsaSsaPkcs1PrivateKey
Required.
Required.
Private exponent. Unsigned big integer in bigendian representation. Required.
The following parameters are used to optimize RSA signature computation. The prime factor p of n. Unsigned big integer in bigendian representation. Required.
The prime factor q of n. Unsigned big integer in bigendian representation. Required.
d mod (p - 1). Unsigned big integer in bigendian representation. Required.
d mod (q - 1). Unsigned big integer in bigendian representation. Required.
Chinese Remainder Theorem coefficient q^(-1) mod p. Unsigned big integer in bigendian representation. Required.
key_type: type.googleapis.com/google.crypto.tink.RsaSsaPkcs1PublicKey
Used in:
Required.
Required.
Modulus. Unsigned big integer in bigendian representation.
Public exponent. Unsigned big integer in bigendian representation.
Required.
Required.
Required.
Used in:
,Hash function used in computing hash of the signing message (see https://tools.ietf.org/html/rfc8017#section-9.1.1). Required.
Hash function used in MGF1 (a mask generation function based on a hash function) (see https://tools.ietf.org/html/rfc8017#appendix-B.2.1). Required.
Salt length (see https://tools.ietf.org/html/rfc8017#section-9.1.1) Required.
key_type: type.googleapis.com/google.crypto.tink.RsaSsaPssPrivateKey
Required.
Required.
Private exponent. Unsigned big integer in bigendian representation. Required.
The following parameters are used to optimize RSA signature computation. The prime factor p of n. Unsigned big integer in bigendian representation. Required.
The prime factor q of n. Unsigned big integer in bigendian representation. Required.
d mod (p - 1). Unsigned big integer in bigendian representation. Required.
d mod (q - 1). Unsigned big integer in bigendian representation. Required.
Chinese Remainder Theorem coefficient q^(-1) mod p. Unsigned big integer in bigendian representation. Required.
key_type: type.googleapis.com/google.crypto.tink.RsaSsaPssPublicKey
Used in:
Required.
Required.
Modulus. Unsigned big integer in bigendian representation.
Public exponent. Unsigned big integer in bigendian representation.
Used in:
Required.
Protos for the Stateless Hash-Based Digital Signature Algorithm https://csrc.nist.gov/pubs/fips/205/final
Used in:
,Required
Required.
Required.
key_type: type.googleapis.com/google.crypto.tink.SlhDsaPrivateKey
Required.
Required.
Placeholder for ctype.
Required. The corresponding public key.
key_type: type.googleapis.com/google.crypto.tink.SlhDsaPublicKey
Used in:
Required.
Required.
Placeholder for ctype.
Required
Used in:
key_type: type.googleapis.com/google.crypto.tink.XAesGcmKey
Used in:
,Must be at least 8 bytes and at most 12 bytes.
key_type: type.googleapis.com/google.crypto.tink.XChaCha20Poly1305Key
Placeholder for ctype and debug_redact.