110-crypto-mxsdcp-provide-importexport.patch 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --- a/drivers/crypto/mxs-dcp.c
  2. +++ b/drivers/crypto/mxs-dcp.c
  3. @@ -770,6 +770,24 @@ static void dcp_sha_cra_exit(struct cryp
  4. {
  5. }
  6. +static int dcp_sha_export(struct ahash_request *req, void *out)
  7. +{
  8. + struct dcp_sha_req_ctx *rctx = ahash_request_ctx(req);
  9. +
  10. + memcpy(out, rctx, sizeof(struct dcp_sha_req_ctx));
  11. +
  12. + return 0;
  13. +}
  14. +
  15. +static int dcp_sha_import(struct ahash_request *req, const void *in)
  16. +{
  17. + struct dcp_sha_req_ctx *rctx = ahash_request_ctx(req);
  18. +
  19. + memcpy(rctx, in, sizeof(struct dcp_sha_req_ctx));
  20. +
  21. + return 0;
  22. +}
  23. +
  24. /* AES 128 ECB and AES 128 CBC */
  25. static struct crypto_alg dcp_aes_algs[] = {
  26. {
  27. @@ -829,8 +847,11 @@ static struct ahash_alg dcp_sha1_alg = {
  28. .final = dcp_sha_final,
  29. .finup = dcp_sha_finup,
  30. .digest = dcp_sha_digest,
  31. + .import = dcp_sha_import,
  32. + .export = dcp_sha_export,
  33. .halg = {
  34. .digestsize = SHA1_DIGEST_SIZE,
  35. + .statesize = sizeof(struct dcp_sha_req_ctx),
  36. .base = {
  37. .cra_name = "sha1",
  38. .cra_driver_name = "sha1-dcp",
  39. @@ -853,8 +874,11 @@ static struct ahash_alg dcp_sha256_alg =
  40. .final = dcp_sha_final,
  41. .finup = dcp_sha_finup,
  42. .digest = dcp_sha_digest,
  43. + .import = dcp_sha_import,
  44. + .export = dcp_sha_export,
  45. .halg = {
  46. .digestsize = SHA256_DIGEST_SIZE,
  47. + .statesize = sizeof(struct dcp_sha_req_ctx),
  48. .base = {
  49. .cra_name = "sha256",
  50. .cra_driver_name = "sha256-dcp",