|
@@ -1640,60 +1640,6 @@ err_out_exit:
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
|
|
|
|
-static int hifn_test(struct hifn_device *dev, int encdec, u8 snum)
|
|
|
|
-{
|
|
|
|
- int n, err;
|
|
|
|
- u8 src[16];
|
|
|
|
- struct hifn_context ctx;
|
|
|
|
- struct hifn_request_context rctx;
|
|
|
|
- u8 fips_aes_ecb_from_zero[16] = {
|
|
|
|
- 0x66, 0xE9, 0x4B, 0xD4,
|
|
|
|
- 0xEF, 0x8A, 0x2C, 0x3B,
|
|
|
|
- 0x88, 0x4C, 0xFA, 0x59,
|
|
|
|
- 0xCA, 0x34, 0x2B, 0x2E};
|
|
|
|
- struct scatterlist sg;
|
|
|
|
-
|
|
|
|
- memset(src, 0, sizeof(src));
|
|
|
|
- memset(ctx.key, 0, sizeof(ctx.key));
|
|
|
|
-
|
|
|
|
- ctx.dev = dev;
|
|
|
|
- ctx.keysize = 16;
|
|
|
|
- rctx.ivsize = 0;
|
|
|
|
- rctx.iv = NULL;
|
|
|
|
- rctx.op = (encdec)?ACRYPTO_OP_ENCRYPT:ACRYPTO_OP_DECRYPT;
|
|
|
|
- rctx.mode = ACRYPTO_MODE_ECB;
|
|
|
|
- rctx.type = ACRYPTO_TYPE_AES_128;
|
|
|
|
- rctx.walk.cache[0].length = 0;
|
|
|
|
-
|
|
|
|
- sg_init_one(&sg, &src, sizeof(src));
|
|
|
|
-
|
|
|
|
- err = hifn_setup_dma(dev, &ctx, &rctx, &sg, &sg, sizeof(src), NULL);
|
|
|
|
- if (err)
|
|
|
|
- goto err_out;
|
|
|
|
-
|
|
|
|
- dev->started = 0;
|
|
|
|
- msleep(200);
|
|
|
|
-
|
|
|
|
- dprintk("%s: decoded: ", dev->name);
|
|
|
|
- for (n=0; n<sizeof(src); ++n)
|
|
|
|
- dprintk("%02x ", src[n]);
|
|
|
|
- dprintk("\n");
|
|
|
|
- dprintk("%s: FIPS : ", dev->name);
|
|
|
|
- for (n=0; n<sizeof(fips_aes_ecb_from_zero); ++n)
|
|
|
|
- dprintk("%02x ", fips_aes_ecb_from_zero[n]);
|
|
|
|
- dprintk("\n");
|
|
|
|
-
|
|
|
|
- if (!memcmp(src, fips_aes_ecb_from_zero, sizeof(fips_aes_ecb_from_zero))) {
|
|
|
|
- printk(KERN_INFO "%s: AES 128 ECB test has been successfully "
|
|
|
|
- "passed.\n", dev->name);
|
|
|
|
- return 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-err_out:
|
|
|
|
- printk(KERN_INFO "%s: AES 128 ECB test has been failed.\n", dev->name);
|
|
|
|
- return -1;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static int hifn_start_device(struct hifn_device *dev)
|
|
static int hifn_start_device(struct hifn_device *dev)
|
|
{
|
|
{
|
|
int err;
|
|
int err;
|
|
@@ -2646,10 +2592,6 @@ static int hifn_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
if (err)
|
|
if (err)
|
|
goto err_out_free_irq;
|
|
goto err_out_free_irq;
|
|
|
|
|
|
- err = hifn_test(dev, 1, 0);
|
|
|
|
- if (err)
|
|
|
|
- goto err_out_stop_device;
|
|
|
|
-
|
|
|
|
err = hifn_register_rng(dev);
|
|
err = hifn_register_rng(dev);
|
|
if (err)
|
|
if (err)
|
|
goto err_out_stop_device;
|
|
goto err_out_stop_device;
|