Skip to content

Latest commit

 

History

History
721 lines (526 loc) · 22.3 KB

Appendix_B_Crypto_Configuration_Directives.md

File metadata and controls

721 lines (526 loc) · 22.3 KB

Appendix B: Crypto Configuration Directives

In this document, the syntax of C define directives used to configure dead code elimination are described. This includes directives to be set by the system crypto configurator (PSA_WANT_XXX, PSA_USE_XXX) and internal directives that are derived from the former.

C define directives of the form PSA_WANT_XXX and PSA_USE_XXX are defined in system crypto configurations, see Crypto Configuration.

C define directives of the form PSA_NEED_XXX and PSA_ACCEL_XXX are defined within the crypto configurations of hardware drivers and Oberon drivers, see Crypto Driver Development.

Syntax for identifier parts (symbols) used in the chapters below:

  • Terminal symbol X: X (upper case)
  • Required symbol x: x (lower case)
  • Optional symbol x: [x] (lower case in brackets)
  • Separator within a terminal symbol: _
  • Separator between symbols: __

Note: For better readability, a separator between symbols in this document is represented as two consecutive underscores in the syntax, but only one underscore must be used in actual code.

From the Mbed TLS documentation: A PSA Crypto configuration symbol is a C preprocessor symbol whose name starts with PSA_WANT_.

  • If the symbol is not defined, the corresponding feature is not included.
  • If the symbol is defined to a preprocessor expression with the value 1, the corresponding feature is included.
  • If the symbol is defined with a different value, the behavior is currently undefined and reserved for future use.

To define a configuration feature in a C header file, a symbol like PSA_WANT_ALG_SPAKE2P_HMAC is defined like this:

#define PSA_WANT_ALG_SPAKE2P_HMAC               1

In the following sections, all available define directives are listed.

PSA_WANT Directives

These directives define what cryptographic features are "wanted" for potential use in an application.

Algorithms wanted by the application

Syntax: PSA_WANT_ALG__alg

Parameter alg: Wanted algorithm.

  • PSA_WANT_ALG_CBC_NO_PADDING
  • PSA_WANT_ALG_CBC_PKCS7
  • PSA_WANT_ALG_CCM
  • PSA_WANT_ALG_CCM_STAR_NO_TAG
  • PSA_WANT_ALG_CHACHA20_POLY1305
  • PSA_WANT_ALG_CMAC
  • PSA_WANT_ALG_CTR
  • PSA_WANT_ALG_DETERMINISTIC_ECDSA
  • PSA_WANT_ALG_ECB_NO_PADDING
  • PSA_WANT_ALG_ECDH
  • PSA_WANT_ALG_ECDSA
  • PSA_WANT_ALG_ED25519PH
  • PSA_WANT_ALG_ED448PH
  • PSA_WANT_ALG_GCM
  • PSA_WANT_ALG_HKDF
  • PSA_WANT_ALG_HKDF_EXTRACT
  • PSA_WANT_ALG_HKDF_EXPAND
  • PSA_WANT_ALG_HMAC
  • PSA_WANT_ALG_JPAKE
  • PSA_WANT_ALG_PBKDF2_HMAC
  • PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128
  • PSA_WANT_ALG_PURE_EDDSA
  • PSA_WANT_ALG_RSA_OAEP
  • PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
  • PSA_WANT_ALG_RSA_PKCS1V15_SIGN
  • PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW
  • PSA_WANT_ALG_RSA_PSS
  • PSA_WANT_ALG_SPAKE2P
  • PSA_WANT_ALG_SRP_6
  • PSA_WANT_ALG_STREAM_CIPHER
  • PSA_WANT_ALG_TLS12_PRF
  • PSA_WANT_ALG_TLS12_PSK_TO_MS
  • PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS

Hash algorithms wanted by the application

Syntax: PSA_WANT_ALG__hash-alg__hash-size

Parameter hash-alg: Wanted hash algorithm.

