Note

This page is a work in progress. It may contain incomplete or incorrect information.

Supported Cryptographic Schemes

Within Canton we use the cryptographic primitives of signing, symmetric and asymmetric encryption, and MAC with the following supported schemes:

Supported Cryptographic Schemes - (D = default, S = supported, P = partially supported, for instance just signature verification but no signing with a private key, and / = not supported. Inside the brackets [<scheme>] are the values to use when configuring Canton)

Crypto Provider

Tink

JCE

KMS

Signing

Ed25519 [ed-25519]

D

D

P

ECDSA P-256 [ec-dsa-p-256]

S

S

D

ECDSA P-384 [ec-dsa-p-384]

S

S

S

Symmetric Encryption

AES128-GCM [aes-128-gcm]

D

D

D

Asymmetric Encryption

ECIES on P-256 with HMAC-SHA256 and AES128-GCM [ecies-p-256-hkdf-hmac-sha-256-aes-128-gcm]

D

D

P

ECIES on P-256 with HMAC-SHA256 and AES128-CBC [ecies-p-256-hkdf-hmac-sha-256-aes-128-cbc]

/

S

P

RSA 2048 with OAEP and SHA-256 [rsa-2048-oaep-sha-256]

/

S

D

MAC

HMAC with SHA-256 [hmac-sha-256]

D

D

D

Key configuration for external keys with a Key Management Service (KMS)

Provider

SIGNING

ENCRYPTION

AWS

  • Key Purpose: SIGN_VERIFY

  • Key Algorithms: ECC_NIST_P256 or ECC_NIST_P384

  • Key Purpose: ENCRYPT_DECRYPT

  • Key Algorithm: RSA_2048

GCP

  • Key Purpose: ASYMMETRIC_SIGN

  • Key Algorithms: EC_SIGN_P256_SHA256 or EC_SIGN_P384_SHA384

  • Key Purpose: ASYMMETRIC_DECRYPT

  • Key Algorithm: RSA_DECRYPT_OAEP_2048_SHA256

Driver

  • Must be compatible with EC_P256_SHA256 or EC_P384_SHA384

  • Must be compatible with RSA_OAEP_2048_SHA256