From c4ee2f3a87b3b101e02032228d674e4f48d9cf16 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Mon, 4 May 2020 19:07:18 +0200 Subject: [PATCH] Define a macro to construct a lifetime from persistence and location Applications need this to combine implementation-specific values of persistence levels and location indicators. Signed-off-by: Gilles Peskine --- include/psa/crypto_values.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index ee125ab4cc..ed8471e7b4 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -1611,6 +1611,18 @@ (PSA_KEY_LIFETIME_GET_PERSISTENCE(lifetime) == \ PSA_KEY_LIFETIME_PERSISTENCE_VOLATILE) +/** Construct a lifetime from a persistence level and a location. + * + * \param persistence The persistence level + * (value of type ::psa_key_persistence_t). + * \param location The location indicator + * (value of type ::psa_key_location_t). + * + * \return The constructed lifetime value. + */ +#define PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(persistence, location) \ + ((location) << 8 | (persistence)) + /** The local storage area for persistent keys. * * This storage area is available on all systems that can store persistent