Parameter hash-size: Wanted hash size.

  • PSA_WANT_ALG_SHA_1
  • PSA_WANT_ALG_SHA_224
  • PSA_WANT_ALG_SHA_256
  • PSA_WANT_ALG_SHA_384
  • PSA_WANT_ALG_SHA_512
  • PSA_WANT_ALG_SHA3_224
  • PSA_WANT_ALG_SHA3_256
  • PSA_WANT_ALG_SHA3_384
  • PSA_WANT_ALG_SHA3_512
  • PSA_WANT_ALG_SHAKE256-512

Elliptic curve families wanted by the application

Syntax: PSA_WANT_ECC__family__key-size

Parameter family: Wanted crypto family.

Parameter key-size: Wanted key size of curve.

  • PSA_WANT_ECC_MONTGOMERY_255
  • PSA_WANT_ECC_MONTGOMERY_448
  • PSA_WANT_ECC_TWISTED_EDWARDS_255
  • PSA_WANT_ECC_TWISTED_EDWARDS_448
  • PSA_WANT_ECC_SECP_R1_224
  • PSA_WANT_ECC_SECP_R1_256
  • PSA_WANT_ECC_SECP_R1_384
  • PSA_WANT_ECC_SECP_R1_521

Key types wanted by the application

Syntax: PSA_WANT_KEY_TYPE__key-type

Parameter key-type: Wanted key type.

  • PSA_WANT_KEY_TYPE_DERIVE

  • PSA_WANT_KEY_TYPE_HMAC

  • PSA_WANT_KEY_TYPE_AES

  • PSA_WANT_KEY_TYPE_CHACHA20

  • PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY

  • PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC

  • PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT

  • PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT

  • PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE

  • PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE

  • PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY

  • PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC

  • PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT

  • PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT

Key sizes wanted by the application for specific key types

These are additional configuration options introduced by Oberon microsystems.

Syntax: PSA_WANT__family__KEY_SIZE__key-size

Parameter family: Wanted key family.

Parameter key-size: Wanted key size for this key family.

  • PSA_WANT_AESKEY_SIZE128

  • PSA_WANT_AESKEY_SIZE192

  • PSA_WANT_AESKEY_SIZE256

  • PSA_WANT_RSAKEY_SIZE1024

  • PSA_WANT_RSAKEY_SIZE1536

  • PSA_WANT_RSAKEY_SIZE2048

  • PSA_WANT_RSAKEY_SIZE3072

  • PSA_WANT_RSAKEY_SIZE4096

  • PSA_WANT_RSAKEY_SIZE6144

  • PSA_WANT_RSAKEY_SIZE8192

Whether random number generation is wanted by the application

This is an additional configuration option introduced by Oberon microsystems.

  • PSA_WANT_GENERATE_RANDOM

PSA_USE Directives

These directives define what cryptographic features are supported by the target platform through hardware drivers and may therefore be used by an application (the Oberon drivers provided in software as fallbacks do not provide PSA_USE_XXX directives and are used by default if no hardware drivers are availalbe. An exception are the provided DRBG drivers, see below).

DRBG crypto drivers that may be provided by the target platform

These are additional configuration options introduced by Oberon microsystems.

They are DRBG crypto drivers that may be provided by the target platform and depend on an entropy driver from the target platform.

Syntax: PSA_USE__drbg__DRIVER

Parameter drbg: Provided DRBG implementation.

  • PSA_USE_CTR_DRBG_DRIVER
  • PSA_USE_HMAC_DRBG_DRIVER

Crypto driver groups that may be provided by the target platform

Syntax: PSA_USE__driver-id__function-group__DRIVER

Parameter driver-id: Provided driver.

Parameter function-group: Provided function group.

