Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 91645
b: refs/heads/master
c: d5dc392
h: refs/heads/master
i:
  91643: eb45eb9
v: v3
  • Loading branch information
Sebastian Siewior authored and Herbert Xu committed Apr 21, 2008
1 parent ad9ea2e commit 2604063
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 162 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: 477035c2abdcff7583369e5777cb7be1bb1dbea8
refs/heads/master: d5dc392742a9818e2766a63f3533980543e18060
89 changes: 50 additions & 39 deletions trunk/crypto/tcrypt.c
Original file line number Diff line number Diff line change
Expand Up @@ -721,15 +721,18 @@ static int test_cipher_cycles(struct blkcipher_desc *desc, int enc, char *p,
return ret;
}

static u32 block_sizes[] = { 16, 64, 256, 1024, 8192, 0 };

static void test_cipher_speed(char *algo, int enc, unsigned int sec,
struct cipher_testvec *template,
unsigned int tcount, struct cipher_speed *speed)
unsigned int tcount, u8 *keysize)
{
unsigned int ret, i, j, iv_len;
unsigned char *key, *p, iv[128];
struct crypto_blkcipher *tfm;
struct blkcipher_desc desc;
const char *e;
u32 *b_size;

if (enc == ENCRYPT)
e = "encryption";
Expand All @@ -748,52 +751,60 @@ static void test_cipher_speed(char *algo, int enc, unsigned int sec,
desc.tfm = tfm;
desc.flags = 0;

for (i = 0; speed[i].klen != 0; i++) {
if ((speed[i].blen + speed[i].klen) > TVMEMSIZE) {
printk("template (%u) too big for tvmem (%u)\n",
speed[i].blen + speed[i].klen, TVMEMSIZE);
goto out;
}
i = 0;
do {

printk("test %u (%d bit key, %d byte blocks): ", i,
speed[i].klen * 8, speed[i].blen);
b_size = block_sizes;
do {

memset(tvmem, 0xff, speed[i].klen + speed[i].blen);
if ((*keysize + *b_size) > TVMEMSIZE) {
printk("template (%u) too big for tvmem (%u)\n",
*keysize + *b_size, TVMEMSIZE);
goto out;
}

/* set key, plain text and IV */
key = (unsigned char *)tvmem;
for (j = 0; j < tcount; j++) {
if (template[j].klen == speed[i].klen) {
key = template[j].key;
break;
printk("test %u (%d bit key, %d byte blocks): ", i,
*keysize * 8, *b_size);

memset(tvmem, 0xff, *keysize + *b_size);

/* set key, plain text and IV */
key = (unsigned char *)tvmem;
for (j = 0; j < tcount; j++) {
if (template[j].klen == *keysize) {
key = template[j].key;
break;
}
}
}
p = (unsigned char *)tvmem + speed[i].klen;
p = (unsigned char *)tvmem + *keysize;

ret = crypto_blkcipher_setkey(tfm, key, speed[i].klen);
if (ret) {
printk("setkey() failed flags=%x\n",
crypto_blkcipher_get_flags(tfm));
goto out;
}
ret = crypto_blkcipher_setkey(tfm, key, *keysize);
if (ret) {
printk("setkey() failed flags=%x\n",
crypto_blkcipher_get_flags(tfm));
goto out;
}

iv_len = crypto_blkcipher_ivsize(tfm);
if (iv_len) {
memset(&iv, 0xff, iv_len);
crypto_blkcipher_set_iv(tfm, iv, iv_len);
}
iv_len = crypto_blkcipher_ivsize(tfm);
if (iv_len) {
memset(&iv, 0xff, iv_len);
crypto_blkcipher_set_iv(tfm, iv, iv_len);
}

if (sec)
ret = test_cipher_jiffies(&desc, enc, p, speed[i].blen,
sec);
else
ret = test_cipher_cycles(&desc, enc, p, speed[i].blen);
if (sec)
ret = test_cipher_jiffies(&desc, enc, p, *b_size, sec);
else
ret = test_cipher_cycles(&desc, enc, p, *b_size);

if (ret) {
printk("%s() failed flags=%x\n", e, desc.flags);
break;
}
}
if (ret) {
printk("%s() failed flags=%x\n", e, desc.flags);
break;
}
b_size++;
i++;
} while (*b_size);
keysize++;
} while (*keysize);

out:
crypto_free_blkcipher(tfm);
Expand Down
129 changes: 7 additions & 122 deletions trunk/crypto/tcrypt.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,6 @@ struct aead_testvec {
unsigned short rlen;
};

struct cipher_speed {
unsigned char klen;
unsigned int blen;
};

struct hash_speed {
unsigned int blen; /* buffer length */
unsigned int plen; /* per-update length */
Expand Down Expand Up @@ -8032,123 +8027,13 @@ static struct hash_testvec crc32c_tv_template[] = {
/*
* Cipher speed tests
*/
static struct cipher_speed speed_template_8[] = {
{ .klen = 8, .blen = 16, },
{ .klen = 8, .blen = 64, },
{ .klen = 8, .blen = 256, },
{ .klen = 8, .blen = 1024, },
{ .klen = 8, .blen = 8192, },

/* End marker */
{ .klen = 0, .blen = 0, }
};

static struct cipher_speed speed_template_24[] = {
{ .klen = 24, .blen = 16, },
{ .klen = 24, .blen = 64, },
{ .klen = 24, .blen = 256, },
{ .klen = 24, .blen = 1024, },
{ .klen = 24, .blen = 8192, },

/* End marker */
{ .klen = 0, .blen = 0, }
};

static struct cipher_speed speed_template_8_32[] = {
/* Don't support blowfish keys > 256 bit in this test */
{ .klen = 8, .blen = 16, },
{ .klen = 8, .blen = 64, },
{ .klen = 8, .blen = 256, },
{ .klen = 8, .blen = 1024, },
{ .klen = 8, .blen = 8192, },
{ .klen = 32, .blen = 16, },
{ .klen = 32, .blen = 64, },
{ .klen = 32, .blen = 256, },
{ .klen = 32, .blen = 1024, },
{ .klen = 32, .blen = 8192, },

/* End marker */
{ .klen = 0, .blen = 0, }
};

static struct cipher_speed speed_template_16_32[] = {
{ .klen = 16, .blen = 16, },
{ .klen = 16, .blen = 64, },
{ .klen = 16, .blen = 256, },
{ .klen = 16, .blen = 1024, },
{ .klen = 16, .blen = 8192, },
{ .klen = 32, .blen = 16, },
{ .klen = 32, .blen = 64, },
{ .klen = 32, .blen = 256, },
{ .klen = 32, .blen = 1024, },
{ .klen = 32, .blen = 8192, },

/* End marker */
{ .klen = 0, .blen = 0, }
};

static struct cipher_speed speed_template_16_24_32[] = {
{ .klen = 16, .blen = 16, },
{ .klen = 16, .blen = 64, },
{ .klen = 16, .blen = 256, },
{ .klen = 16, .blen = 1024, },
{ .klen = 16, .blen = 8192, },
{ .klen = 24, .blen = 16, },
{ .klen = 24, .blen = 64, },
{ .klen = 24, .blen = 256, },
{ .klen = 24, .blen = 1024, },
{ .klen = 24, .blen = 8192, },
{ .klen = 32, .blen = 16, },
{ .klen = 32, .blen = 64, },
{ .klen = 32, .blen = 256, },
{ .klen = 32, .blen = 1024, },
{ .klen = 32, .blen = 8192, },

/* End marker */
{ .klen = 0, .blen = 0, }
};

static struct cipher_speed speed_template_32_40_48[] = {
{ .klen = 32, .blen = 16, },
{ .klen = 32, .blen = 64, },
{ .klen = 32, .blen = 256, },
{ .klen = 32, .blen = 1024, },
{ .klen = 32, .blen = 8192, },
{ .klen = 40, .blen = 16, },
{ .klen = 40, .blen = 64, },
{ .klen = 40, .blen = 256, },
{ .klen = 40, .blen = 1024, },
{ .klen = 40, .blen = 8192, },
{ .klen = 48, .blen = 16, },
{ .klen = 48, .blen = 64, },
{ .klen = 48, .blen = 256, },
{ .klen = 48, .blen = 1024, },
{ .klen = 48, .blen = 8192, },

/* End marker */
{ .klen = 0, .blen = 0, }
};

static struct cipher_speed speed_template_32_48_64[] = {
{ .klen = 32, .blen = 16, },
{ .klen = 32, .blen = 64, },
{ .klen = 32, .blen = 256, },
{ .klen = 32, .blen = 1024, },
{ .klen = 32, .blen = 8192, },
{ .klen = 48, .blen = 16, },
{ .klen = 48, .blen = 64, },
{ .klen = 48, .blen = 256, },
{ .klen = 48, .blen = 1024, },
{ .klen = 48, .blen = 8192, },
{ .klen = 64, .blen = 16, },
{ .klen = 64, .blen = 64, },
{ .klen = 64, .blen = 256, },
{ .klen = 64, .blen = 1024, },
{ .klen = 64, .blen = 8192, },

/* End marker */
{ .klen = 0, .blen = 0, }
};
static u8 speed_template_8[] = {8, 0};
static u8 speed_template_24[] = {24, 0};
static u8 speed_template_8_32[] = {8, 32, 0};
static u8 speed_template_16_32[] = {16, 32, 0};
static u8 speed_template_16_24_32[] = {16, 24, 32, 0};
static u8 speed_template_32_40_48[] = {32, 40, 48, 0};
static u8 speed_template_32_48_64[] = {32, 48, 64, 0};

/*
* Digest speed tests
Expand Down

0 comments on commit 2604063

Please sign in to comment.