Skip to content

Commit 135baef

Browse files
author
Hanno Becker
committed
Define maximum EC public key length depending on enabled curves
1 parent 28f7844 commit 135baef

File tree

1 file changed

+80
-1
lines changed

1 file changed

+80
-1
lines changed

include/mbedtls/psa_util.h

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,85 @@ static inline int mbedtls_psa_get_ecc_oid_from_id(
235235
return( -1 );
236236
}
237237

238-
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 256
238+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 1
239+
240+
#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
241+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 192 + 7 ) / 8 ) + 1 )
242+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
243+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 192 + 7 ) / 8 ) + 1 )
244+
#endif
245+
#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
246+
247+
#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
248+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 224 + 7 ) / 8 ) + 1 )
249+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
250+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 224 + 7 ) / 8 ) + 1 )
251+
#endif
252+
#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
253+
254+
#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
255+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 256 + 7 ) / 8 ) + 1 )
256+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
257+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 256 + 7 ) / 8 ) + 1 )
258+
#endif
259+
#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
260+
261+
#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
262+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 384 + 7 ) / 8 ) + 1 )
263+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
264+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 384 + 7 ) / 8 ) + 1 )
265+
#endif
266+
#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
267+
268+
#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
269+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 521 + 7 ) / 8 ) + 1 )
270+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
271+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 521 + 7 ) / 8 ) + 1 )
272+
#endif
273+
#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
274+
275+
#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
276+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 192 + 7 ) / 8 ) + 1 )
277+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
278+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 192 + 7 ) / 8 ) + 1 )
279+
#endif
280+
#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
281+
282+
#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
283+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 224 + 7 ) / 8 ) + 1 )
284+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
285+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 224 + 7 ) / 8 ) + 1 )
286+
#endif
287+
#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
288+
289+
#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
290+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 256 + 7 ) / 8 ) + 1 )
291+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
292+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 256 + 7 ) / 8 ) + 1 )
293+
#endif
294+
#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
295+
296+
#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
297+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 256 + 7 ) / 8 ) + 1 )
298+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
299+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 256 + 7 ) / 8 ) + 1 )
300+
#endif
301+
#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
302+
303+
#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
304+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 384 + 7 ) / 8 ) + 1 )
305+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
306+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 384 + 7 ) / 8 ) + 1 )
307+
#endif
308+
#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
309+
310+
#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
311+
#if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 512 + 7 ) / 8 ) + 1 )
312+
#undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH
313+
#define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 512 + 7 ) / 8 ) + 1 )
314+
#endif
315+
#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
316+
239317

240318
static inline psa_ecc_curve_t mbedtls_psa_translate_ecc_group( mbedtls_ecp_group_id grpid )
241319
{
@@ -298,6 +376,7 @@ static inline psa_ecc_curve_t mbedtls_psa_translate_ecc_group( mbedtls_ecp_group
298376
}
299377
}
300378

379+
301380
#define MBEDTLS_PSA_ECC_KEY_BITS_OF_CURVE( curve ) \
302381
( curve == PSA_ECC_CURVE_SECP192R1 ? 192 : \
303382
curve == PSA_ECC_CURVE_SECP224R1 ? 224 : \

0 commit comments

Comments
 (0)