From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Jens Axboe <axboe@kernel.dk>, Jonathan Corbet <corbet@lwn.net>,
Alasdair Kergon <agk@redhat.com>,
Mike Snitzer <snitzer@kernel.org>,
Mikulas Patocka <mpatocka@redhat.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Asutosh Das <quic_asutoshd@quicinc.com>,
Ritesh Harjani <ritesh.list@gmail.com>,
Ulf Hansson <ulf.hansson@linaro.org>,
Alim Akhtar <alim.akhtar@samsung.com>,
Avri Altman <avri.altman@wdc.com>,
Bart Van Assche <bvanassche@acm.org>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
Gaurav Kashyap <quic_gaurkash@quicinc.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Eric Biggers <ebiggers@kernel.org>,
"Theodore Y. Ts'o" <tytso@mit.edu>,
Jaegeuk Kim <jaegeuk@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, dm-devel@lists.linux.dev,
linux-mmc@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-fscrypt@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-arm-msm@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
Om Prakash Singh <quic_omprsing@quicinc.com>
Subject: [PATCH RESEND v7 14/17] ufs: core: add support for generating, importing and preparing keys
Date: Mon, 02 Dec 2024 13:02:30 +0100 [thread overview]
Message-ID: <20241202-wrapped-keys-v7-14-67c3ca3f3282@linaro.org> (raw)
In-Reply-To: <20241202-wrapped-keys-v7-0-67c3ca3f3282@linaro.org>
From: Gaurav Kashyap <quic_gaurkash@quicinc.com>
The block layer now allows storage controllers to implement the
operations for handling wrapped keys. We can now extend the UFS core to
also support them by reaching into the block layer. Add hooks
corresponding with the existing crypto operations lower on the stack.
Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Om Prakash Singh <quic_omprsing@quicinc.com>
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
Reviewed-by: Konrad Dybcio <konradybcio@kernel.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/ufs/core/ufshcd-crypto.c | 41 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/drivers/ufs/core/ufshcd-crypto.c b/drivers/ufs/core/ufshcd-crypto.c
index 2530239d42afa..49c0784f2432d 100644
--- a/drivers/ufs/core/ufshcd-crypto.c
+++ b/drivers/ufs/core/ufshcd-crypto.c
@@ -145,10 +145,51 @@ bool ufshcd_crypto_enable(struct ufs_hba *hba)
return true;
}
+static int ufshcd_crypto_generate_key(struct blk_crypto_profile *profile,
+ u8 lt_key[BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE])
+{
+ struct ufs_hba *hba =
+ container_of(profile, struct ufs_hba, crypto_profile);
+
+ if (hba->vops && hba->vops->generate_key)
+ return hba->vops->generate_key(hba, lt_key);
+
+ return -EOPNOTSUPP;
+}
+
+static int ufshcd_crypto_prepare_key(struct blk_crypto_profile *profile,
+ const u8 *lt_key, size_t lt_key_size,
+ u8 eph_key[BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE])
+{
+ struct ufs_hba *hba =
+ container_of(profile, struct ufs_hba, crypto_profile);
+
+ if (hba->vops && hba->vops->prepare_key)
+ return hba->vops->prepare_key(hba, lt_key, lt_key_size, eph_key);
+
+ return -EOPNOTSUPP;
+}
+
+static int ufshcd_crypto_import_key(struct blk_crypto_profile *profile,
+ const u8 *imp_key, size_t imp_key_size,
+ u8 lt_key[BLK_CRYPTO_MAX_HW_WRAPPED_KEY_SIZE])
+{
+ struct ufs_hba *hba =
+ container_of(profile, struct ufs_hba, crypto_profile);
+
+ if (hba->vops && hba->vops->import_key)
+ return hba->vops->import_key(hba, imp_key, imp_key_size, lt_key);
+
+ return -EOPNOTSUPP;
+}
+
static const struct blk_crypto_ll_ops ufshcd_crypto_ops = {
.keyslot_program = ufshcd_crypto_keyslot_program,
.keyslot_evict = ufshcd_crypto_keyslot_evict,
.derive_sw_secret = ufshcd_crypto_derive_sw_secret,
+ .generate_key = ufshcd_crypto_generate_key,
+ .prepare_key = ufshcd_crypto_prepare_key,
+ .import_key = ufshcd_crypto_import_key,
};
static enum blk_crypto_mode_num
--
2.45.2
next prev parent reply other threads:[~2024-12-02 12:03 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-02 12:02 [PATCH RESEND v7 00/17] Hardware wrapped key support for QCom ICE and UFS core Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 01/17] blk-crypto: add basic hardware-wrapped key support Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 02/17] blk-crypto: show supported key types in sysfs Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 03/17] blk-crypto: add ioctls to create and prepare hardware-wrapped keys Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 04/17] fscrypt: add support for " Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 05/17] ice, ufs, mmc: use the blk_crypto_key struct when programming the key Bartosz Golaszewski
2024-12-02 12:15 ` Dmitry Baryshkov
2024-12-02 12:02 ` [PATCH RESEND v7 06/17] firmware: qcom: scm: add a call for deriving the software secret Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 07/17] firmware: qcom: scm: add calls for creating, preparing and importing keys Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 08/17] firmware: qcom: scm: add a call for checking wrapped key support Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 09/17] soc: qcom: ice: add HWKM support to the ICE driver Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 10/17] soc: qcom: ice: add support for hardware wrapped keys Bartosz Golaszewski
2024-12-02 12:17 ` Dmitry Baryshkov
2024-12-02 12:02 ` [PATCH RESEND v7 11/17] soc: qcom: ice: add support for generating, importing and preparing keys Bartosz Golaszewski
2024-12-03 0:11 ` kernel test robot
2024-12-02 12:02 ` [PATCH RESEND v7 12/17] ufs: core: add support for wrapped keys to UFS core Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 13/17] ufs: core: add support for deriving the software secret Bartosz Golaszewski
2024-12-02 12:02 ` Bartosz Golaszewski [this message]
2024-12-02 12:02 ` [PATCH RESEND v7 15/17] ufs: host: add support for wrapped keys in QCom UFS Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 16/17] ufs: host: add a callback for deriving software secrets and use it Bartosz Golaszewski
2024-12-02 12:02 ` [PATCH RESEND v7 17/17] ufs: host: add support for generating, importing and preparing wrapped keys Bartosz Golaszewski
2024-12-02 18:36 ` [PATCH RESEND v7 00/17] Hardware wrapped key support for QCom ICE and UFS core Eric Biggers
2024-12-03 15:09 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241202-wrapped-keys-v7-14-67c3ca3f3282@linaro.org \
--to=brgl@bgdev.pl \
--cc=James.Bottomley@HansenPartnership.com \
--cc=adrian.hunter@intel.com \
--cc=agk@redhat.com \
--cc=alim.akhtar@samsung.com \
--cc=andersson@kernel.org \
--cc=avri.altman@wdc.com \
--cc=axboe@kernel.dk \
--cc=bartosz.golaszewski@linaro.org \
--cc=brauner@kernel.org \
--cc=bvanassche@acm.org \
--cc=corbet@lwn.net \
--cc=dm-devel@lists.linux.dev \
--cc=dmitry.baryshkov@linaro.org \
--cc=ebiggers@kernel.org \
--cc=jack@suse.cz \
--cc=jaegeuk@kernel.org \
--cc=konradybcio@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fscrypt@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=martin.petersen@oracle.com \
--cc=mpatocka@redhat.com \
--cc=neil.armstrong@linaro.org \
--cc=quic_asutoshd@quicinc.com \
--cc=quic_gaurkash@quicinc.com \
--cc=quic_omprsing@quicinc.com \
--cc=ritesh.list@gmail.com \
--cc=snitzer@kernel.org \
--cc=tytso@mit.edu \
--cc=ulf.hansson@linaro.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox