On Mon, Jul 28, 2025 at 07:22:15PM +0530, Aneesh Kumar K.V (Arm) wrote: > @@ -5,6 +5,8 @@ config ARM_CCA_GUEST > tristate "Arm CCA Guest driver" > depends on ARM64 > depends on PCI_TSM > + select CRYPTO_SHA256 > + select CRYPTO_SHA512 > select TSM_REPORTS > select TSM CRYPTO_LIB_SHA256 and CRYPTO_LIB_SHA512 > + if (dsm->dev_info.hash_algo == RSI_HASH_SHA_256) { > + hash_alg_name = "sha256"; > + digest_size = SHA256_DIGEST_SIZE; > + } else if (dsm->dev_info.hash_algo == RSI_HASH_SHA_512) { > + hash_alg_name = "sha512"; > + digest_size = SHA512_DIGEST_SIZE; > + } else { > + pci_err(pdev, "unknown realm hash algorithm!\n"); > + ret = -EINVAL; > + goto err_out; > + } > + > + alg = crypto_alloc_shash(hash_alg_name, 0, 0); > + if (IS_ERR(alg)) { > + pci_err(pdev, "cannot allocate %s\n", hash_alg_name); > + return PTR_ERR(alg); > + } > + > + sdesc_size = sizeof(struct shash_desc) + crypto_shash_descsize(alg); > + shash = kzalloc(sdesc_size, GFP_KERNEL); > + if (!shash) { > + pci_err(pdev, "cannot allocate sdesc\n"); > + ret = -ENOMEM; > + goto err_free_shash; > + } > + shash->tfm = alg; > + > + for (i = 0; i < ARRAY_SIZE(reports); i++) { > + ret = crypto_shash_digest(shash, reports[i].report, > + reports[i].size, digest); > + if (ret) { > + pci_err(pdev, "failed to compute digest, %d\n", ret); > + goto err_free_sdesc; > + } Use sha256() and sha512(). - Eric