func MakeSignatures(canonical []byte, k keys.Signer) ([]data.Signature, error)
MakeSignatures creates data.Signatures for canonical using signer k.
There will be one data.Signature for each of k's IDs, each wih the same signature data.
func Marshal(v interface{}, keys ...keys.Signer) (*data.Signed, error)
func Sign(s *data.Signed, k keys.Signer) error
Sign signs the to-be-signed part of s using the signer k.
The new signature(s) (one for each of k's key IDs) are appended to s.Signatures. Existing signatures for the Key IDs are replaced.