crypto-qti-platform.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  4. */
  5. #ifndef _CRYPTO_QTI_PLATFORM_H
  6. #define _CRYPTO_QTI_PLATFORM_H
  7. #include <linux/blk-crypto.h>
  8. #include <linux/errno.h>
  9. #include <linux/types.h>
  10. #include <linux/device.h>
  11. #if IS_ENABLED(CONFIG_QTI_CRYPTO_COMMON)
  12. int crypto_qti_program_key(const struct ice_mmio_data *mmio_data,
  13. const struct blk_crypto_key *key,
  14. unsigned int slot,
  15. unsigned int data_unit_mask, int capid, int storage_type);
  16. int crypto_qti_invalidate_key(const struct ice_mmio_data *mmio_data,
  17. unsigned int slot, int storage_type);
  18. int crypto_qti_derive_raw_secret_platform(const struct ice_mmio_data *mmio_data,
  19. const u8 *wrapped_key,
  20. unsigned int wrapped_key_size, u8 *secret,
  21. unsigned int secret_size);
  22. #if (IS_ENABLED(CONFIG_QTI_HW_KEY_MANAGER) || IS_ENABLED(CONFIG_QTI_HW_KEY_MANAGER_V1))
  23. void crypto_qti_disable_platform(void);
  24. #else
  25. static inline void crypto_qti_disable_platform(void)
  26. {}
  27. #endif /* CONFIG_QTI_HW_KEY_MANAGER */
  28. #else
  29. static inline int crypto_qti_program_key(
  30. const struct ice_mmio_data *mmio_data,
  31. const struct blk_crypto_key *key,
  32. unsigned int slot,
  33. unsigned int data_unit_mask, int capid, int storage_type)
  34. {
  35. return -EOPNOTSUPP;
  36. }
  37. static inline int crypto_qti_invalidate_key(
  38. const struct ice_mmio_data *mmio_data, unsigned int slot, int storage_type)
  39. {
  40. return -EOPNOTSUPP;
  41. }
  42. static inline int crypto_qti_derive_raw_secret_platform(const struct ice_mmio_data *mmio_data,
  43. const u8 *wrapped_key,
  44. unsigned int wrapped_key_size, u8 *secret,
  45. unsigned int secret_size)
  46. {
  47. return -EOPNOTSUPP;
  48. }
  49. static inline void crypto_qti_disable_platform(void)
  50. {}
  51. #endif /* CONFIG_QTI_CRYPTO_TZ || CONFIG_QTI_HW_KEY_MANAGER */
  52. #endif /* _CRYPTO_QTI_PLATFORM_H */