From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCFEC3911B2 for ; Fri, 17 Jul 2026 09:38:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=205.220.168.131 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784281126; cv=pass; b=VPO3BWfq4XRcdFrc92p5SPWTT3WDJH5VtppXDPyapIhl48jvhPCi4aq+7GGy5DM3i11qA+Z4Hz3BxBj2cjVsjFd13FG8W3pEXx/1fnY6mWSsEUgrZB08eqVuk+gxsZiQQd9wU+6bR+qBY52ufBGQRjni9l2nRiKkqFASgd0Dtdw= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784281126; c=relaxed/simple; bh=gKgeA9w2lvXNBlVpC/vszCTY3PxeBizUQZBLIlohBF0=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=AExEbw1OK0ygH+aFSFJthqf5nfe9YfuTF14UsCbbsCINRkFpDJjivcEpE8nYE9MdqzOSD2X4qWoLFqTCU5nv0XYQ8rfROr8zV/eb+esHmoxsjJkV2lLX7bt7mR/y9WWhUGFjzi/YxzzrAgziQtqwVNznMZvQ47KrqAmboKnXVxQ= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=FSkHj2RV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cUb6Cun/; arc=pass smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="FSkHj2RV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cUb6Cun/" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66H6cF0j1065329 for ; Fri, 17 Jul 2026 09:38:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Byke9lF7SSp42L4/+Y+WzY4ZS/QRpxLv4f6tPfcDO5Q=; b=FSkHj2RVHfNGNFyd Tvxff00A7KexF3nP6J0PBeyrg+IIvYiduSLB2nZ11464CQK8gbTqV3IthCYJX76X FQVq6IhdeHdS7IlSJFMq1DI9E/ytGMPOfqEMgLY36JNcsVns67IPLKQ7Ue8wTFuF y3R3UCZ2NTHczYBRJuqPz9P4Z6Jpjt9WNBSBZlWFo52VsnsE1/Y9atJ6O/+1rAi2 sw/xQlZe0miL+pMuOxjBN7M/E7rSVw7YddpPYRiN24bvIJxnUhxSj3pMUzA5N1+g DNhPoD6qVYblUiYyZhJR2L3GDcuefsLw0F3NcWo+TN6Dlzs6ZaE6jZa1WiLoOQRo QRjtKQ== Received: from mail-yw1-f199.google.com (mail-yw1-f199.google.com [209.85.128.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ffbquhfgw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 17 Jul 2026 09:38:43 +0000 (GMT) Received: by mail-yw1-f199.google.com with SMTP id 00721157ae682-81b0c72826eso169908867b3.0 for ; Fri, 17 Jul 2026 02:38:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1784281123; cv=none; d=google.com; s=arc-20260327; b=X4Cy5Jq6suFGIytszVAYFhb886Ik19BES7DG83fd8ID8WWQ7kzXq/ohLRas2qU/wkF iuvPAndq/zvNhOfIpHLVpMmPJdgyOJuRRwYYukToBEeT3SvWNeyj7p7ygVZ+RCpzL/eb QwktueziiSgS6ew5Er6Yl9LdvOvuB40dmfOXel75YrC3qa7bsz6kwzVmsGYqoqPk5jG8 0nVOkTeN2o1yzLpQeAVpS74+rMkcjUDCjB9LkyUk0E643wCc5xPuUU4hZzpvfDg/i+4u +CuOBrS05qV1gRg/+9hlwVmi2ljnJMGYJ5iSI+ttVjIkJn1b+5hLXs5XpbBZCDAIhnZm whMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=Byke9lF7SSp42L4/+Y+WzY4ZS/QRpxLv4f6tPfcDO5Q=; fh=ATWr8nttRHvQkN3gFidsQt73gZFftRdikJkKotisXyA=; b=lOBHERK9iNqiF6cPlqSsRQ/HhL9mMOsT00oUF16b+oP61dAoXXKnQiVp0mMaoI+TvD RY4tUI39y3clLHFD6mSzqavtjANLdk0DM/wK0GMxBwsoTAAHbWb3EwUxY/q1v9YknAns 2sn86XRaK677zxaDrnAqsGeUIqaw54F1RhaTHuYhSUCq/cEeirom4H1HIXhIo6vhH74a t5/z+cYuTSEIF+Z8w8QQFtg0eTPy8+sRDD5Y7sijfvEsNWkPVhISdQslx9Na5Sf0xf7B QGCKtWwolf2WkML+U9RhMnz5hqPdgmFIoOrP5/wnrSX3rmb7ockRcbsioBpBMB8Io9o6 twhg==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784281123; x=1784885923; darn=vger.kernel.org; h=content-transfer-encoding:content-type:cc:to:subject:message-id :date:from:in-reply-to:references:mime-version:from:to:cc:subject :date:message-id:reply-to:content-type; bh=Byke9lF7SSp42L4/+Y+WzY4ZS/QRpxLv4f6tPfcDO5Q=; b=cUb6Cun/ssj6PiWGf0oax9hSYRaqFW0IOvaodmJpfa813y0BX13MDEvz8ycjWprisf IpmS4a5UXUXunr3Cv+TMmZqewf5JYLW5upV0zajfnUEj9Bf4K+SJOzg+Y1lRqNe4Hy/C XizFB6M+R5L7oP8rre4Yn15F2acsKvzUxt4aGx4vnnXHEhZtb+OnsliRVHgapPKoE6cb CFZ+qOg1HbwSpnZnXGpt9CyOLxC91cGrR/Xlod1X11jHuOV0JAX92y18/B0f4xoK1076 sfs81++XDGnyeqEHUC/F6wFlv6pGR2P+wianReOioNegJVKXt4m9FSpGWbHt0JralSu7 QWdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784281123; x=1784885923; h=content-transfer-encoding:content-type:cc:to:subject:message-id :date:from:in-reply-to:references:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Byke9lF7SSp42L4/+Y+WzY4ZS/QRpxLv4f6tPfcDO5Q=; b=ikFWTZy33TTscR43rwa2fkR8XvmijYWAlGqT7+DGgm5CC9FsjEIgrlUMkaAR2Wu3oy LguMSGjaZIR0YgJ2IJCyntVkDgqf6bT+yKGraePXW5rSpBmhGC5mBrWnhcfg3QxY0rOK ppicqxvVphA0FUN1eTFhcijYOD6acIfYjbDAxy8ZYt9//pjXhHN7bu/GRXo9nomKMnUu HZyKbL9DuqVCJaYyRUC0fgUHIVNU80CNAQ+e4RZ5F8GaXzyaZdsjFbme5byIUyAWvs0t CmOCQi3W/mr1mI/LTvQCriK1we3xYmxNOcYP3dugUazpzE7q2ABFxjVWhY0QTZ+ErPT/ +wzg== X-Forwarded-Encrypted: i=1; AHgh+RoUWglcWLsnaXVwpUk1etnW+xyM8daxq+YPDrlT7W3brkSJLs2O+WEtp5kO0E7nQZAGf7Uaa5nyk5B8rNE=@vger.kernel.org X-Gm-Message-State: AOJu0YyEAAAIvmf2E1CJn0HA6Di7fB/y1xFfXo5fYy0O60QEFMgU0/Lh lYzILV1PVxpywycQnpLXmJlu2/VXBp8QjK2MoI15b4qV97wFV+gP3uy5MC/y3H2lovnI10YM1Xo E9yPKYYoLidUs0gnCkF+/0encMY2epx02qE5RJYQvF+yqpSm4HU6pw1bL/tAgPBDPENMx//kMcy okBvhR03y2NSJiygfkkfnGrojKE22nyiv2f0FmTHB1zg== X-Gm-Gg: AfdE7cmFfOZ+YU5EdYHzsCrz3SI2U556TqA5lqUlQRqrz79k0BIPHhCmf9Jwcvn/cci qvq4Ufs2b3O7N3stUH6t1bDcc7jSvd8A047uygcG6pWJ2Ynx4Vng7UaM7KPjD2aLYKXNvXlmfKB wFBgs6zOdPEfa3wDSwCuPhKjXu5ZcqrRNBfJ7+GZc8dt3M4ipLdd4du5A= X-Received: by 2002:a05:690e:13ce:b0:667:daee:17ee with SMTP id 956f58d0204a3-6683bb79a33mr442035d50.39.1784281122903; Fri, 17 Jul 2026 02:38:42 -0700 (PDT) X-Received: by 2002:a05:690e:13ce:b0:667:daee:17ee with SMTP id 956f58d0204a3-6683bb79a33mr442029d50.39.1784281122363; Fri, 17 Jul 2026 02:38:42 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20260716083728.2226422-1-jorge.ramirez@oss.qualcomm.com> <20260716083728.2226422-3-jorge.ramirez@oss.qualcomm.com> In-Reply-To: <20260716083728.2226422-3-jorge.ramirez@oss.qualcomm.com> From: Jens Wiklander Date: Fri, 17 Jul 2026 11:38:31 +0200 X-Gm-Features: AUfX_mxVDZM5kXu-CrAEkInMj0hjSBk8LzLzD_taXmZkxBvbyWjLlJY_ZY3mexE Message-ID: Subject: Re: [PATCH v1 2/2] ufs: rpmb: use a fixed-length RPMB dev_id To: Jorge Ramirez-Ortiz Cc: alim.akhtar@samsung.com, avri.altman@wdc.com, bvanassche@acm.org, James.Bottomley@hansenpartnership.com, martin.petersen@oracle.com, beanhuo@micron.com, can.guo@oss.qualcomm.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, op-tee@lists.trustedfirmware.org, jenswi@kernel.org, sumit.garg@oss.qualcomm.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Proofpoint-GUID: xDG-ynErJJG5MnebipwrfXTowgbCkrbA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE3MDA5NiBTYWx0ZWRfXxPOOvBjudM69 PSloPoO7mYT8cbnmpDSslrSFdYX2cMPvnR/m/WBllZhf7UjkLY0SMR67XVJvdW32nR5taLEPgjH XoQ+nOAXgCCWUa6ACeLg95KsI5zG1bVMMLxwTJvxMj8Gp1OoSgQ1DCJU+U5v33FlIuty7/Akh75 oeT6gteREHtRM98+D+eHHlRTzOmJ4xKlq6XVEco3iRfu+zB2C6EdM/uRp4mEZcio4RwFM+UA73z q/D46egHoN0332nTAVpZhL9gjNNcN+yNQ8swZUJ2v/PS4XOKsf6JkXa+31FLqtwLPInxu8oMfOO QOEB94blan8FOJls0i4MyJ6DmXDk3/cOiiwzTuuR+AH8MbBSt5q52tB6RZh8o6rNjA/7GLn9JZk BChh5/oobyErRUNGF9Uyb1TvSdEJ3Tn95BtWg1u5g658Kg0287V+yHdvgTnZ3gruo5L4XnuUzS0 38lbCi8MON1v14uLKbA== X-Authority-Analysis: v=2.4 cv=NZ3WEWD4 c=1 sm=1 tr=0 ts=6a59f823 cx=c_pps a=72HoHk1woDtn7btP4rdmlg==:117 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=NEAV23lmAAAA:8 a=EUspDBNiAAAA:8 a=xHNurQw6US8NauEldhQA:9 a=QEXdDO2ut3YA:10 a=kA6IBgd4cpdPkAWqgNAz:22 X-Proofpoint-ORIG-GUID: xDG-ynErJJG5MnebipwrfXTowgbCkrbA X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE3MDA5NiBTYWx0ZWRfX2HkvLsSBB6BA R2DAXQiARCvqNw4Skr7uOdhAyWii9t/Ux8IyvHELk9BI14Karc1s/yqd9XU1AMMX8YFprjMK2gC eG9/KEfe9FaHkaeB0hbHoncif6jVLRM= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-17_02,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1011 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607170096 Hi Jorge, On Thu, Jul 16, 2026 at 10:37=E2=80=AFAM Jorge Ramirez-Ortiz wrote: > > The RPMB authentication key is derived from the dev_id handed to the > RPMB subsystem. OP-TEE implements the eMMC RPMB flow, where the dev_id > is the eMMC CID, a fixed 16-byte value, and it derives the key on that > assumption. > > The UFS RPMB id built here is "-R", which is variable > length and longer than 16 bytes. Passing it verbatim would tie the > derived key to a length OP-TEE does not expect and diverge from the > fixed-CID eMMC ABI, requiring OP-TEE to be taught about variable-length > UFS ids. Yes, if it's possible, It's nice to avoid that. > > Hash the UFS id into a fixed 16-byte dev_id with blake2s instead. This > keeps the derived key stable and unique per region while matching the > eMMC CID layout OP-TEE relies on, so the key-derivation ABI stays > identical and no OP-TEE change is needed. > > Signed-off-by: Jorge Ramirez-Ortiz > --- > drivers/ufs/core/ufs-rpmb.c | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/drivers/ufs/core/ufs-rpmb.c b/drivers/ufs/core/ufs-rpmb.c > index d0c7ea7a36f4..b800871269bb 100644 > --- a/drivers/ufs/core/ufs-rpmb.c > +++ b/drivers/ufs/core/ufs-rpmb.c > @@ -10,6 +10,7 @@ > * Can Guo > */ > > +#include > #include > #include > #include > @@ -21,6 +22,7 @@ > #include > #include "ufshcd-priv.h" > > +#define UFS_RPMB_ID_LEN 16 /* Match eMMC CID= Length */ > #define UFS_RPMB_SEC_PROTOCOL 0xEC /* JEDEC UFS application = */ > #define UFS_RPMB_SEC_PROTOCOL_ID 0x01 /* JEDEC UFS RPMB protoco= l ID, CDB byte3 */ > > @@ -154,6 +156,7 @@ int ufs_rpmb_probe(struct ufs_hba *hba) > { > struct ufs_rpmb_dev *ufs_rpmb, *it, *tmp; > struct rpmb_dev *rdev; > + char *dev_id =3D NULL; > char *cid =3D NULL; > int region; > u32 cap; > @@ -213,8 +216,17 @@ int ufs_rpmb_probe(struct ufs_hba *hba) > goto err_out; > } > > - descr.dev_id =3D cid; > - descr.dev_id_len =3D strlen(cid); > + dev_id =3D kzalloc(UFS_RPMB_ID_LEN, GFP_KERNEL); > + if (!dev_id) { > + device_unregister(&ufs_rpmb->dev); > + ret =3D -ENOMEM; > + goto err_out; > + } > + > + blake2s(NULL, 0, cid, strlen(cid), dev_id, UFS_RPMB_ID_LE= N); > + > + descr.dev_id =3D dev_id; > + descr.dev_id_len =3D UFS_RPMB_ID_LEN; This change will break current users of this interface, if there are any. There are currently no upstream users in OP-TEE since you're adding that with https://github.com/OP-TEE/optee_os/pull/7881, but I suppose that's not the only use case. Cheers, Jens > descr.capacity =3D cap; > > /* Register RPMB device */ > @@ -228,6 +240,8 @@ int ufs_rpmb_probe(struct ufs_hba *hba) > > kfree(cid); > cid =3D NULL; > + kfree(dev_id); > + dev_id =3D NULL; > > ufs_rpmb->rdev =3D rdev; > ufs_rpmb->region_id =3D region; > @@ -240,6 +254,7 @@ int ufs_rpmb_probe(struct ufs_hba *hba) > return 0; > err_out: > kfree(cid); > + kfree(dev_id); > list_for_each_entry_safe(it, tmp, &hba->rpmbs, node) { > list_del(&it->node); > device_unregister(&it->dev); > -- > 2.54.0 >