These are directives for hypothetical hardware drivers for CryptoCell 310 hardware accelerators.

  • PSA_USE_CC310_HASH_DRIVER
  • PSA_USE_CC310_AEAD_DRIVER
  • PSA_USE_CC310_CIPHER_DRIVER
  • PSA_USE_CC310_MAC_DRIVER
  • PSA_USE_CC310_KEY_AGREEMENT_DRIVER
  • PSA_USE_CC310_ASYMMETRIC_SIGNATURE_DRIVER
  • PSA_USE_CC310_ASYMMETRIC_ENCRYPTION_DRIVER
  • PSA_USE_CC310_KEY_MANAGEMENT_DRIVER
  • PSA_USE_CC310_ENTROPY_DRIVER

These are mock demo drivers provided by Oberon microsystems:

  • PSA_USE_DEMO_HARDWARE_DRIVER
  • PSA_USE_DEMO_ENTROPY_DRIVER
  • PSA_USE_DEMO_OPAQUE_DRIVER

PSA_NEED Directives

These directives define what code cannot be eliminated in the driver wrappers and Oberon drivers. They are derived automatically and therefore need not be configured explicitly.

Needed crypto drivers for the application on the target platform

Syntax: PSA_NEED_OBERON__function-group__DRIVER

Parameter function-group: Needed function group.

  • PSA_NEED_OBERON_HASH_DRIVER
  • PSA_NEED_OBERON_AEAD_DRIVER
  • PSA_NEED_OBERON_CIPHER_DRIVER
  • PSA_NEED_OBERON_MAC_DRIVER
  • PSA_NEED_OBERON_KEY_AGREEMENT_DRIVER
  • PSA_NEED_OBERON_ASYMMETRIC_SIGNATURE_DRIVER
  • PSA_NEED_OBERON_ASYMMETRIC_ENCRYPTION_DRIVER
  • PSA_NEED_OBERON_KEY_MANAGEMENT_DRIVER
  • PSA_NEED_OBERON_KEY_DERIVATION_DRIVER
  • PSA_NEED_OBERON_PAKE_DRIVER
  • PSA_NEED_OBERON_CTR_DRBG_DRIVER
  • PSA_NEED_OBERON_HMAC_DRBG_DRIVER

Needed algorithms for the application on the target platform (1)

Syntax: PSA_NEED_OBERON__alg

Parameter alg: Needed crypto algorithm.

  • PSA_NEED_OBERON_SHA_1

  • PSA_NEED_OBERON_SHA_224

  • PSA_NEED_OBERON_SHA_256

  • PSA_NEED_OBERON_SHA_384

  • PSA_NEED_OBERON_SHA_512

  • PSA_NEED_OBERON_SHA3_224

  • PSA_NEED_OBERON_SHA3_256

  • PSA_NEED_OBERON_SHA3_384

  • PSA_NEED_OBERON_SHA3_512

  • PSA_NEED_OBERON_SHAKE256-512

  • PSA_NEED_OBERON_HMAC

  • PSA_NEED_OBERON_CMAC

  • PSA_NEED_OBERON_HKDF

  • PSA_NEED_OBERON_HKDF_EXTRACT

  • PSA_NEED_OBERON_HKDF_EXPAND

  • PSA_NEED_OBERON_TLS12_PRF

  • PSA_NEED_OBERON_TLS12_PSK_TO_MS

  • PSA_NEED_OBERON_TLS12_ECJPAKE_TO_PMS

  • PSA_NEED_OBERON_PBKDF2_HMAC

  • PSA_NEED_OBERON_PBKDF2_AES_CMAC_PRF_128

Needed algorithms for the application on the target platform (2)

Syntax: PSA_NEED_OBERON__alg__key-type

Parameter alg: Needed crypto algorithm.

Parameter key-type: Needed key type.

  • PSA_NEED_OBERON_CCM_AES

  • PSA_NEED_OBERON_GCM_AES

  • PSA_NEED_OBERON_CTR_AES

  • PSA_NEED_OBERON_CBC_PKCS7_AES

  • PSA_NEED_OBERON_CBC_NO_PADDING_AES

  • PSA_NEED_OBERON_ECB_NO_PADDING_AES

  • PSA_NEED_OBERON_CCM_STAR_NO_TAG_AES

  • PSA_NEED_OBERON_CHACHA20_POLY1305

  • PSA_NEED_OBERON_STREAM_CIPHER_CHACHA20

