#[non_exhaustive]pub enum CryptoKeyVersionAlgorithm {
Show 42 variants
Unspecified,
GoogleSymmetricEncryption,
Aes128Gcm,
Aes256Gcm,
Aes128Cbc,
Aes256Cbc,
Aes128Ctr,
Aes256Ctr,
RsaSignPss2048Sha256,
RsaSignPss3072Sha256,
RsaSignPss4096Sha256,
RsaSignPss4096Sha512,
RsaSignPkcs12048Sha256,
RsaSignPkcs13072Sha256,
RsaSignPkcs14096Sha256,
RsaSignPkcs14096Sha512,
RsaSignRawPkcs12048,
RsaSignRawPkcs13072,
RsaSignRawPkcs14096,
RsaDecryptOaep2048Sha256,
RsaDecryptOaep3072Sha256,
RsaDecryptOaep4096Sha256,
RsaDecryptOaep4096Sha512,
RsaDecryptOaep2048Sha1,
RsaDecryptOaep3072Sha1,
RsaDecryptOaep4096Sha1,
EcSignP256Sha256,
EcSignP384Sha384,
EcSignSecp256K1Sha256,
EcSignEd25519,
HmacSha256,
HmacSha1,
HmacSha384,
HmacSha512,
HmacSha224,
ExternalSymmetricEncryption,
MlKem768,
MlKem1024,
KemXwing,
PqSignMlDsa65,
PqSignSlhDsaSha2128S,
UnknownValue(UnknownValue),
}Expand description
The algorithm of the CryptoKeyVersion, indicating what parameters must be used for each cryptographic operation.
The GOOGLE_SYMMETRIC_ENCRYPTION algorithm is usable with CryptoKey.purpose ENCRYPT_DECRYPT.
Algorithms beginning with RSA_SIGN_ are usable with
CryptoKey.purpose
ASYMMETRIC_SIGN.
The fields in the name after RSA_SIGN_ correspond to the following
parameters: padding algorithm, modulus bit length, and digest algorithm.
For PSS, the salt length used is equal to the length of digest algorithm. For example, RSA_SIGN_PSS_2048_SHA256 will use PSS with a salt length of 256 bits or 32 bytes.
Algorithms beginning with RSA_DECRYPT_ are usable with
CryptoKey.purpose
ASYMMETRIC_DECRYPT.
The fields in the name after RSA_DECRYPT_ correspond to the following
parameters: padding algorithm, modulus bit length, and digest algorithm.
Algorithms beginning with EC_SIGN_ are usable with
CryptoKey.purpose
ASYMMETRIC_SIGN.
The fields in the name after EC_SIGN_ correspond to the following
parameters: elliptic curve, digest algorithm.
Algorithms beginning with HMAC_ are usable with
CryptoKey.purpose
MAC.
The suffix following HMAC_ corresponds to the hash algorithm being used
(eg. SHA256).
Algorithms beginning with PQ_ are post-quantum.
For more information, see [Key purposes and algorithms] (https://cloud.google.com/kms/docs/algorithms).
§Working with unknown values
This enum is defined as #[non_exhaustive] because Google Cloud may add
additional enum variants at any time. Adding new variants is not considered
a breaking change. Applications should write their code in anticipation of:
- New values appearing in future releases of the client library, and
- New values received dynamically, without application changes.
Please consult the Working with enums section in the user guide for some guidelines.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unspecified
Not specified.
GoogleSymmetricEncryption
Creates symmetric encryption keys.
Aes128Gcm
AES-GCM (Galois Counter Mode) using 128-bit keys.
Aes256Gcm
AES-GCM (Galois Counter Mode) using 256-bit keys.
Aes128Cbc
AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.
Aes256Cbc
AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.
Aes128Ctr
AES-CTR (Counter Mode) using 128-bit keys.
Aes256Ctr
AES-CTR (Counter Mode) using 256-bit keys.
RsaSignPss2048Sha256
RSASSA-PSS 2048 bit key with a SHA256 digest.
RsaSignPss3072Sha256
RSASSA-PSS 3072 bit key with a SHA256 digest.
RsaSignPss4096Sha256
RSASSA-PSS 4096 bit key with a SHA256 digest.
RsaSignPss4096Sha512
RSASSA-PSS 4096 bit key with a SHA512 digest.
RsaSignPkcs12048Sha256
RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
RsaSignPkcs13072Sha256
RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.
RsaSignPkcs14096Sha256
RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
RsaSignPkcs14096Sha512
RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.
RsaSignRawPkcs12048
RSASSA-PKCS1-v1_5 signing without encoding, with a 2048 bit key.
RsaSignRawPkcs13072
RSASSA-PKCS1-v1_5 signing without encoding, with a 3072 bit key.
RsaSignRawPkcs14096
RSASSA-PKCS1-v1_5 signing without encoding, with a 4096 bit key.
RsaDecryptOaep2048Sha256
RSAES-OAEP 2048 bit key with a SHA256 digest.
RsaDecryptOaep3072Sha256
RSAES-OAEP 3072 bit key with a SHA256 digest.
RsaDecryptOaep4096Sha256
RSAES-OAEP 4096 bit key with a SHA256 digest.
RsaDecryptOaep4096Sha512
RSAES-OAEP 4096 bit key with a SHA512 digest.
RsaDecryptOaep2048Sha1
RSAES-OAEP 2048 bit key with a SHA1 digest.
RsaDecryptOaep3072Sha1
RSAES-OAEP 3072 bit key with a SHA1 digest.
RsaDecryptOaep4096Sha1
RSAES-OAEP 4096 bit key with a SHA1 digest.
EcSignP256Sha256
ECDSA on the NIST P-256 curve with a SHA256 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
EcSignP384Sha384
ECDSA on the NIST P-384 curve with a SHA384 digest. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
EcSignSecp256K1Sha256
ECDSA on the non-NIST secp256k1 curve. This curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
EcSignEd25519
EdDSA on the Curve25519 in pure mode (taking data as input).
HmacSha256
HMAC-SHA256 signing with a 256 bit key.
HmacSha1
HMAC-SHA1 signing with a 160 bit key.
HmacSha384
HMAC-SHA384 signing with a 384 bit key.
HmacSha512
HMAC-SHA512 signing with a 512 bit key.
HmacSha224
HMAC-SHA224 signing with a 224 bit key.
ExternalSymmetricEncryption
Algorithm representing symmetric encryption by an external key manager.
MlKem768
ML-KEM-768 (FIPS 203)
MlKem1024
ML-KEM-1024 (FIPS 203)
KemXwing
X-Wing hybrid KEM combining ML-KEM-768 with X25519 following datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/.
PqSignMlDsa65
The post-quantum Module-Lattice-Based Digital Signature Algorithm, at security level 3. Randomized version.
PqSignSlhDsaSha2128S
The post-quantum stateless hash-based digital signature algorithm, at security level 1. Randomized version.
UnknownValue(UnknownValue)
If set, the enum was initialized with an unknown value.
Applications can examine the value using CryptoKeyVersionAlgorithm::value or CryptoKeyVersionAlgorithm::name.
Implementations§
Trait Implementations§
Source§impl Clone for CryptoKeyVersionAlgorithm
impl Clone for CryptoKeyVersionAlgorithm
Source§fn clone(&self) -> CryptoKeyVersionAlgorithm
fn clone(&self) -> CryptoKeyVersionAlgorithm
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CryptoKeyVersionAlgorithm
impl Debug for CryptoKeyVersionAlgorithm
Source§impl Default for CryptoKeyVersionAlgorithm
impl Default for CryptoKeyVersionAlgorithm
Source§impl<'de> Deserialize<'de> for CryptoKeyVersionAlgorithm
impl<'de> Deserialize<'de> for CryptoKeyVersionAlgorithm
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Display for CryptoKeyVersionAlgorithm
impl Display for CryptoKeyVersionAlgorithm
Source§impl From<&str> for CryptoKeyVersionAlgorithm
impl From<&str> for CryptoKeyVersionAlgorithm
Source§impl From<i32> for CryptoKeyVersionAlgorithm
impl From<i32> for CryptoKeyVersionAlgorithm
impl StructuralPartialEq for CryptoKeyVersionAlgorithm
Auto Trait Implementations§
impl Freeze for CryptoKeyVersionAlgorithm
impl RefUnwindSafe for CryptoKeyVersionAlgorithm
impl Send for CryptoKeyVersionAlgorithm
impl Sync for CryptoKeyVersionAlgorithm
impl Unpin for CryptoKeyVersionAlgorithm
impl UnwindSafe for CryptoKeyVersionAlgorithm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.