As I was experimenting with adding support for validating signatures generated by the ssh-agent for my project ssh-agent-client-rs I discovered that the low level DSA signatures present in the data field of an ssh-key::Signature struct is different from the OpenSSH wire format as specified in RFC4253 Section 6.6
This seems to be unintentional, as the serialisation and deserialisation in ssh-key simply leans on the conversion present in the dsa
module.
One might argue that the format of the data field in Signature is an implementation detail, but on the other hand the new constructor enforces a 160 bit DSA key length which makes it impossible to construct a Signature instance with the public API that can be used for signature verification, as the longer internal representation from the dsa module will be rejected as invalid.