func SignRS512(r *rsa.PrivateKey, data []byte) ([]byte, error) {
    h := sha512.New()
    h.Write(data)
    d := h.Sum(nil)
    return rsa.SignPKCS1v15(rand.Reader, r, crypto.SHA512, d)