[PATCH] sshsig: check hashalg before selecting the RSA signature algorithm

Morten Linderud morten at linderud.pw
Sun Nov 24 02:37:19 AEDT 2024


Hi,

I sent this patch back inn april and I still have a need for this. Would it be
possible to get any pointers how we can have `hashalg` selectable by `ssh-keygen -Y`?

-- 
Morten Linderud
PGP: 9C02FF419FECBE16

On Thu, Apr 11, 2024 at 09:16:39PM +0200, Morten Linderud wrote:
> `ssh-keygen -Y sign` only selects the signing algorithm `rsa-sha2-512`
> and this prevents ssh-agent implementations that can't support sha512
> from signing messages.
> 
> An example of this is TPMs which mostly only really supports sha256
> widely.
> 
> This change enables `ssh-keygen -Y sign` to honor the `hashalg` option
> for the signing algorithm.
> 
> Signed-off-by: Morten Linderud <morten at linderud.pw>
> ---
>  sshsig.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/sshsig.c b/sshsig.c
> index 470b286a3..033b43353 100644
> --- a/sshsig.c
> +++ b/sshsig.c
> @@ -190,8 +190,14 @@ sshsig_wrap_sign(struct sshkey *key, const char *hashalg,
>  	}
>  
>  	/* If using RSA keys then default to a good signature algorithm */
> -	if (sshkey_type_plain(key->type) == KEY_RSA)
> -		sign_alg = RSA_SIGN_ALG;
> +	if (sshkey_type_plain(key->type) == KEY_RSA){
> +		if (hashalg == NULL)
> +			sign_alg = RSA_SIGN_ALG;
> +		else if (strcmp(hashalg, "sha256") == 0)
> +			sign_alg = "rsa-sha2-256";
> +		else if (strcmp(hashalg, "sha512") == 0)
> +			sign_alg = "rsa-sha2-512";
> +	}
>  
>  	if (signer != NULL) {
>  		if ((r = signer(key, &sig, &slen,
> -- 
> 2.44.0
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.mindrot.org/pipermail/openssh-unix-dev/attachments/20241123/f62f7654/attachment.asc>


More information about the openssh-unix-dev mailing list