Needed algorithms for the application on the target platform (3)

Syntax: PSA_NEED_OBERON__alg__key-type[__key-size]

Parameter alg: Needed crypto algorithm.

Parameter key-type: Needed key type.

Parameter key-size: Needed key size for this key type.

  • PSA_NEED_OBERON_ECDH_SECP_R1_224

  • PSA_NEED_OBERON_ECDH_SECP_R1_256

  • PSA_NEED_OBERON_ECDH_SECP_R1_384

  • PSA_NEED_OBERON_ECDH_SECP_R1_521

  • PSA_NEED_OBERON_ECDH_MONTGOMERY_255

  • PSA_NEED_OBERON_ECDH_MONTGOMERY_448

  • PSA_NEED_OBERON_ECDSA_SECP_R1_224

  • PSA_NEED_OBERON_ECDSA_SECP_R1_256

  • PSA_NEED_OBERON_ECDSA_SECP_R1_384

  • PSA_NEED_OBERON_ECDSA_SECP_R1_521

  • PSA_NEED_OBERON_PURE_EDDSA_TWISTED_EDWARDS_255

  • PSA_NEED_OBERON_PURE_EDDSA_TWISTED_EDWARDS_448

  • PSA_NEED_OBERON_ED25519PH

  • PSA_NEED_OBERON_ED448PH

  • PSA_NEED_OBERON_ECDSA_DETERMINISTIC

  • PSA_NEED_OBERON_ECDSA_RANDOMIZED

Needed algorithms for the application on the target platform (4)

Syntax: PSA_NEED_OBERON__ECDSA__role

Parameter role: SIGN or VERIFY.

  • PSA_NEED_OBERON_ECDSA_SIGN
  • PSA_NEED_OBERON_ECDSA_VERIFY

Needed ECC key management for the application on the target platform

Syntax: PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR__operation__[family__size]

Parameter operation: Needed operation.

Parameter family: Needed crypto family.

Parameter size: Needed key size for this crypto family.

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_224

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_224

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_224

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_224

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_256

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_256

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_256

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_256

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_384

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_384

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_384

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_384

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_521

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_521

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_521

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_521

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_255

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_255

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_255

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_255

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_448

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_448

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_448

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_448

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_255

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_255

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_255

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_255

  • PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_448

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_448

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_448

  • PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_448

Needed RSA key management for the application on the target platform

Syntax: PSA_NEED_OBERON_KEY_TYPE_RSA__operation

Parameter operation: Needed operation.

  • PSA_NEED_OBERON_KEY_TYPE_RSA_PUBLIC_KEY
  • PSA_NEED_OBERON_KEY_TYPE_RSA_KEY_PAIR_EXPORT
  • PSA_NEED_OBERON_KEY_TYPE_RSA_KEY_PAIR_IMPORT

Needed PAKE support for the application on the target platform

Syntax: PSA_NEED_OBERON__alg[__family]

Parameter alg: Needed crypto algorithm.

Parameter family: Needed crypto family.

  • PSA_NEED_OBERON_ECJPAKE

  • PSA_NEED_OBERON_SPAKE2P

  • PSA_NEED_OBERON_SRP_6

  • PSA_NEED_OBERON_RSA_PSS

  • PSA_NEED_OBERON_RSA_OAEP

  • PSA_NEED_OBERON_RSA_PKCS1V15_SIGN

  • PSA_NEED_OBERON_RSA_PKCS1V15_CRYPT

  • PSA_NEED_OBERON_RSA_ANY_SIGN

  • PSA_NEED_OBERON_RSA_ANY_VERIFY

  • PSA_NEED_OBERON_RSA_ANY_CRYPT

Needed key sizes for the application on the target platform

