Browse Source

GnuTLS: Add TEST_FAIL() to crypto routines for testing purposes

This allows number of hwsim test cases for local error conditions to be
executed with GnuTLS-based builds.

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 7 years ago
parent
commit
622d4d49e2
1 changed files with 12 additions and 0 deletions
  1. 12 0
      src/crypto/crypto_gnutls.c

+ 12 - 0
src/crypto/crypto_gnutls.c

@@ -24,6 +24,9 @@ static int gnutls_digest_vector(int algo, size_t num_elem,
 	unsigned char *p;
 	size_t i;
 
+	if (TEST_FAIL())
+		return -1;
+
 	if (gcry_md_open(&hd, algo, 0) != GPG_ERR_NO_ERROR)
 		return -1;
 	for (i = 0; i < num_elem; i++)
@@ -103,6 +106,9 @@ static int gnutls_hmac_vector(int algo, const u8 *key, size_t key_len,
 	unsigned char *p;
 	size_t i;
 
+	if (TEST_FAIL())
+		return -1;
+
 	if (gcry_md_open(&hd, algo, GCRY_MD_FLAG_HMAC) != GPG_ERR_NO_ERROR)
 		return -1;
 	if (gcry_md_setkey(hd, key, key_len) != GPG_ERR_NO_ERROR) {
@@ -210,6 +216,9 @@ void * aes_encrypt_init(const u8 *key, size_t len)
 {
 	gcry_cipher_hd_t hd;
 
+	if (TEST_FAIL())
+		return NULL;
+
 	if (gcry_cipher_open(&hd, GCRY_CIPHER_AES, GCRY_CIPHER_MODE_ECB, 0) !=
 	    GPG_ERR_NO_ERROR) {
 		printf("cipher open failed\n");
@@ -244,6 +253,9 @@ void * aes_decrypt_init(const u8 *key, size_t len)
 {
 	gcry_cipher_hd_t hd;
 
+	if (TEST_FAIL())
+		return NULL;
+
 	if (gcry_cipher_open(&hd, GCRY_CIPHER_AES, GCRY_CIPHER_MODE_ECB, 0) !=
 	    GPG_ERR_NO_ERROR)
 		return NULL;