Lines Matching refs:areq

222 static int safexcel_ahash_enqueue(struct ahash_request *areq);
230 struct ahash_request *areq = ahash_request_cast(async);
231 struct crypto_ahash *ahash = crypto_ahash_reqtfm(areq);
232 struct safexcel_ahash_req *sreq = ahash_request_ctx(areq);
250 dma_unmap_sg(priv->dev, areq->src, sreq->nents, DMA_TO_DEVICE);
283 areq->nbytes = 0;
284 safexcel_ahash_enqueue(areq);
293 *(__le32 *)areq->result = ~sreq->state[0];
295 memcpy(areq->result, sreq->state,
312 struct ahash_request *areq = ahash_request_cast(async);
313 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
314 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
327 cache_len = queued - areq->nbytes;
341 sg_pcopy_to_buffer(areq->src, sg_nents(areq->src),
343 areq->nbytes - extra);
367 sg_pcopy_to_buffer(areq->src,
368 sg_nents(areq->src),
421 req->nents = dma_map_sg(priv->dev, areq->src,
422 sg_nents_for_len(areq->src,
423 areq->nbytes),
430 for_each_sg(areq->src, sg, req->nents, i) {
485 safexcel_rdr_req_set(priv, ring, rdesc, &areq->base);
498 dma_unmap_sg(priv->dev, areq->src, req->nents, DMA_TO_DEVICE);
521 struct ahash_request *areq = ahash_request_cast(async);
522 struct crypto_ahash *ahash = crypto_ahash_reqtfm(areq);
569 struct ahash_request *areq = ahash_request_cast(async);
570 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
590 struct ahash_request *areq = ahash_request_cast(async);
591 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
608 struct ahash_request *areq = ahash_request_cast(async);
609 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
662 static int safexcel_ahash_cache(struct ahash_request *areq)
664 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
676 if (cache_len + areq->nbytes <= HASH_CACHE_SIZE) {
677 sg_pcopy_to_buffer(areq->src, sg_nents(areq->src),
679 areq->nbytes, 0);
687 static int safexcel_ahash_enqueue(struct ahash_request *areq)
689 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
690 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
721 EIP197_GFP_FLAGS(areq->base),
731 ret = crypto_enqueue_request(&priv->ring[ring].queue, &areq->base);
740 static int safexcel_ahash_update(struct ahash_request *areq)
742 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
746 if (!areq->nbytes)
750 ret = safexcel_ahash_cache(areq);
753 req->len += areq->nbytes;
760 return safexcel_ahash_enqueue(areq);
765 static int safexcel_ahash_final(struct ahash_request *areq)
767 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
768 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
772 if (unlikely(!req->len && !areq->nbytes)) {
779 memcpy(areq->result, md5_zero_message_hash,
782 memcpy(areq->result, sha1_zero_message_hash,
785 memcpy(areq->result, sha224_zero_message_hash,
788 memcpy(areq->result, sha256_zero_message_hash,
791 memcpy(areq->result, sha384_zero_message_hash,
794 memcpy(areq->result, sha512_zero_message_hash,
797 memcpy(areq->result,
804 req->len == sizeof(u32) && !areq->nbytes)) {
806 memcpy(areq->result, &ctx->base.ipad, sizeof(u32));
809 !areq->nbytes)) {
811 memset(areq->result, 0, AES_BLOCK_SIZE);
814 !areq->nbytes)) {
819 u32 *result = (void *)areq->result;
824 areq->result[0] ^= 0x80; // 10- padding
825 crypto_cipher_encrypt_one(ctx->kaes, areq->result, areq->result);
829 !areq->nbytes)) {
866 return safexcel_ahash_enqueue(areq);
869 static int safexcel_ahash_finup(struct ahash_request *areq)
871 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
875 safexcel_ahash_update(areq);
876 return safexcel_ahash_final(areq);
879 static int safexcel_ahash_export(struct ahash_request *areq, void *out)
881 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
895 static int safexcel_ahash_import(struct ahash_request *areq, const void *in)
897 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
901 ret = crypto_ahash_init(areq);
933 static int safexcel_sha1_init(struct ahash_request *areq)
935 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
936 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
949 static int safexcel_sha1_digest(struct ahash_request *areq)
951 int ret = safexcel_sha1_init(areq);
956 return safexcel_ahash_finup(areq);
1010 static int safexcel_hmac_sha1_init(struct ahash_request *areq)
1012 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1013 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1033 static int safexcel_hmac_sha1_digest(struct ahash_request *areq)
1035 int ret = safexcel_hmac_sha1_init(areq);
1040 return safexcel_ahash_finup(areq);
1059 static int safexcel_hmac_init_pad(struct ahash_request *areq,
1075 ahash_request_set_callback(areq, CRYPTO_TFM_REQ_MAY_BACKLOG,
1078 ahash_request_set_crypt(areq, &sg, ipad, keylen);
1081 ret = crypto_ahash_digest(areq);
1093 keylen = crypto_ahash_digestsize(crypto_ahash_reqtfm(areq));
1107 static int safexcel_hmac_init_iv(struct ahash_request *areq,
1115 ahash_request_set_callback(areq, CRYPTO_TFM_REQ_MAY_BACKLOG,
1118 ahash_request_set_crypt(areq, &sg, pad, blocksize);
1121 ret = crypto_ahash_init(areq);
1125 req = ahash_request_ctx(areq);
1129 ret = crypto_ahash_update(areq);
1137 return crypto_ahash_export(areq, state);
1144 struct ahash_request *areq;
1154 areq = ahash_request_alloc(tfm, GFP_KERNEL);
1155 if (!areq) {
1171 ret = safexcel_hmac_init_pad(areq, blocksize, key, keylen, ipad, opad);
1175 ret = safexcel_hmac_init_iv(areq, blocksize, ipad, istate);
1179 ret = safexcel_hmac_init_iv(areq, blocksize, opad, ostate);
1184 ahash_request_free(areq);
1262 static int safexcel_sha256_init(struct ahash_request *areq)
1264 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1265 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1278 static int safexcel_sha256_digest(struct ahash_request *areq)
1280 int ret = safexcel_sha256_init(areq);
1285 return safexcel_ahash_finup(areq);
1319 static int safexcel_sha224_init(struct ahash_request *areq)
1321 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1322 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1335 static int safexcel_sha224_digest(struct ahash_request *areq)
1337 int ret = safexcel_sha224_init(areq);
1342 return safexcel_ahash_finup(areq);
1383 static int safexcel_hmac_sha224_init(struct ahash_request *areq)
1385 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1386 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1406 static int safexcel_hmac_sha224_digest(struct ahash_request *areq)
1408 int ret = safexcel_hmac_sha224_init(areq);
1413 return safexcel_ahash_finup(areq);
1455 static int safexcel_hmac_sha256_init(struct ahash_request *areq)
1457 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1458 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1478 static int safexcel_hmac_sha256_digest(struct ahash_request *areq)
1480 int ret = safexcel_hmac_sha256_init(areq);
1485 return safexcel_ahash_finup(areq);
1520 static int safexcel_sha512_init(struct ahash_request *areq)
1522 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1523 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1536 static int safexcel_sha512_digest(struct ahash_request *areq)
1538 int ret = safexcel_sha512_init(areq);
1543 return safexcel_ahash_finup(areq);
1577 static int safexcel_sha384_init(struct ahash_request *areq)
1579 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1580 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1593 static int safexcel_sha384_digest(struct ahash_request *areq)
1595 int ret = safexcel_sha384_init(areq);
1600 return safexcel_ahash_finup(areq);
1641 static int safexcel_hmac_sha512_init(struct ahash_request *areq)
1643 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1644 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1664 static int safexcel_hmac_sha512_digest(struct ahash_request *areq)
1666 int ret = safexcel_hmac_sha512_init(areq);
1671 return safexcel_ahash_finup(areq);
1713 static int safexcel_hmac_sha384_init(struct ahash_request *areq)
1715 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1716 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1736 static int safexcel_hmac_sha384_digest(struct ahash_request *areq)
1738 int ret = safexcel_hmac_sha384_init(areq);
1743 return safexcel_ahash_finup(areq);
1778 static int safexcel_md5_init(struct ahash_request *areq)
1780 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1781 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1794 static int safexcel_md5_digest(struct ahash_request *areq)
1796 int ret = safexcel_md5_init(areq);
1801 return safexcel_ahash_finup(areq);
1835 static int safexcel_hmac_md5_init(struct ahash_request *areq)
1837 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1838 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1866 static int safexcel_hmac_md5_digest(struct ahash_request *areq)
1868 int ret = safexcel_hmac_md5_init(areq);
1873 return safexcel_ahash_finup(areq);
1918 static int safexcel_crc32_init(struct ahash_request *areq)
1920 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1921 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
1952 static int safexcel_crc32_digest(struct ahash_request *areq)
1954 return safexcel_crc32_init(areq) ?: safexcel_ahash_finup(areq);
1990 static int safexcel_cbcmac_init(struct ahash_request *areq)
1992 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1993 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
2043 static int safexcel_cbcmac_digest(struct ahash_request *areq)
2045 return safexcel_cbcmac_init(areq) ?: safexcel_ahash_finup(areq);
2271 static int safexcel_sm3_init(struct ahash_request *areq)
2273 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
2274 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
2287 static int safexcel_sm3_digest(struct ahash_request *areq)
2289 int ret = safexcel_sm3_init(areq);
2294 return safexcel_ahash_finup(areq);
2335 static int safexcel_hmac_sm3_init(struct ahash_request *areq)
2337 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
2338 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
2358 static int safexcel_hmac_sm3_digest(struct ahash_request *areq)
2360 int ret = safexcel_hmac_sm3_init(areq);
2365 return safexcel_ahash_finup(areq);
2400 static int safexcel_sha3_224_init(struct ahash_request *areq)
2402 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2404 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
2593 static int safexcel_sha3_256_init(struct ahash_request *areq)
2595 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2597 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
2651 static int safexcel_sha3_384_init(struct ahash_request *areq)
2653 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2655 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
2709 static int safexcel_sha3_512_init(struct ahash_request *areq)
2711 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2713 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
2859 static int safexcel_hmac_sha3_224_init(struct ahash_request *areq)
2861 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2863 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
2930 static int safexcel_hmac_sha3_256_init(struct ahash_request *areq)
2932 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2934 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
3001 static int safexcel_hmac_sha3_384_init(struct ahash_request *areq)
3003 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
3005 struct safexcel_ahash_req *req = ahash_request_ctx(areq);
3072 static int safexcel_hmac_sha3_512_init(struct ahash_request *areq)
3074 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
3076 struct safexcel_ahash_req *req = ahash_request_ctx(areq);