make DES_is_weak_key ct
This commit is contained in:
@@ -92,6 +92,8 @@
|
|||||||
#include <krb5-types.h>
|
#include <krb5-types.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include <roken.h>
|
||||||
|
|
||||||
#include "des.h"
|
#include "des.h"
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
|
|
||||||
@@ -180,14 +182,13 @@ static DES_cblock weak_keys[] = {
|
|||||||
int
|
int
|
||||||
DES_is_weak_key(DES_cblock *key)
|
DES_is_weak_key(DES_cblock *key)
|
||||||
{
|
{
|
||||||
|
int weak = 0;
|
||||||
int i;
|
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++)
|
||||||
for (i = 0; i < sizeof(weak_keys)/sizeof(weak_keys[0]); i++) {
|
weak ^= (ct_memcmp(weak_keys[i], key, DES_CBLOCK_LEN) == 0);
|
||||||
if (memcmp(weak_keys[i], key, DES_CBLOCK_LEN) == 0)
|
|
||||||
return 1;
|
return !!weak;
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user