From: sashiko-bot@kernel.org
To: alistair23@gmail.com, linux-pci@vger.kernel.org,
linux-cxl@vger.kernel.org
Cc: ojeda@kernel.org, gary@garyguo.net
Subject: Re: [PATCH v5 15/23] lib: rspdm: Support SPDM get_capabilities
Date: Tue, 27 Oct 2026 05:36:29 +0000 [thread overview]
Message-ID: <sashiko-outbox-186127@kernel.org> (raw)
In-Reply-To: <20261027052536.1722081-16-alistair.francis@wdc.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] rspdm: swapped fixed and extended alg_count nibbles in from_bytes()
--
commit 9a97b825dcf3405e60a1e8252ec1b1e885dfcb08
Author: Alistair Francis <alistair.francis@wdc.com>
lib: rspdm: Support SPDM get_capabilities
Add support for the SPDM GET_CAPABILITIES command and response validation,
including parsing the SPDM 1.3+ SupportedAlgorithms block.
> diff --git a/lib/rspdm/validator.rs b/lib/rspdm/validator.rs
> index 98922638a228b..080c2f2c49376 100644
> --- a/lib/rspdm/validator.rs
> +++ b/lib/rspdm/validator.rs
[ ... ]
> @@ -176,3 +184,312 @@ fn validate(unvalidated: KVec<u8>, context: &'c SpdmState<'c, T>) -> Result<Self
> })
> }
> }
[ ... ]
> +impl SupportedAlgorithms {
> + #[allow(clippy::get_first)]
> + fn from_bytes(buf: &[u8]) -> Result<Self, Error> {
[ ... ]
> + let mut alg_struct = KVec::new();
> + for _ in 0..alg_struct_count {
> + let alg_type = *buf.get(offset).ok_or(EPROTO)?;
> + let alg_count = *buf.get(offset + 1).ok_or(EPROTO)?;
> +
> + let fixed_alg_count = (alg_count & 0xf) as usize;
> + let ext_alg_count = (alg_count >> 4) as usize;
[Severity: High]
Are the high and low nibbles of alg_count swapped here in
SupportedAlgorithms::from_bytes()?
Per DSP0274, the AlgCount field in an AlgStructure entry encodes
FixedAlgCount in bits [7:4] (alg_count >> 4) and ExtAlgCount in bits [3:0]
(alg_count & 0xf).
When an SPDM 1.3+ responder sets SPDM_CAP_SUPPORTED_ALGORITHMS in
header.param1 and includes AlgStructure entries in the CAPABILITIES
response, spdm_authenticate() -> SpdmState::get_capabilities() ->
GetCapabilitiesRsp::validate() -> SupportedAlgorithms::from_bytes() will
compute the wrong sizes for alg_supported and alg_external (for example,
treating a standard alg_count of 0x20 as 0 fixed bytes and 2 extended
32-bit algorithms instead of 2 fixed bytes and 0 extended algorithms),
causing offset validation to fail with EPROTO.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261027052536.1722081-1-alistair.francis@wdc.com?part=15
next prev parent reply other threads:[~2026-10-27 5:36 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 5:25 [PATCH v5 00/23] lib: Rust implementation of SPDM alistair23
2026-10-27 5:25 ` [PATCH v5 01/23] virt: coco: change tsm_register() to use a const struct alistair23
2026-10-27 5:32 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 02/23] rust: create basic untrusted data API alistair23
2026-10-27 5:34 ` sashiko-bot
2026-10-27 13:17 ` Benno Lossin
2026-10-27 5:25 ` [PATCH v5 03/23] rust: validate: add `Validate` trait alistair23
2026-10-27 5:33 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 04/23] X.509: Make certificate parser public alistair23
2026-10-27 5:33 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 05/23] X.509: Parse Subject Alternative Name in certificates alistair23
2026-10-27 5:32 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 06/23] X.509: Move certificate length retrieval into new helper alistair23
2026-10-27 5:32 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 07/23] rust: add bindings for hash.h alistair23
2026-10-27 5:34 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 08/23] rust: device: Expose Device from_raw() publically alistair23
2026-10-27 5:34 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 09/23] lib: rspdm: Initial commit of Rust SPDM alistair23
2026-10-27 5:42 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 10/23] PCI/TSM: Rename pf0 to host alistair23
2026-10-27 5:33 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 11/23] PCI/TSM: Support connecting to PCIe CMA devices alistair23
2026-10-27 5:50 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 12/23] PCI/CMA: Add a PCI TSM CMA driver using SPDM alistair23
2026-10-27 5:46 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 13/23] PCI/CMA: Validate Subject Alternative Name in certificates alistair23
2026-10-27 5:37 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 14/23] lib: rspdm: Support SPDM get_version alistair23
2026-10-27 5:41 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 15/23] lib: rspdm: Support SPDM get_capabilities alistair23
2026-10-27 5:36 ` sashiko-bot [this message]
2026-10-27 5:25 ` [PATCH v5 16/23] rust: kernel: Add crypto hash bindings alistair23
2026-10-27 5:41 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 17/23] lib: rspdm: Support SPDM negotiate_algorithms alistair23
2026-10-27 5:43 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 18/23] lib: rspdm: Support SPDM get_digests alistair23
2026-10-27 5:38 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 19/23] lib: rspdm: Support SPDM get_certificate alistair23
2026-10-27 5:35 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 20/23] rust: public_key: Add crypto public key bindings alistair23
2026-10-27 5:41 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 21/23] rust: x509: Add X509 certificate bindings alistair23
2026-10-27 5:45 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 22/23] lib: rspdm: Support SPDM certificate validation alistair23
2026-10-27 5:38 ` sashiko-bot
2026-10-27 5:25 ` [PATCH v5 23/23] lib: rspdm: Support SPDM challenge alistair23
2026-10-27 5:43 ` sashiko-bot
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=sashiko-outbox-186127@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=alistair23@gmail.com \
--cc=gary@garyguo.net \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=ojeda@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.