Merge pull request #9278 from valeriosetti/fix-psasim-logs

psa_sim: improve log prints
This commit is contained in:
Tom Cosgrove 2024-06-19 11:03:05 +01:00 committed by GitHub
commit 125440d344
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 34 additions and 22 deletions

View File

@ -13,20 +13,18 @@
#if defined(DEBUG) #if defined(DEBUG)
#define INFO(fmt, ...) \ #define INFO(fmt, ...) \
fprintf(stdout, "Info (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__) fprintf(stdout, "Info (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__)
#else /* !DEBUG */
#define INFO(...)
#endif /* DEBUG*/
#define ERROR(fmt, ...) \ #define ERROR(fmt, ...) \
fprintf(stdout, "Error (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__) fprintf(stderr, "Error (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__)
#define FATAL(fmt, ...) \ #define FATAL(fmt, ...) \
{ \ { \
fprintf(stdout, "Fatal (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__); \ fprintf(stderr, "Fatal (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__); \
abort(); \ abort(); \
} }
#else /* DEBUG */
#define INFO(...)
#define ERROR(...)
#define FATAL(...)
#endif /* DEBUG*/
#define PROJECT_ID 'M' #define PROJECT_ID 'M'
#define PATHNAMESIZE 256 #define PATHNAMESIZE 256

View File

@ -7,12 +7,14 @@
/* Includes from mbedtls */ /* Includes from mbedtls */
#include "psa/crypto.h" #include "psa/crypto.h"
#include "util.h"
int main() int main()
{ {
/* psa_crypto_init() connects to the server */ /* psa_crypto_init() connects to the server */
psa_status_t status = psa_crypto_init(); psa_status_t status = psa_crypto_init();
if (status != PSA_SUCCESS) { if (status != PSA_SUCCESS) {
ERROR("psa_crypto_init returned %d", status);
return 1; return 1;
} }

View File

@ -199,7 +199,6 @@ static psa_status_t process_response(int rx_qid, vectors_t *vecs, int type,
default: default:
FATAL(" ERROR: unknown internal message type: %ld", FATAL(" ERROR: unknown internal message type: %ld",
response.message_type); response.message_type);
return ret;
} }
} }
} }
@ -301,10 +300,10 @@ psa_handle_t psa_connect(uint32_t sid, uint32_t minor_version)
handles[idx].valid = 1; handles[idx].valid = 1;
return idx; return idx;
} else { } else {
INFO("Server didn't like you"); ERROR("Server didn't like you");
} }
} else { } else {
INFO("Couldn't contact RoT service. Does it exist?"); ERROR("Couldn't contact RoT service. Does it exist?");
if (__psa_ff_client_security_state == 0) { if (__psa_ff_client_security_state == 0) {
ERROR("Invalid SID"); ERROR("Invalid SID");
@ -339,7 +338,7 @@ uint32_t psa_version(uint32_t sid)
} }
} }
} }
INFO("psa_version failed: does the service exist?"); ERROR("psa_version failed: does the service exist?");
return PSA_VERSION_NONE; return PSA_VERSION_NONE;
} }

View File

