Currently, only rsa.PrivateKey and ecdsa.PrivateKey are supported when creating JWS signatures. However, it is unnecessarily limiting because any crypto.Signer implementation can sign a digest in the appropriate format. This change uses key.Public() instead of type-asserting the private key which allows for a custom crypto.Signer implementation. For instance, a key stored in a hardware module where the latter does the actual signing without the key ever leaving its boundaries. Change-Id: Ie7930ea2ba8c49dde7107ff074ae34abec05bdb9 Reviewed-on: https://go-review.googlesource.com/c/145137 Run-TryBot: Alex Vaghin <ddos@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Filippo Valsorda <filippo@golang.org>