Lines Matching refs:alg

52  * \param alg   A hash algorithm (\c PSA_ALG_XXX value such that
53 * #PSA_ALG_IS_HASH(\p alg) is true), or an HMAC algorithm
60 #define PSA_HASH_LENGTH(alg) \
62 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_MD5 ? 16u : \
63 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_RIPEMD160 ? 20u : \
64 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_1 ? 20u : \
65 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_224 ? 28u : \
66 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_256 ? 32u : \
67 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_384 ? 48u : \
68 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_512 ? 64u : \
69 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_512_224 ? 28u : \
70 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_512_256 ? 32u : \
71 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA3_224 ? 28u : \
72 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA3_256 ? 32u : \
73 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA3_384 ? 48u : \
74 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA3_512 ? 64u : \
84 * \param alg A hash algorithm (\c PSA_ALG_XXX value such that
85 * PSA_ALG_IS_HASH(\p alg) is true).
92 #define PSA_HASH_BLOCK_LENGTH(alg) \
94 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_MD5 ? 64u : \
95 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_RIPEMD160 ? 64u : \
96 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_1 ? 64u : \
97 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_224 ? 64u : \
98 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_256 ? 64u : \
99 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_384 ? 128u : \
100 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_512 ? 128u : \
101 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_512_224 ? 128u : \
102 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA_512_256 ? 128u : \
103 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA3_224 ? 144u : \
104 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA3_256 ? 136u : \
105 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA3_384 ? 104u : \
106 PSA_ALG_HMAC_GET_HASH(alg) == PSA_ALG_SHA3_512 ? 72u : \
176 * \param alg An AEAD algorithm
178 * #PSA_ALG_IS_AEAD(\p alg) is true).
188 #define PSA_AEAD_TAG_LENGTH(key_type, key_bits, alg) \
189 (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 ? \
190 PSA_ALG_AEAD_GET_TAG_LENGTH(alg) : \
195 * See also #PSA_AEAD_TAG_LENGTH(\p key_type, \p key_bits, \p alg).
317 * \param alg A MAC algorithm (\c PSA_ALG_XXX value such that
318 * #PSA_ALG_IS_MAC(\p alg) is true).
328 #define PSA_MAC_LENGTH(key_type, key_bits, alg) \
329 ((alg) & PSA_ALG_MAC_TRUNCATION_MASK ? PSA_MAC_TRUNCATED_LENGTH(alg) : \
330 PSA_ALG_IS_HMAC(alg) ? PSA_HASH_LENGTH(PSA_ALG_HMAC_GET_HASH(alg)) : \
331 PSA_ALG_IS_BLOCK_CIPHER_MAC(alg) ? PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \
348 * compatible with algorithm \p alg.
349 * \param alg An AEAD algorithm
351 * #PSA_ALG_IS_AEAD(\p alg) is true).
360 #define PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, alg, plaintext_length) \
361 (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 ? \
362 (plaintext_length) + PSA_ALG_AEAD_GET_TAG_LENGTH(alg) : \
374 * See also #PSA_AEAD_ENCRYPT_OUTPUT_SIZE(\p key_type, \p alg,
401 * compatible with algorithm \p alg.
402 * \param alg An AEAD algorithm
404 * #PSA_ALG_IS_AEAD(\p alg) is true).
413 #define PSA_AEAD_DECRYPT_OUTPUT_SIZE(key_type, alg, ciphertext_length) \
414 (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 && \
415 (ciphertext_length) > PSA_ALG_AEAD_GET_TAG_LENGTH(alg) ? \
416 (ciphertext_length) - PSA_ALG_AEAD_GET_TAG_LENGTH(alg) : \
428 * See also #PSA_AEAD_DECRYPT_OUTPUT_SIZE(\p key_type, \p alg,
456 * algorithm \p alg.
458 * \param alg An AEAD algorithm (\c PSA_ALG_XXX value such that
459 * #PSA_ALG_IS_AEAD(\p alg) is true).
465 #define PSA_AEAD_NONCE_LENGTH(key_type, alg) \
467 MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_CCM) ? 13u : \
468 MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_GCM) ? 12u : \
471 MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_CHACHA20_POLY1305) ? 12u : \
501 * compatible with algorithm \p alg.
502 * \param alg An AEAD algorithm
504 * #PSA_ALG_IS_AEAD(\p alg) is true).
517 #define PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, input_length) \
518 (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 ? \
519 PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \
530 * See also #PSA_AEAD_UPDATE_OUTPUT_SIZE(\p key_type, \p alg, \p input_length).
547 compatible with algorithm \p alg.
548 * \param alg An AEAD algorithm
550 * #PSA_ALG_IS_AEAD(\p alg) is true).
558 #define PSA_AEAD_FINISH_OUTPUT_SIZE(key_type, alg) \
559 (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 && \
560 PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \
567 * See also #PSA_AEAD_FINISH_OUTPUT_SIZE(\p key_type, \p alg).
581 * compatible with algorithm \p alg.
582 * \param alg An AEAD algorithm
584 * #PSA_ALG_IS_AEAD(\p alg) is true).
592 #define PSA_AEAD_VERIFY_OUTPUT_SIZE(key_type, alg) \
593 (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 && \
594 PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \
601 * See also #PSA_AEAD_VERIFY_OUTPUT_SIZE(\p key_type, \p alg).
605 #define PSA_RSA_MINIMUM_PADDING_SIZE(alg) \
606 (PSA_ALG_IS_RSA_OAEP(alg) ? \
607 2u * PSA_HASH_LENGTH(PSA_ALG_RSA_OAEP_GET_HASH(alg)) + 1u : \
635 * \param alg The signature algorithm.
646 #define PSA_SIGN_OUTPUT_SIZE(key_type, key_bits, alg) \
647 (PSA_KEY_TYPE_IS_RSA(key_type) ? ((void) alg, PSA_BITS_TO_BYTES(key_bits)) : \
649 ((void) alg, 0u))
688 * \param alg The asymmetric encryption algorithm.
699 #define PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(key_type, key_bits, alg) \
701 ((void) alg, PSA_BITS_TO_BYTES(key_bits)) : \
707 * See also #PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(\p key_type, \p key_bits, \p alg).
727 * \param alg The asymmetric encryption algorithm.
738 #define PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE(key_type, key_bits, alg) \
740 PSA_BITS_TO_BYTES(key_bits) - PSA_RSA_MINIMUM_PADDING_SIZE(alg) : \
748 * See also #PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE(\p key_type, \p key_bits, \p alg).
1103 * \param key_type A symmetric key type that is compatible with algorithm \p alg.
1105 * \param alg A cipher algorithm (\c PSA_ALG_XXX value such that #PSA_ALG_IS_CIPHER(\p alg) is true).
1112 #define PSA_CIPHER_IV_LENGTH(key_type, alg) \
1114 ((alg) == PSA_ALG_CTR || \
1115 (alg) == PSA_ALG_CFB || \
1116 (alg) == PSA_ALG_OFB || \
1117 (alg) == PSA_ALG_XTS || \
1118 (alg) == PSA_ALG_CBC_NO_PADDING || \
1119 (alg) == PSA_ALG_CBC_PKCS7) ? PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \
1121 (alg) == PSA_ALG_STREAM_CIPHER ? 12u : \
1122 (alg) == PSA_ALG_CCM_STAR_NO_TAG ? 13u : \
1144 * alg.
1145 * \param alg A cipher algorithm (\c PSA_ALG_XXX value such that
1146 * #PSA_ALG_IS_CIPHER(\p alg) is true).
1154 #define PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input_length) \
1155 (alg == PSA_ALG_CBC_PKCS7 ? \
1159 PSA_CIPHER_IV_LENGTH((key_type), (alg)) : 0u) : \
1160 (PSA_ALG_IS_CIPHER(alg) ? \
1161 (input_length) + PSA_CIPHER_IV_LENGTH((key_type), (alg)) : \
1170 * See also #PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(\p key_type, \p alg, \p input_length).
1189 * alg.
1190 * \param alg A cipher algorithm (\c PSA_ALG_XXX value such that
1191 * #PSA_ALG_IS_CIPHER(\p alg) is true).
1199 #define PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, input_length) \
1200 (PSA_ALG_IS_CIPHER(alg) && \
1211 * See also #PSA_CIPHER_DECRYPT_OUTPUT_SIZE(\p key_type, \p alg, \p input_length).
1227 * alg.
1228 * \param alg A cipher algorithm (PSA_ALG_XXX value such that
1229 * #PSA_ALG_IS_CIPHER(\p alg) is true).
1236 #define PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, input_length) \
1237 (PSA_ALG_IS_CIPHER(alg) ? \
1239 (((alg) == PSA_ALG_CBC_PKCS7 || \
1240 (alg) == PSA_ALG_CBC_NO_PADDING || \
1241 (alg) == PSA_ALG_ECB_NO_PADDING) ? \
1253 * See also #PSA_CIPHER_UPDATE_OUTPUT_SIZE(\p key_type, \p alg, \p input_length).
1270 * alg.
1271 * \param alg A cipher algorithm (PSA_ALG_XXX value such that
1272 * #PSA_ALG_IS_CIPHER(\p alg) is true).
1277 #define PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg) \
1278 (PSA_ALG_IS_CIPHER(alg) ? \
1279 (alg == PSA_ALG_CBC_PKCS7 ? \
1287 * See also #PSA_CIPHER_FINISH_OUTPUT_SIZE(\p key_type, \p alg).