Exemplo n.º 1
0
U32 PDrvCryptoSaveDESRegisters(PUBLIC_CRYPTO_DES_DES3_CONTEXT * pDesDes3Ctx)
{
   /* (1) : Save the IV if we are in CBC mode */
	if (DES_CTRL_GET_MODE(INREG32(&g_pDESReg_t->DES_CTRL)) == DES_CTRL_MODE_CBC) {
      pDesDes3Ctx->registers.DES_IV_L = INREG32(&g_pDESReg_t->DES_IV_L);
      pDesDes3Ctx->registers.DES_IV_H = INREG32(&g_pDESReg_t->DES_IV_H);
   }

   return PUBLIC_CRYPTO_OPERATION_SUCCESS;
}
Exemplo n.º 2
0
/*-------------------------------------------------------------------------
 *Save HWA registers into the specified operation state structure
 *-------------------------------------------------------------------------*/
static void PDrvCryptoSaveDESRegisters(u32 DES_CTRL,
	struct PUBLIC_CRYPTO_DES_OPERATION_STATE *pDESState)
{
	dprintk(KERN_INFO
		"PDrvCryptoSaveDESRegisters in pDESState=%p CTRL=0x%08x\n",
		pDESState, DES_CTRL);

	/*Save the IV if we are in CBC mode */
	if (DES_CTRL_GET_MODE(DES_CTRL) == DES_CTRL_MODE_CBC) {
		pDESState->DES_IV_L = INREG32(&pDESReg_t->DES_IV_L);
		pDESState->DES_IV_H = INREG32(&pDESReg_t->DES_IV_H);
	}
}
Exemplo n.º 3
0
U32 PDrvCryptoRestoreDESRegisters(PUBLIC_CRYPTO_DES_DES3_CONTEXT * pDesDes3Ctx)
{
   /* Write the IV ctx->reg */
	if (DES_CTRL_GET_MODE(INREG32(&pDesDes3Ctx->registers.DES_CTRL)) == DES_CTRL_MODE_CBC) {
      OUTREG32(&g_pDESReg_t->DES_IV_L, pDesDes3Ctx->registers.DES_IV_L);
      OUTREG32(&g_pDESReg_t->DES_IV_H, pDesDes3Ctx->registers.DES_IV_H);
   }

   /* Set the CTRL register from the context but resets the input&output ready and reserved bits */
   OUTREG32(&g_pDESReg_t->DES_CTRL, pDesDes3Ctx->registers.DES_CTRL & 0x1C);

   /* Set the MASK register from the context but resets reserved bits */
   OUTREG32(&g_pDESReg_t->DES_MASK, pDesDes3Ctx->registers.DES_MASK & 0xFF);

   return PUBLIC_CRYPTO_OPERATION_SUCCESS;
}