Syntax: PSA_NEED_OBERON__key-type__KEY_SIZE__key-size

Parameter key-type: Needed key type.

Parameter size: Needed key size for this key type.

  • PSA_NEED_OBERON_RSAKEY_SIZE1024
  • PSA_NEED_OBERON_RSAKEY_SIZE1536
  • PSA_NEED_OBERON_RSAKEY_SIZE2048
  • PSA_NEED_OBERON_RSAKEY_SIZE3072
  • PSA_NEED_OBERON_RSAKEY_SIZE4096
  • PSA_NEED_OBERON_RSAKEY_SIZE6144
  • PSA_NEED_OBERON_RSAKEY_SIZE8192

PSA_ACCEL Directives

These directives define, sometimes with fine granularity, what (combinations of) crypto features are hardware-accelerated, and available through hardware drivers.

Accelerated crypto functionality (1)

Syntax: PSA_ACCEL__alg[__key-type][__key-size]

Parameter alg: Accelerated crypto algorithm.

Parameter key-type: Accelerated key type.

Parameter key-size: Accelerated key size for this key type.

  • PSA_ACCEL_CCM_AES_128
  • PSA_ACCEL_CCM_AES_192
  • PSA_ACCEL_CCM_AES_256
  • PSA_ACCEL_GCM_AES_128
  • PSA_ACCEL_GCM_AES_192
  • PSA_ACCEL_GCM_AES_256
  • PSA_ACCEL_CTR_AES_128
  • PSA_ACCEL_CTR_AES_192
  • PSA_ACCEL_CTR_AES_256
  • PSA_ACCEL_CBC_PKCS7_AES_128
  • PSA_ACCEL_CBC_PKCS7_AES_192
  • PSA_ACCEL_CBC_PKCS7_AES_256
  • PSA_ACCEL_CBC_NO_PADDING_AES_128
  • PSA_ACCEL_CBC_NO_PADDING_AES_192
  • PSA_ACCEL_CBC_NO_PADDING_AES_256
  • PSA_ACCEL_ECB_NO_PADDING_AES_128
  • PSA_ACCEL_ECB_NO_PADDING_AES_192
  • PSA_ACCEL_ECB_NO_PADDING_AES_256
  • PSA_ACCEL_CCM_STAR_NO_TAG_AES_128
  • PSA_ACCEL_CCM_STAR_NO_TAG_AES_192
  • PSA_ACCEL_CCM_STAR_NO_TAG_AES_256
  • PSA_ACCEL_CHACHA20_POLY1305
  • PSA_ACCEL_STREAM_CIPHER_CHACHA20

Accelerated crypto functionality (2)

Syntax: PSA_ACCEL__alg__family__size[__hash-alg__hash-size]

Parameter alg: Accelerated key type.

Parameter family: Accelerated crypto family.

Parameter size: Accelerated key size for this crypto family.

Parameter hash-alg: Accelerated hash algorithm.

Parameter hash-size: Accelerated hash size.

  • PSA_ACCEL_ECDH_SECP_R1_224

  • PSA_ACCEL_ECDH_SECP_R1_256

  • PSA_ACCEL_ECDH_SECP_R1_384

  • PSA_ACCEL_ECDH_SECP_R1_521

  • PSA_ACCEL_ECDH_MONTGOMERY_255

  • PSA_ACCEL_ECDH_MONTGOMERY_448

  • PSA_ACCEL_ECDSA_SECP_R1_224_SHA_1

  • PSA_ACCEL_ECDSA_SECP_R1_224_SHA_224

  • PSA_ACCEL_ECDSA_SECP_R1_224_SHA_256

  • PSA_ACCEL_ECDSA_SECP_R1_224_SHA_384

  • PSA_ACCEL_ECDSA_SECP_R1_224_SHA_512

  • PSA_ACCEL_ECDSA_SECP_R1_256_SHA_1

  • PSA_ACCEL_ECDSA_SECP_R1_256_SHA_224

  • PSA_ACCEL_ECDSA_SECP_R1_256_SHA_256

  • PSA_ACCEL_ECDSA_SECP_R1_256_SHA_384

  • PSA_ACCEL_ECDSA_SECP_R1_256_SHA_512

  • PSA_ACCEL_ECDSA_SECP_R1_384_SHA_1

  • PSA_ACCEL_ECDSA_SECP_R1_384_SHA_224

  • PSA_ACCEL_ECDSA_SECP_R1_384_SHA_256

  • PSA_ACCEL_ECDSA_SECP_R1_384_SHA_384

  • PSA_ACCEL_ECDSA_SECP_R1_384_SHA_512

  • PSA_ACCEL_PURE_EDDSA_TWISTED_EDWARDS_255

  • PSA_ACCEL_PURE_EDDSA_TWISTED_EDWARDS_448

Accelerated crypto functionality (3)

Syntax: PSA_ACCEL__hash-alg__size

Parameter alg: Accelerated crypto algorithm.

Parameter hash-size: Accelerated hash size for this crypto algorithm.

  • PSA_ACCEL_SHA_1
  • PSA_ACCEL_SHA_224
  • PSA_ACCEL_SHA_256
  • PSA_ACCEL_SHA_384
  • PSA_ACCEL_SHA_512
  • PSA_ACCEL_SHA3_224
  • PSA_ACCEL_SHA3_256
  • PSA_ACCEL_SHA3_384
  • PSA_ACCEL_SHA3_512
  • PSA_ACCEL_SHAKE256-512

Accelerated ECC key management functionality

Syntax: PSA_ACCEL__KEY_TYPE_ECC__operation[__family__key-size]

Parameter operation: Accelerated operation.

Parameter family: Accelerated crypto family.

Parameter key-size: Accelerated key size for this key type.

  • PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_224

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_224

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_224

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_224

  • PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_256

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_256

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_256

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_256

  • PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_384

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_384

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_384

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_384

  • PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_521

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_521

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_521

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_521

  • PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_255

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_255

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_255

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_255

  • PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_448

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_448

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_448

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_448

  • PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_255

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_255

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_255

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_255

  • PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_448

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_448

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_448

  • PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_448

Accelerated RSA key management functionality

Syntax: PSA_ACCEL__KEY_TYPE_RSA__operation

Parameter operation: Accelerated operation.

  • PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY
  • PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_IMPORT
  • PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR_EXPORT

Accelerated key sizes

Syntax: PSA_ACCEL__alg__key-type__key-size

Parameter alg: Accelerated crypto algorithm.

Parameter key-type: Accelerated key type.

Parameter key-size: Accelerated key size for this key type.

  • PSA_ACCEL_CMAC_AES_128
  • PSA_ACCEL_CMAC_AES_192
  • PSA_ACCEL_CMAC_AES_256

Accelerated crypto functionality (4)

Syntax: PSA_ACCEL__alg[__hash-alg__hash-size]

Parameter alg: Accelerated crypto algorithm.

Parameter hash-alg: Accelerated hash algorithm.

