DSA signatures in OpenSSL 3.0

Richard Dymond rjdymond at gmail.com
Mon Mar 14 12:02:18 UTC 2022


On Mon, 14 Mar 2022 at 04:52, Tomas Mraz <tomas at openssl.org> wrote:

> The DSA_SIG_* functions are not deprecated including the i2d and d2i
> functions. So you can use d2i_DSA_SIG to decode the DER produced by the
> EVP_DigestSign() and then obtain the r and s values from the DSA_SIG.
>

Thank you, that works! For some reason it had escaped my notice that the
DSA_SIG_* functions are not deprecated.

By the way, the reason I need to get the 'r' and 's' values from the DSA
signature is that I am encoding them one after the other as 160-bit
unsigned integers, in network byte order, as required by SSH and described
in section 6.6 of RFC 4253 (dss_signature_blob)[1]. To do this encoding I
am calling BN_bn2bin() twice to write 'r' followed by 's' at the
appropriate locations in a 40-byte buffer. By any chance, does OpenSSL 3.0
provide any support for encoding a DSA signature like this from a DSA_SIG
(i.e. without having to extract 'r' and 's' first and then use BN_bn2bin())?

Richard

[1] https://datatracker.ietf.org/doc/html/rfc4253#section-6.6
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mta.openssl.org/pipermail/openssl-users/attachments/20220314/a058a561/attachment.htm>


More information about the openssl-users mailing list