hash->halg.statesize = sizeof(struct spu_hash_export_s);
 
        if (driver_alg->auth_info.mode != HASH_MODE_HMAC) {
-               hash->setkey = ahash_setkey;
                hash->init = ahash_init;
                hash->update = ahash_update;
                hash->final = ahash_final;
                hash->finup = ahash_finup;
                hash->digest = ahash_digest;
+               if ((driver_alg->auth_info.alg == HASH_ALG_AES) &&
+                   ((driver_alg->auth_info.mode == HASH_MODE_XCBC) ||
+                   (driver_alg->auth_info.mode == HASH_MODE_CMAC))) {
+                       hash->setkey = ahash_setkey;
+               }
        } else {
                hash->setkey = ahash_hmac_setkey;
                hash->init = ahash_hmac_init;