Parameter hash-size: Accelerated hash size for this hash algorithm.

  • PSA_ACCEL_HKDF_SHA_1

  • PSA_ACCEL_HKDF_SHA_224

  • PSA_ACCEL_HKDF_SHA_256

  • PSA_ACCEL_HKDF_SHA_384

  • PSA_ACCEL_HKDF_SHA_512

  • PSA_ACCEL_HKDF_EXTRACT_SHA_1

  • PSA_ACCEL_HKDF_EXTRACT_SHA_224

  • PSA_ACCEL_HKDF_EXTRACT_SHA_256

  • PSA_ACCEL_HKDF_EXTRACT_SHA_384

  • PSA_ACCEL_HKDF_EXTRACT_SHA_512

  • PSA_ACCEL_HKDF_EXPAND_SHA_1

  • PSA_ACCEL_HKDF_EXPAND_SHA_224

  • PSA_ACCEL_HKDF_EXPAND_SHA_256

  • PSA_ACCEL_HKDF_EXPAND_SHA_384

  • PSA_ACCEL_HKDF_EXPAND_SHA_512

  • PSA_ACCEL_TLS12_PRF_SHA_256

  • PSA_ACCEL_TLS12_PRF_SHA_384

  • PSA_ACCEL_TLS12_PSK_TO_MS_SHA_256

  • PSA_ACCEL_TLS12_PSK_TO_MS_SHA_384

  • PSA_ACCEL_TLS12_ECJPAKE_TO_PMS

  • PSA_ACCEL_PBKDF2_HMAC_SHA_1

  • PSA_ACCEL_PBKDF2_HMAC_SHA_224

  • PSA_ACCEL_PBKDF2_HMAC_SHA_256

  • PSA_ACCEL_PBKDF2_HMAC_SHA_384

  • PSA_ACCEL_PBKDF2_HMAC_SHA_512

  • PSA_ACCEL_PBKDF2_AES_CMAC_PRF_128

Accelerated crypto functionality (5)

Syntax: PSA_ACCEL__alg__key-type__key-size__hash-alg__hash-size

Parameter alg: Accelerated crypto algorithm.

Parameter key-type: Accelerated key type.

Parameter key-size: Accelerated key size for this key type.

Parameter hash-alg: Accelerated hash algorithm.

Parameter hash-size: Accelerated hash size for this hash algorithm.

  • PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_1

  • PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_224

  • PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_256

  • PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_384

  • PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_512

  • PSA_ACCEL_SPAKE2P_SECP_R1_256_SHA_1

  • PSA_ACCEL_SPAKE2P_SECP_R1_256_SHA_224

  • PSA_ACCEL_SPAKE2P_SECP_R1_256_SHA_256

  • PSA_ACCEL_SPAKE2P_SECP_R1_256_SHA_384

  • PSA_ACCEL_SPAKE2P_SECP_R1_256_SHA_512

  • PSA_ACCEL_SRP_6_3072_SHA_1

  • PSA_ACCEL_SRP_6_3072_SHA_224

  • PSA_ACCEL_SRP_6_3072_SHA_256

  • PSA_ACCEL_SRP_6_3072_SHA_384

  • PSA_ACCEL_SRP_6_3072_SHA_512

Accelerated RSA functionality

Syntax: PSA_ACCEL__alg__key-size[__hash-alg__hash-size]

Parameter alg: Accelerated crypto algorithm.

Parameter key-size: Accelerated key size for this key type.

Parameter hash-alg: Accelerated hash algorithm.

Parameter hash-size: Accelerated hash size for this hash algorithm.

  • PSA_ACCEL_RSA_PSS_1024_SHA_1

  • PSA_ACCEL_RSA_PSS_1024_SHA_224

  • PSA_ACCEL_RSA_PSS_1024_SHA_256

  • PSA_ACCEL_RSA_PSS_1024_SHA_384

  • PSA_ACCEL_RSA_PSS_1024_SHA_512

  • PSA_ACCEL_RSA_OAEP_1024_SHA_1

  • PSA_ACCEL_RSA_OAEP_1024_SHA_224

  • PSA_ACCEL_RSA_OAEP_1024_SHA_256

  • PSA_ACCEL_RSA_OAEP_1024_SHA_384

  • PSA_ACCEL_RSA_OAEP_1024_SHA_512

  • PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_1

  • PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_224

  • PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_256

  • PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_384

  • PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_512

  • PSA_ACCEL_RSA_PKCS1V15_CRYPT_1024

  • ... same for all other RSA key sizes ...

Accelerated RNG functionality

Syntax: PSA_ACCEL__function

Parameter function: Accelerated RNG-related function.

  • PSA_ACCEL_GENERATE_RANDOM
  • PSA_ACCEL_GET_ENTROPY