if (unlikely(e == NULL))
return 0;
else
- return (e->preimage_insecure==0);
+ return !(e->flags & GNUTLS_MAC_FLAG_PREIMAGE_INSECURE);
}
/* Functions for cipher suites. */
.id = GNUTLS_MAC_MD5_SHA1,
.output_size = 36,
.key_size = 36,
- .preimage_insecure = 1,
+ .flags = GNUTLS_MAC_FLAG_PREIMAGE_INSECURE,
.block_size = 64},
{.name = "SHA256",
.oid = HASH_OID_SHA256,
.id = GNUTLS_MAC_MD5,
.output_size = 16,
.key_size = 16,
- .preimage_insecure = 1,
+ .flags = GNUTLS_MAC_FLAG_PREIMAGE_INSECURE,
.block_size = 64},
{.name = "MD2",
.oid = HASH_OID_MD2,
- .preimage_insecure = 1,
+ .flags = GNUTLS_MAC_FLAG_PREIMAGE_INSECURE,
.id = GNUTLS_MAC_MD2},
{.name = "RIPEMD160",
.oid = HASH_OID_RMD160,
for(p = hash_algorithms; p->name != NULL; p++) {
if (p->oid != NULL && c_strcasecmp(p->name, name) == 0) {
- p->preimage_insecure = 1;
+ p->flags |= GNUTLS_MAC_FLAG_PREIMAGE_INSECURE;
return 0;
}
}
for(p = hash_algorithms; p->name != NULL; p++) {
if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t)dig) {
- return p->preimage_insecure;
+ return p->flags & GNUTLS_MAC_FLAG_PREIMAGE_INSECURE;
}
}
unsigned tls_id; /* The RFC4492 namedCurve ID or TLS 1.3 group ID */
} gnutls_group_entry_st;
+#define GNUTLS_MAC_FLAG_PREIMAGE_INSECURE 1 /* if this algorithm should not be trusted for pre-image attacks */
/* This structure is used both for MACs and digests
*/
typedef struct mac_entry_st {
unsigned nonce_size;
unsigned placeholder; /* if set, then not a real MAC */
unsigned block_size; /* internal block size for HMAC */
- unsigned preimage_insecure; /* if this algorithm should not be trusted for pre-image attacks */
+ unsigned flags;
} mac_entry_st;
typedef struct {