Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 34222
b: refs/heads/master
c: 560c06a
h: refs/heads/master
v: v3
  • Loading branch information
Herbert Xu committed Sep 21, 2006
1 parent b372026 commit 39c064e
Show file tree
Hide file tree
Showing 25 changed files with 64 additions and 93 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 25cdbcd9e5d20e431f829cafce48a418830011f4
refs/heads/master: 560c06ae1ab7c677002ea3b6ac83521bf12ee07d
3 changes: 2 additions & 1 deletion trunk/arch/i386/crypto/aes.c
Original file line number Diff line number Diff line change
Expand Up @@ -379,12 +379,13 @@ static void gen_tabs(void)
}

static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len, u32 *flags)
unsigned int key_len)
{
int i;
u32 ss[8];
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
const __le32 *key = (const __le32 *)in_key;
u32 *flags = &tfm->crt_flags;

/* encryption schedule */

Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/s390/crypto/aes_s390.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,10 @@ struct s390_aes_ctx {
};

static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len, u32 *flags)
unsigned int key_len)
{
struct s390_aes_ctx *sctx = crypto_tfm_ctx(tfm);
u32 *flags = &tfm->crt_flags;

switch (key_len) {
case 16:
Expand Down
13 changes: 8 additions & 5 deletions trunk/arch/s390/crypto/des_s390.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,10 @@ struct crypt_s390_des3_192_ctx {
};

static int des_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
struct crypt_s390_des_ctx *dctx = crypto_tfm_ctx(tfm);
u32 *flags = &tfm->crt_flags;
int ret;

/* test if key is valid (not a weak key) */
Expand Down Expand Up @@ -167,11 +168,12 @@ static struct crypto_alg des_alg = {
*
*/
static int des3_128_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
int i, ret;
struct crypt_s390_des3_128_ctx *dctx = crypto_tfm_ctx(tfm);
const u8* temp_key = key;
const u8 *temp_key = key;
u32 *flags = &tfm->crt_flags;

if (!(memcmp(key, &key[DES_KEY_SIZE], DES_KEY_SIZE))) {
*flags |= CRYPTO_TFM_RES_BAD_KEY_SCHED;
Expand Down Expand Up @@ -303,11 +305,12 @@ static struct crypto_alg des3_128_alg = {
*
*/
static int des3_192_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
int i, ret;
struct crypt_s390_des3_192_ctx *dctx = crypto_tfm_ctx(tfm);
const u8* temp_key = key;
const u8 *temp_key = key;
u32 *flags = &tfm->crt_flags;

if (!(memcmp(key, &key[DES_KEY_SIZE], DES_KEY_SIZE) &&
memcmp(&key[DES_KEY_SIZE], &key[DES_KEY_SIZE * 2],
Expand Down
5 changes: 3 additions & 2 deletions trunk/arch/x86_64/crypto/aes.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,13 +228,14 @@ static void __init gen_tabs(void)
}

static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len, u32 *flags)
unsigned int key_len)
{
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
const __le32 *key = (const __le32 *)in_key;
u32 *flags = &tfm->crt_flags;
u32 i, j, t, u, v, w;

if (key_len != 16 && key_len != 24 && key_len != 32) {
if (key_len % 8) {
*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}
Expand Down
5 changes: 3 additions & 2 deletions trunk/crypto/aes.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,13 +249,14 @@ gen_tabs (void)
}

static int aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len, u32 *flags)
unsigned int key_len)
{
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
const __le32 *key = (const __le32 *)in_key;
u32 *flags = &tfm->crt_flags;
u32 i, t, u, v, w;

if (key_len != 16 && key_len != 24 && key_len != 32) {
if (key_len % 8) {
*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}
Expand Down
3 changes: 2 additions & 1 deletion trunk/crypto/anubis.c
Original file line number Diff line number Diff line change
Expand Up @@ -461,10 +461,11 @@ static const u32 rc[] = {
};

static int anubis_setkey(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len, u32 *flags)
unsigned int key_len)
{
struct anubis_ctx *ctx = crypto_tfm_ctx(tfm);
const __be32 *key = (const __be32 *)in_key;
u32 *flags = &tfm->crt_flags;
int N, R, i, r;
u32 kappa[ANUBIS_MAX_N];
u32 inter[ANUBIS_MAX_N];
Expand Down
2 changes: 1 addition & 1 deletion trunk/crypto/arc4.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ struct arc4_ctx {
};

static int arc4_set_key(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len, u32 *flags)
unsigned int key_len)
{
struct arc4_ctx *ctx = crypto_tfm_ctx(tfm);
int i, j = 0, k = 0;
Expand Down
3 changes: 1 addition & 2 deletions trunk/crypto/blowfish.c
Original file line number Diff line number Diff line change
Expand Up @@ -399,8 +399,7 @@ static void bf_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
/*
* Calculates the blowfish S and P boxes for encryption and decryption.
*/
static int bf_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
static int bf_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen)
{
struct bf_ctx *ctx = crypto_tfm_ctx(tfm);
u32 *P = ctx->p;
Expand Down
8 changes: 1 addition & 7 deletions trunk/crypto/cast5.c
Original file line number Diff line number Diff line change
Expand Up @@ -769,20 +769,14 @@ static void key_schedule(u32 * x, u32 * z, u32 * k)
}


static int cast5_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned key_len, u32 *flags)
static int cast5_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned key_len)
{
struct cast5_ctx *c = crypto_tfm_ctx(tfm);
int i;
u32 x[4];
u32 z[4];
u32 k[16];
__be32 p_key[4];

if (key_len < 5 || key_len > 16) {
*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}

c->rr = key_len <= 10 ? 1 : 0;

Expand Down
5 changes: 3 additions & 2 deletions trunk/crypto/cast6.c
Original file line number Diff line number Diff line change
Expand Up @@ -382,14 +382,15 @@ static inline void W(u32 *key, unsigned int i) {
}

static int cast6_setkey(struct crypto_tfm *tfm, const u8 *in_key,
unsigned key_len, u32 *flags)
unsigned key_len)
{
int i;
u32 key[8];
__be32 p_key[8]; /* padded key */
struct cast6_ctx *c = crypto_tfm_ctx(tfm);
u32 *flags = &tfm->crt_flags;

if (key_len < 16 || key_len > 32 || key_len % 4 != 0) {
if (key_len % 4 != 0) {
*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}
Expand Down
4 changes: 2 additions & 2 deletions trunk/crypto/cipher.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,12 +264,12 @@ static int setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen)
{
struct cipher_alg *cia = &tfm->__crt_alg->cra_cipher;

tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
if (keylen < cia->cia_min_keysize || keylen > cia->cia_max_keysize) {
tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
} else
return cia->cia_setkey(tfm, key, keylen,
&tfm->crt_flags);
return cia->cia_setkey(tfm, key, keylen);
}

static int ecb_encrypt(struct crypto_tfm *tfm,
Expand Down
5 changes: 2 additions & 3 deletions trunk/crypto/crc32c.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,12 @@ static void chksum_init(struct crypto_tfm *tfm)
* the seed.
*/
static int chksum_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
struct chksum_ctx *mctx = crypto_tfm_ctx(tfm);

if (keylen != sizeof(mctx->crc)) {
if (flags)
*flags = CRYPTO_TFM_RES_BAD_KEY_LEN;
tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}
mctx->key = le32_to_cpu(*(__le32 *)key);
Expand Down
2 changes: 1 addition & 1 deletion trunk/crypto/crypto_null.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ static void null_final(struct crypto_tfm *tfm, u8 *out)
{ }

static int null_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{ return 0; }

static void null_crypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
Expand Down
6 changes: 4 additions & 2 deletions trunk/crypto/des.c
Original file line number Diff line number Diff line change
Expand Up @@ -784,9 +784,10 @@ static void dkey(u32 *pe, const u8 *k)
}

static int des_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
struct des_ctx *dctx = crypto_tfm_ctx(tfm);
u32 *flags = &tfm->crt_flags;
u32 tmp[DES_EXPKEY_WORDS];
int ret;

Expand Down Expand Up @@ -864,11 +865,12 @@ static void des_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
*
*/
static int des3_ede_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
const u32 *K = (const u32 *)key;
struct des3_ede_ctx *dctx = crypto_tfm_ctx(tfm);
u32 *expkey = dctx->expkey;
u32 *flags = &tfm->crt_flags;

if (unlikely(!((K[0] ^ K[2]) | (K[1] ^ K[3])) ||
!((K[2] ^ K[4]) | (K[3] ^ K[5]))))
Expand Down
15 changes: 10 additions & 5 deletions trunk/crypto/digest.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,16 @@ static void final(struct crypto_tfm *tfm, u8 *out)
tfm->__crt_alg->cra_digest.dia_final(tfm, out);
}

static int nosetkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen)
{
tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
return -ENOSYS;
}

static int setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen)
{
u32 flags;
if (tfm->__crt_alg->cra_digest.dia_setkey == NULL)
return -ENOSYS;
return tfm->__crt_alg->cra_digest.dia_setkey(tfm, key, keylen, &flags);
tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
return tfm->__crt_alg->cra_digest.dia_setkey(tfm, key, keylen);
}

static void digest(struct crypto_tfm *tfm,
Expand All @@ -100,12 +104,13 @@ int crypto_init_digest_flags(struct crypto_tfm *tfm, u32 flags)
int crypto_init_digest_ops(struct crypto_tfm *tfm)
{
struct digest_tfm *ops = &tfm->crt_digest;
struct digest_alg *dalg = &tfm->__crt_alg->cra_digest;

ops->dit_init = init;
ops->dit_update = update;
ops->dit_final = final;
ops->dit_digest = digest;
ops->dit_setkey = setkey;
ops->dit_setkey = dalg->dia_setkey ? setkey : nosetkey;

return crypto_alloc_hmac_block(tfm);
}
Expand Down
8 changes: 1 addition & 7 deletions trunk/crypto/khazad.c
Original file line number Diff line number Diff line change
Expand Up @@ -755,19 +755,13 @@ static const u64 c[KHAZAD_ROUNDS + 1] = {
};

static int khazad_setkey(struct crypto_tfm *tfm, const u8 *in_key,
unsigned int key_len, u32 *flags)
unsigned int key_len)
{
struct khazad_ctx *ctx = crypto_tfm_ctx(tfm);
const __be32 *key = (const __be32 *)in_key;
int r;
const u64 *S = T7;
u64 K2, K1;

if (key_len != 16)
{
*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}

/* key is supposed to be 32-bit aligned */
K2 = ((u64)be32_to_cpu(key[0]) << 32) | be32_to_cpu(key[1]);
Expand Down
5 changes: 2 additions & 3 deletions trunk/crypto/michael_mic.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,14 +123,13 @@ static void michael_final(struct crypto_tfm *tfm, u8 *out)


static int michael_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
struct michael_mic_ctx *mctx = crypto_tfm_ctx(tfm);
const __le32 *data = (const __le32 *)key;

if (keylen != 8) {
if (flags)
*flags = CRYPTO_TFM_RES_BAD_KEY_LEN;
tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}

Expand Down
19 changes: 3 additions & 16 deletions trunk/crypto/serpent.c
Original file line number Diff line number Diff line change
Expand Up @@ -216,21 +216,14 @@ struct serpent_ctx {


static int serpent_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
struct serpent_ctx *ctx = crypto_tfm_ctx(tfm);
u32 *k = ctx->expkey;
u8 *k8 = (u8 *)k;
u32 r0,r1,r2,r3,r4;
int i;

if ((keylen < SERPENT_MIN_KEY_SIZE)
|| (keylen > SERPENT_MAX_KEY_SIZE))
{
*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}

/* Copy key, add padding */

for (i = 0; i < keylen; ++i)
Expand Down Expand Up @@ -497,21 +490,15 @@ static struct crypto_alg serpent_alg = {
};

static int tnepres_setkey(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen, u32 *flags)
unsigned int keylen)
{
u8 rev_key[SERPENT_MAX_KEY_SIZE];
int i;

if ((keylen < SERPENT_MIN_KEY_SIZE)
|| (keylen > SERPENT_MAX_KEY_SIZE)) {
*flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
return -EINVAL;
}

for (i = 0; i < keylen; ++i)
rev_key[keylen - i - 1] = key[i];

return serpent_setkey(tfm, rev_key, keylen, flags);
return serpent_setkey(tfm, rev_key, keylen);
}

static void tnepres_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
Expand Down
5 changes: 1 addition & 4 deletions trunk/crypto/tcrypt.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,7 @@ static void test_hash(char *algo, struct hash_testvec *template,
sg_set_buf(&sg[0], hash_tv[i].plaintext, hash_tv[i].psize);

crypto_digest_init(tfm);
if (tfm->crt_u.digest.dit_setkey) {
crypto_digest_setkey(tfm, hash_tv[i].key,
hash_tv[i].ksize);
}
crypto_digest_setkey(tfm, hash_tv[i].key, hash_tv[i].ksize);
crypto_digest_update(tfm, sg, 1);
crypto_digest_final(tfm, result);

Expand Down
Loading

0 comments on commit 39c064e

Please sign in to comment.