Lines Matching refs:areq
224 static int safexcel_ahash_enqueue(struct ahash_request *areq);
232 struct ahash_request *areq = ahash_request_cast(async);
233 struct crypto_ahash *ahash = crypto_ahash_reqtfm(areq);
234 struct safexcel_ahash_req *sreq = ahash_request_ctx_dma(areq);
252 dma_unmap_sg(priv->dev, areq->src, sreq->nents, DMA_TO_DEVICE);
285 areq->nbytes = 0;
286 safexcel_ahash_enqueue(areq);
295 *(__le32 *)areq->result = ~sreq->state[0];
297 memcpy(areq->result, sreq->state,
314 struct ahash_request *areq = ahash_request_cast(async);
315 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
316 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
329 cache_len = queued - areq->nbytes;
343 sg_pcopy_to_buffer(areq->src, sg_nents(areq->src),
345 areq->nbytes - extra);
369 sg_pcopy_to_buffer(areq->src,
370 sg_nents(areq->src),
423 req->nents = dma_map_sg(priv->dev, areq->src,
424 sg_nents_for_len(areq->src,
425 areq->nbytes),
432 for_each_sg(areq->src, sg, req->nents, i) {
487 safexcel_rdr_req_set(priv, ring, rdesc, &areq->base);
500 dma_unmap_sg(priv->dev, areq->src, req->nents, DMA_TO_DEVICE);
523 struct ahash_request *areq = ahash_request_cast(async);
524 struct crypto_ahash *ahash = crypto_ahash_reqtfm(areq);
571 struct ahash_request *areq = ahash_request_cast(async);
572 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
592 struct ahash_request *areq = ahash_request_cast(async);
593 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
610 struct ahash_request *areq = ahash_request_cast(async);
611 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
664 static int safexcel_ahash_cache(struct ahash_request *areq)
666 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
678 if (cache_len + areq->nbytes <= HASH_CACHE_SIZE) {
679 sg_pcopy_to_buffer(areq->src, sg_nents(areq->src),
681 areq->nbytes, 0);
689 static int safexcel_ahash_enqueue(struct ahash_request *areq)
691 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
692 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
723 EIP197_GFP_FLAGS(areq->base),
733 ret = crypto_enqueue_request(&priv->ring[ring].queue, &areq->base);
742 static int safexcel_ahash_update(struct ahash_request *areq)
744 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
748 if (!areq->nbytes)
752 ret = safexcel_ahash_cache(areq);
755 req->len += areq->nbytes;
762 return safexcel_ahash_enqueue(areq);
767 static int safexcel_ahash_final(struct ahash_request *areq)
769 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
770 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
774 if (unlikely(!req->len && !areq->nbytes)) {
781 memcpy(areq->result, md5_zero_message_hash,
784 memcpy(areq->result, sha1_zero_message_hash,
787 memcpy(areq->result, sha224_zero_message_hash,
790 memcpy(areq->result, sha256_zero_message_hash,
793 memcpy(areq->result, sha384_zero_message_hash,
796 memcpy(areq->result, sha512_zero_message_hash,
799 memcpy(areq->result,
806 req->len == sizeof(u32) && !areq->nbytes)) {
808 memcpy(areq->result, &ctx->base.ipad, sizeof(u32));
811 !areq->nbytes)) {
813 memset(areq->result, 0, AES_BLOCK_SIZE);
816 !areq->nbytes)) {
821 u32 *result = (void *)areq->result;
826 areq->result[0] ^= 0x80; // 10- padding
827 aes_encrypt(ctx->aes, areq->result, areq->result);
831 !areq->nbytes)) {
868 return safexcel_ahash_enqueue(areq);
871 static int safexcel_ahash_finup(struct ahash_request *areq)
873 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
877 safexcel_ahash_update(areq);
878 return safexcel_ahash_final(areq);
881 static int safexcel_ahash_export(struct ahash_request *areq, void *out)
883 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
897 static int safexcel_ahash_import(struct ahash_request *areq, const void *in)
899 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
903 ret = crypto_ahash_init(areq);
935 static int safexcel_sha1_init(struct ahash_request *areq)
937 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
938 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
951 static int safexcel_sha1_digest(struct ahash_request *areq)
953 int ret = safexcel_sha1_init(areq);
958 return safexcel_ahash_finup(areq);
1012 static int safexcel_hmac_sha1_init(struct ahash_request *areq)
1014 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1015 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1035 static int safexcel_hmac_sha1_digest(struct ahash_request *areq)
1037 int ret = safexcel_hmac_sha1_init(areq);
1042 return safexcel_ahash_finup(areq);
1045 static int safexcel_hmac_init_pad(struct ahash_request *areq,
1061 ahash_request_set_callback(areq, CRYPTO_TFM_REQ_MAY_BACKLOG,
1064 ahash_request_set_crypt(areq, &sg, ipad, keylen);
1066 ret = crypto_ahash_digest(areq);
1075 keylen = crypto_ahash_digestsize(crypto_ahash_reqtfm(areq));
1089 static int safexcel_hmac_init_iv(struct ahash_request *areq,
1097 ahash_request_set_callback(areq, CRYPTO_TFM_REQ_MAY_BACKLOG,
1100 ahash_request_set_crypt(areq, &sg, pad, blocksize);
1102 ret = crypto_ahash_init(areq);
1106 req = ahash_request_ctx_dma(areq);
1110 ret = crypto_ahash_update(areq);
1113 return ret ?: crypto_ahash_export(areq, state);
1120 struct ahash_request *areq;
1130 areq = ahash_request_alloc(tfm, GFP_KERNEL);
1131 if (!areq) {
1147 ret = safexcel_hmac_init_pad(areq, blocksize, key, keylen, ipad, opad);
1151 ret = safexcel_hmac_init_iv(areq, blocksize, ipad, istate);
1155 ret = safexcel_hmac_init_iv(areq, blocksize, opad, ostate);
1160 ahash_request_free(areq);
1238 static int safexcel_sha256_init(struct ahash_request *areq)
1240 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1241 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1254 static int safexcel_sha256_digest(struct ahash_request *areq)
1256 int ret = safexcel_sha256_init(areq);
1261 return safexcel_ahash_finup(areq);
1295 static int safexcel_sha224_init(struct ahash_request *areq)
1297 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1298 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1311 static int safexcel_sha224_digest(struct ahash_request *areq)
1313 int ret = safexcel_sha224_init(areq);
1318 return safexcel_ahash_finup(areq);
1359 static int safexcel_hmac_sha224_init(struct ahash_request *areq)
1361 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1362 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1382 static int safexcel_hmac_sha224_digest(struct ahash_request *areq)
1384 int ret = safexcel_hmac_sha224_init(areq);
1389 return safexcel_ahash_finup(areq);
1431 static int safexcel_hmac_sha256_init(struct ahash_request *areq)
1433 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1434 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1454 static int safexcel_hmac_sha256_digest(struct ahash_request *areq)
1456 int ret = safexcel_hmac_sha256_init(areq);
1461 return safexcel_ahash_finup(areq);
1496 static int safexcel_sha512_init(struct ahash_request *areq)
1498 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1499 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1512 static int safexcel_sha512_digest(struct ahash_request *areq)
1514 int ret = safexcel_sha512_init(areq);
1519 return safexcel_ahash_finup(areq);
1553 static int safexcel_sha384_init(struct ahash_request *areq)
1555 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1556 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1569 static int safexcel_sha384_digest(struct ahash_request *areq)
1571 int ret = safexcel_sha384_init(areq);
1576 return safexcel_ahash_finup(areq);
1617 static int safexcel_hmac_sha512_init(struct ahash_request *areq)
1619 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1620 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1640 static int safexcel_hmac_sha512_digest(struct ahash_request *areq)
1642 int ret = safexcel_hmac_sha512_init(areq);
1647 return safexcel_ahash_finup(areq);
1689 static int safexcel_hmac_sha384_init(struct ahash_request *areq)
1691 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1692 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1712 static int safexcel_hmac_sha384_digest(struct ahash_request *areq)
1714 int ret = safexcel_hmac_sha384_init(areq);
1719 return safexcel_ahash_finup(areq);
1754 static int safexcel_md5_init(struct ahash_request *areq)
1756 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1757 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1770 static int safexcel_md5_digest(struct ahash_request *areq)
1772 int ret = safexcel_md5_init(areq);
1777 return safexcel_ahash_finup(areq);
1811 static int safexcel_hmac_md5_init(struct ahash_request *areq)
1813 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1814 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1842 static int safexcel_hmac_md5_digest(struct ahash_request *areq)
1844 int ret = safexcel_hmac_md5_init(areq);
1849 return safexcel_ahash_finup(areq);
1894 static int safexcel_crc32_init(struct ahash_request *areq)
1896 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1897 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
1928 static int safexcel_crc32_digest(struct ahash_request *areq)
1930 return safexcel_crc32_init(areq) ?: safexcel_ahash_finup(areq);
1966 static int safexcel_cbcmac_init(struct ahash_request *areq)
1968 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
1969 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2019 static int safexcel_cbcmac_digest(struct ahash_request *areq)
2021 return safexcel_cbcmac_init(areq) ?: safexcel_ahash_finup(areq);
2226 static int safexcel_sm3_init(struct ahash_request *areq)
2228 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
2229 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2242 static int safexcel_sm3_digest(struct ahash_request *areq)
2244 int ret = safexcel_sm3_init(areq);
2249 return safexcel_ahash_finup(areq);
2290 static int safexcel_hmac_sm3_init(struct ahash_request *areq)
2292 struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq));
2293 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2313 static int safexcel_hmac_sm3_digest(struct ahash_request *areq)
2315 int ret = safexcel_hmac_sm3_init(areq);
2320 return safexcel_ahash_finup(areq);
2355 static int safexcel_sha3_224_init(struct ahash_request *areq)
2357 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2359 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2549 static int safexcel_sha3_256_init(struct ahash_request *areq)
2551 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2553 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2607 static int safexcel_sha3_384_init(struct ahash_request *areq)
2609 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2611 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2665 static int safexcel_sha3_512_init(struct ahash_request *areq)
2667 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2669 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2815 static int safexcel_hmac_sha3_224_init(struct ahash_request *areq)
2817 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2819 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2886 static int safexcel_hmac_sha3_256_init(struct ahash_request *areq)
2888 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2890 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
2957 static int safexcel_hmac_sha3_384_init(struct ahash_request *areq)
2959 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
2961 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);
3028 static int safexcel_hmac_sha3_512_init(struct ahash_request *areq)
3030 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq);
3032 struct safexcel_ahash_req *req = ahash_request_ctx_dma(areq);