@ -22,7 +22,7 @@
#include "psa/crypto.h" #include "psa/crypto.h"
#define CLIENT_PRINT(fmt, ...) \ #define CLIENT_PRINT(fmt, ...) \
PRINT("Client: " fmt, ##__VA_ARGS__) INFO("Client: " fmt, ##__VA_ARGS__)
static psa_handle_t handle = -1; static psa_handle_t handle = -1;

View File

@ -302,7 +302,7 @@ sub client_calls_header
#include "psa/crypto.h" #include "psa/crypto.h"
#define CLIENT_PRINT(fmt, ...) \ #define CLIENT_PRINT(fmt, ...) \
PRINT("Client: " fmt, ##__VA_ARGS__) INFO("Client: " fmt, ##__VA_ARGS__)
static psa_handle_t handle = -1; static psa_handle_t handle = -1;

View File

@ -10,6 +10,7 @@
*/ */
#include "psa_sim_serialise.h" #include "psa_sim_serialise.h"
#include "util.h"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@ -71,8 +72,7 @@ static ssize_t allocate_hash_operation_slot(void)
{ {
psasim_client_handle_t handle = next_hash_operation_handle++; psasim_client_handle_t handle = next_hash_operation_handle++;
if (next_hash_operation_handle == 0) { /* wrapped around */ if (next_hash_operation_handle == 0) { /* wrapped around */
fprintf(stderr, "MAX HASH HANDLES REACHED\n"); FATAL("Hash operation handle wrapped");
exit(1);
} }
for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) { for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) {
@ -82,6 +82,8 @@ static ssize_t allocate_hash_operation_slot(void)
} }
} }
ERROR("All slots are currently used. Unable to allocate a new one.");
return -1; /* all in use */ return -1; /* all in use */
} }
@ -94,7 +96,9 @@ static ssize_t find_hash_slot_by_handle(psasim_client_handle_t handle)
} }
} }
return -1; /* all in use */ ERROR("Unable to find slot by handle %u", handle);
return -1; /* not found */
} }
static psa_aead_operation_t aead_operations[MAX_LIVE_HANDLES_PER_CLASS]; static psa_aead_operation_t aead_operations[MAX_LIVE_HANDLES_PER_CLASS];
@ -106,8 +110,7 @@ static ssize_t allocate_aead_operation_slot(void)
{ {
psasim_client_handle_t handle = next_aead_operation_handle++; psasim_client_handle_t handle = next_aead_operation_handle++;
if (next_aead_operation_handle == 0) { /* wrapped around */ if (next_aead_operation_handle == 0) { /* wrapped around */
fprintf(stderr, "MAX HASH HANDLES REACHED\n"); FATAL("Aead operation handle wrapped");
exit(1);
} }
for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) { for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) {
@ -117,6 +120,8 @@ static ssize_t allocate_aead_operation_slot(void)
} }
} }
ERROR("All slots are currently used. Unable to allocate a new one.");
return -1; /* all in use */ return -1; /* all in use */
} }
@ -129,7 +134,9 @@ static ssize_t find_aead_slot_by_handle(psasim_client_handle_t handle)
} }
} }
return -1; /* all in use */ ERROR("Unable to find slot by handle %u", handle);
return -1; /* not found */
} }
size_t psasim_serialise_begin_needs(void) size_t psasim_serialise_begin_needs(void)

View File

@ -724,6 +724,7 @@ sub c_header
*/ */
#include "psa_sim_serialise.h" #include "psa_sim_serialise.h"
#include "util.h"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@ -788,6 +789,8 @@ sub define_operation_type_data_and_functions
{ {
my ($type) = @_; # e.g. 'hash' rather than 'psa_hash_operation_t' my ($type) = @_; # e.g. 'hash' rather than 'psa_hash_operation_t'
my $utype = ucfirst($type);
return <<EOF; return <<EOF;
static psa_${type}_operation_t ${type}_operations[MAX_LIVE_HANDLES_PER_CLASS]; static psa_${type}_operation_t ${type}_operations[MAX_LIVE_HANDLES_PER_CLASS];
@ -799,8 +802,7 @@ static ssize_t allocate_${type}_operation_slot(void)
{ {
psasim_client_handle_t handle = next_${type}_operation_handle++; psasim_client_handle_t handle = next_${type}_operation_handle++;
if (next_${type}_operation_handle == 0) { /* wrapped around */ if (next_${type}_operation_handle == 0) { /* wrapped around */
fprintf(stderr, "MAX HASH HANDLES REACHED\\n"); FATAL("$utype operation handle wrapped");
exit(1);
} }
for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) { for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) {
@ -810,6 +812,8 @@ static ssize_t allocate_${type}_operation_slot(void)
} }
} }
ERROR("All slots are currently used. Unable to allocate a new one.");
return -1; /* all in use */ return -1; /* all in use */
} }
@ -822,7 +826,9 @@ static ssize_t find_${type}_slot_by_handle(psasim_client_handle_t handle)
} }
} }
return -1; /* all in use */ ERROR("Unable to find slot by handle %u", handle);
return -1; /* not found */
} }
EOF EOF
} }