make DES_is_weak_key ct

This commit is contained in:
Love Hornquist Astrand
2010-01-01 13:08:04 +01:00
parent 212a3ea09a
commit dd04b1d7ba

View File

@@ -92,6 +92,8 @@
#include <krb5-types.h>
#include <assert.h>
#include <roken.h>
#include "des.h"
#include "ui.h"
@@ -180,14 +182,13 @@ static DES_cblock weak_keys[] = {
int
DES_is_weak_key(DES_cblock *key)
{
int weak = 0;
int i;
/* Not constant time size if the key is weak, the app should not use it. */
for (i = 0; i < sizeof(weak_keys)/sizeof(weak_keys[0]); i++) {
if (memcmp(weak_keys[i], key, DES_CBLOCK_LEN) == 0)
return 1;
}
return 0;
for (i = 0; i < sizeof(weak_keys)/sizeof(weak_keys[0]); i++)
weak ^= (ct_memcmp(weak_keys[i], key, DES_CBLOCK_LEN) == 0);
return !!weak;
}
/**