/* Constant Definitions */
#define IXR_FPGA_DONE_MASK 0X00000008U
#define IXR_FPGA_AUTHENTICATIN 0x00000004U
-#define IXR_FPGA_ENCRYPTION_EN 0x00000008U
+#define IXR_FPGA_ENCRYPTION_USRKEY_EN 0x00000008U
+#define IXR_FPGA_ENCRYPTION_DEVKEY_EN 0x00000010U
struct zynqmp_fpga_priv {
struct device *dev;
if (mgr->flags & IXR_FPGA_AUTHENTICATIN)
dma_size = dma_size + SIGNATURE_LEN + PUBLIC_KEY_LEN;
- if (mgr->flags & IXR_FPGA_ENCRYPTION_EN)
+ if (mgr->flags & IXR_FPGA_ENCRYPTION_DEVKEY_EN)
+ dma_size = dma_size + ENCRYPTED_IV_LEN;
+ else if (mgr->flags & IXR_FPGA_ENCRYPTION_USRKEY_EN)
dma_size = dma_size + ENCRYPTED_KEY_LEN + ENCRYPTED_IV_LEN;
kbuf = dma_alloc_coherent(priv->dev, dma_size, &dma_addr, GFP_KERNEL);
memcpy(kbuf + size + SIGNATURE_LEN, mgr->pubkey,
PUBLIC_KEY_LEN);
}
- if (mgr->flags & IXR_FPGA_ENCRYPTION_EN) {
+ if (mgr->flags & IXR_FPGA_ENCRYPTION_DEVKEY_EN)
+ memcpy(kbuf + size, mgr->iv, ENCRYPTED_IV_LEN);
+ else if (mgr->flags & IXR_FPGA_ENCRYPTION_USRKEY_EN) {
memcpy(kbuf + size, mgr->key, ENCRYPTED_KEY_LEN);
memcpy(kbuf + size + ENCRYPTED_KEY_LEN, mgr->iv,
ENCRYPTED_IV_LEN);