When compiled with NTS support, don't require a SIV cipher to be always
supported (e.g. due to a different version of a library used for
building). Handle this case with a fatal message instead of crash.
Also, check the support early in the client unit test to prevent a hang.
assert(0);
UTI_GetRandomBytesUrandom(server_keys[index].key, key_length);
- if (!SIV_SetKey(server_keys[index].siv, server_keys[index].key, key_length))
- assert(0);
+
+ if (!server_keys[index].siv ||
+ !SIV_SetKey(server_keys[index].siv, server_keys[index].key, key_length)) {
+ LOG_FATAL("Could not set SIV key");
+ }
UTI_GetRandomBytes(&server_keys[index].id, sizeof (server_keys[index].id));
server = Malloc(sizeof (struct NtsServer));
server->siv = SIV_CreateInstance(SERVER_SIV);
+ if (!server->siv)
+ LOG_FATAL("Could not initialise SIV cipher");
}
/* ================================================== */
IPAddr ip_addr;
int i, j, prev_num_cookies, valid;
+ TEST_CHECK(SIV_GetKeyLength(AEAD_AES_SIV_CMAC_256) > 0);
+
SCK_GetLoopbackIPAddress(AF_INET, &addr.ip_addr);
addr.port = 0;