This Go library implements the SSHSIG wire protocol, and can be used to sign and verify messages using SSH keys.
Compared to other implementations, this library does all the following:
io.Reader as input for signing and verifying messages.Verify. Malicious input will still fail signature verification, but this provides more useful error messages.ssh-sha2-512 as signature algorithm when signing with an RSA private key, as described in the protocol.Sign operation without a namespace as specified in the protocol.Verify operations to be performed without a namespace, ensuring compatibility with loose implementations.Armor and Unarmor functions to encode/decode the signature to/from an (armored) PEM format.For more information about the use of this library, see the Go Reference.
There are several other implementations of the SSHSIG protocol in Go, from which this library has borrowed ideas: