lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <061ab5b3-55e2-47bc-8515-3f6b8b4ecbf2@gmail.com>
Date: Fri, 11 Jul 2025 13:41:23 -0400
From: Daniel Zahka <daniel.zahka@...il.com>
To: Cosmin Ratiu <cratiu@...dia.com>, "corbet@....net" <corbet@....net>,
 "andrew+netdev@...n.ch" <andrew+netdev@...n.ch>,
 "davem@...emloft.net" <davem@...emloft.net>,
 "kuba@...nel.org" <kuba@...nel.org>, "horms@...nel.org" <horms@...nel.org>,
 "edumazet@...gle.com" <edumazet@...gle.com>,
 "donald.hunter@...il.com" <donald.hunter@...il.com>,
 "pabeni@...hat.com" <pabeni@...hat.com>
Cc: Boris Pismenny <borisp@...dia.com>, Jianbo Liu <jianbol@...dia.com>,
 "aleksander.lobakin@...el.com" <aleksander.lobakin@...el.com>,
 "kuniyu@...gle.com" <kuniyu@...gle.com>, "leon@...nel.org"
 <leon@...nel.org>, "toke@...hat.com" <toke@...hat.com>,
 Rahul Rameshbabu <rrameshbabu@...dia.com>,
 "willemb@...gle.com" <willemb@...gle.com>, Raed Salem <raeds@...dia.com>,
 Dragos Tatulea <dtatulea@...dia.com>,
 "ncardwell@...gle.com" <ncardwell@...gle.com>,
 "dsahern@...nel.org" <dsahern@...nel.org>, "sdf@...ichev.me"
 <sdf@...ichev.me>, Saeed Mahameed <saeedm@...dia.com>,
 "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
 Tariq Toukan <tariqt@...dia.com>, Patrisious Haddad <phaddad@...dia.com>,
 "jacob.e.keller@...el.com" <jacob.e.keller@...el.com>
Subject: Re: [PATCH v3 11/19] net/mlx5e: Support PSP offload functionality



On 7/11/25 8:54 AM, Cosmin Ratiu wrote:
>   int mlx5e_psp_generate_key_spi(struct mlx5_core_dev *mdev,
>   			       enum mlx5_psp_gen_spi_in_key_size
> keysz,
>   			       unsigned int keysz_bytes,
> - struct psp_key_spi *keys)
> + struct psp_key_parsed *key)
>   {
> + u32 out[MLX5_ST_SZ_DW(psp_gen_spi_out) +
> MLX5_ST_SZ_DW(key_spi)] = {};
>   	u32 in[MLX5_ST_SZ_DW(psp_gen_spi_in)] = {};
> - int err, outlen, i;
> - void *out, *outkey;
> + void *outkey;
> + int err;
>   
>   	WARN_ON_ONCE(keysz_bytes > PSP_MAX_KEY);
>   
> - outlen = MLX5_ST_SZ_BYTES(psp_gen_spi_out) +
> MLX5_ST_SZ_BYTES(key_spi);
> - out = kzalloc(outlen, GFP_KERNEL);
> - if (!out)
> - return -ENOMEM;
> -
>   	MLX5_SET(psp_gen_spi_in, in, opcode, MLX5_CMD_OP_PSP_GEN_SPI);
>   	MLX5_SET(psp_gen_spi_in, in, key_size, keysz);
>   	MLX5_SET(psp_gen_spi_in, in, num_of_spi, 1);
> - err = mlx5_cmd_exec(mdev, in, sizeof(in), out, outlen);
> + err = mlx5_cmd_exec(mdev, in, sizeof(in), out, sizeof(out));
>   	if (err)
> - goto out;
> + return err;
>   
>   	outkey = MLX5_ADDR_OF(psp_gen_spi_out, out, key_spi);
> - keys->keysz = keysz_bytes * BITS_PER_BYTE;
> - keys->spi = MLX5_GET(key_spi, outkey, spi);
> - for (i = 0; i < keysz_bytes / sizeof(*keys->key); ++i)
> - keys->key[i] = cpu_to_be32(MLX5_GET(key_spi,
> - outkey + (32 -
> keysz_bytes), key[i]));
> -
> -out:
> - kfree(out);
> - return err;
> + key->spi = cpu_to_be32(MLX5_GET(key_spi, outkey, spi));
> + memcpy(key->key, MLX5_ADDR_OF(key_spi, outkey, key),
> keysz_bytes);
> +
>

Thanks for the updates, Cosmin. I did notice a small problem after 
applying these, where v1 keys were ok, but not v0. This seems to fix it 
for me, but it was a bit of a guess. Let me know what the proper 
adjustment is:

         outkey = MLX5_ADDR_OF(psp_gen_spi_out, out, key_spi);
         key->spi = cpu_to_be32(MLX5_GET(key_spi, outkey, spi));
-       memcpy(key->key, MLX5_ADDR_OF(key_spi, outkey, key), keysz_bytes);
+       memcpy(key->key, MLX5_ADDR_OF(key_spi, outkey, key) + (32 - 
keysz_bytes), keysz_bytes);


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