Enum google_api_proto::google::cloud::kms::v1::crypto_key_version::CryptoKeyVersionAlgorithm
source · #[repr(i32)]pub enum CryptoKeyVersionAlgorithm {
Show 36 variants
Unspecified = 0,
GoogleSymmetricEncryption = 1,
Aes128Gcm = 41,
Aes256Gcm = 19,
Aes128Cbc = 42,
Aes256Cbc = 43,
Aes128Ctr = 44,
Aes256Ctr = 45,
RsaSignPss2048Sha256 = 2,
RsaSignPss3072Sha256 = 3,
RsaSignPss4096Sha256 = 4,
RsaSignPss4096Sha512 = 15,
RsaSignPkcs12048Sha256 = 5,
RsaSignPkcs13072Sha256 = 6,
RsaSignPkcs14096Sha256 = 7,
RsaSignPkcs14096Sha512 = 16,
RsaSignRawPkcs12048 = 28,
RsaSignRawPkcs13072 = 29,
RsaSignRawPkcs14096 = 30,
RsaDecryptOaep2048Sha256 = 8,
RsaDecryptOaep3072Sha256 = 9,
RsaDecryptOaep4096Sha256 = 10,
RsaDecryptOaep4096Sha512 = 17,
RsaDecryptOaep2048Sha1 = 37,
RsaDecryptOaep3072Sha1 = 38,
RsaDecryptOaep4096Sha1 = 39,
EcSignP256Sha256 = 12,
EcSignP384Sha384 = 13,
EcSignSecp256k1Sha256 = 31,
EcSignEd25519 = 40,
HmacSha256 = 32,
HmacSha1 = 33,
HmacSha384 = 34,
HmacSha512 = 35,
HmacSha224 = 36,
ExternalSymmetricEncryption = 18,
}
Expand description
The algorithm of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what parameters must be used for each cryptographic operation.
The [GOOGLE_SYMMETRIC_ENCRYPTION][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION] algorithm is usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
Algorithms beginning with RSA_SIGN_
are usable with
[CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
[ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.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][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.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][google.cloud.kms.v1.CryptoKey.purpose]
[ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.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][google.cloud.kms.v1.CryptoKey.purpose]
[ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.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][google.cloud.kms.v1.CryptoKey.purpose]
[MAC][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.MAC].
The suffix following HMAC_
corresponds to the hash algorithm being used
(eg. SHA256).
For more information, see [Key purposes and algorithms] (https://cloud.google.com/kms/docs/algorithms).
Variants§
Unspecified = 0
Not specified.
GoogleSymmetricEncryption = 1
Creates symmetric encryption keys.
Aes128Gcm = 41
AES-GCM (Galois Counter Mode) using 128-bit keys.
Aes256Gcm = 19
AES-GCM (Galois Counter Mode) using 256-bit keys.
Aes128Cbc = 42
AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.
Aes256Cbc = 43
AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.
Aes128Ctr = 44
AES-CTR (Counter Mode) using 128-bit keys.
Aes256Ctr = 45
AES-CTR (Counter Mode) using 256-bit keys.
RsaSignPss2048Sha256 = 2
RSASSA-PSS 2048 bit key with a SHA256 digest.
RsaSignPss3072Sha256 = 3
RSASSA-PSS 3072 bit key with a SHA256 digest.
RsaSignPss4096Sha256 = 4
RSASSA-PSS 4096 bit key with a SHA256 digest.
RsaSignPss4096Sha512 = 15
RSASSA-PSS 4096 bit key with a SHA512 digest.
RsaSignPkcs12048Sha256 = 5
RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
RsaSignPkcs13072Sha256 = 6
RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.
RsaSignPkcs14096Sha256 = 7
RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
RsaSignPkcs14096Sha512 = 16
RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.
RsaSignRawPkcs12048 = 28
RSASSA-PKCS1-v1_5 signing without encoding, with a 2048 bit key.
RsaSignRawPkcs13072 = 29
RSASSA-PKCS1-v1_5 signing without encoding, with a 3072 bit key.
RsaSignRawPkcs14096 = 30
RSASSA-PKCS1-v1_5 signing without encoding, with a 4096 bit key.
RsaDecryptOaep2048Sha256 = 8
RSAES-OAEP 2048 bit key with a SHA256 digest.
RsaDecryptOaep3072Sha256 = 9
RSAES-OAEP 3072 bit key with a SHA256 digest.
RsaDecryptOaep4096Sha256 = 10
RSAES-OAEP 4096 bit key with a SHA256 digest.
RsaDecryptOaep4096Sha512 = 17
RSAES-OAEP 4096 bit key with a SHA512 digest.
RsaDecryptOaep2048Sha1 = 37
RSAES-OAEP 2048 bit key with a SHA1 digest.
RsaDecryptOaep3072Sha1 = 38
RSAES-OAEP 3072 bit key with a SHA1 digest.
RsaDecryptOaep4096Sha1 = 39
RSAES-OAEP 4096 bit key with a SHA1 digest.
EcSignP256Sha256 = 12
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 = 13
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 = 31
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 = 40
EdDSA on the Curve25519 in pure mode (taking data as input).
HmacSha256 = 32
HMAC-SHA256 signing with a 256 bit key.
HmacSha1 = 33
HMAC-SHA1 signing with a 160 bit key.
HmacSha384 = 34
HMAC-SHA384 signing with a 384 bit key.
HmacSha512 = 35
HMAC-SHA512 signing with a 512 bit key.
HmacSha224 = 36
HMAC-SHA224 signing with a 224 bit key.
ExternalSymmetricEncryption = 18
Algorithm representing symmetric encryption by an external key manager.
Implementations§
source§impl CryptoKeyVersionAlgorithm
impl CryptoKeyVersionAlgorithm
sourcepub fn is_valid(value: i32) -> bool
pub fn is_valid(value: i32) -> bool
Returns true
if value
is a variant of CryptoKeyVersionAlgorithm
.
sourcepub fn from_i32(value: i32) -> Option<CryptoKeyVersionAlgorithm>
👎Deprecated: Use the TryFrom<i32> implementation instead
pub fn from_i32(value: i32) -> Option<CryptoKeyVersionAlgorithm>
Converts an i32
to a CryptoKeyVersionAlgorithm
, or None
if value
is not a valid variant.
source§impl CryptoKeyVersionAlgorithm
impl CryptoKeyVersionAlgorithm
sourcepub fn as_str_name(&self) -> &'static str
pub fn as_str_name(&self) -> &'static str
String value of the enum field names used in the ProtoBuf definition.
The values are not transformed in any way and thus are considered stable (if the ProtoBuf definition does not change) and safe for programmatic use.
sourcepub fn from_str_name(value: &str) -> Option<Self>
pub fn from_str_name(value: &str) -> Option<Self>
Creates an enum from field names used in the ProtoBuf definition.
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§fn default() -> CryptoKeyVersionAlgorithm
fn default() -> CryptoKeyVersionAlgorithm
source§impl From<CryptoKeyVersionAlgorithm> for i32
impl From<CryptoKeyVersionAlgorithm> for i32
source§fn from(value: CryptoKeyVersionAlgorithm) -> i32
fn from(value: CryptoKeyVersionAlgorithm) -> i32
source§impl Hash for CryptoKeyVersionAlgorithm
impl Hash for CryptoKeyVersionAlgorithm
source§impl Ord for CryptoKeyVersionAlgorithm
impl Ord for CryptoKeyVersionAlgorithm
source§fn cmp(&self, other: &CryptoKeyVersionAlgorithm) -> Ordering
fn cmp(&self, other: &CryptoKeyVersionAlgorithm) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for CryptoKeyVersionAlgorithm
impl PartialEq for CryptoKeyVersionAlgorithm
source§fn eq(&self, other: &CryptoKeyVersionAlgorithm) -> bool
fn eq(&self, other: &CryptoKeyVersionAlgorithm) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for CryptoKeyVersionAlgorithm
impl PartialOrd for CryptoKeyVersionAlgorithm
source§fn partial_cmp(&self, other: &CryptoKeyVersionAlgorithm) -> Option<Ordering>
fn partial_cmp(&self, other: &CryptoKeyVersionAlgorithm) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl TryFrom<i32> for CryptoKeyVersionAlgorithm
impl TryFrom<i32> for CryptoKeyVersionAlgorithm
§type Error = UnknownEnumValue
type Error = UnknownEnumValue
source§fn try_from(value: i32) -> Result<CryptoKeyVersionAlgorithm, UnknownEnumValue>
fn try_from(value: i32) -> Result<CryptoKeyVersionAlgorithm, UnknownEnumValue>
impl Copy for CryptoKeyVersionAlgorithm
impl Eq 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
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request