Package cert provides a cryptographic certicate library.
const ( // CertVersion is the certificate format version. CertVersion = 0 )
var ( // ErrImpossibleDecode is an impossible decoding error. ErrImpossibleDecode = errors.New("impossible to decode") // ErrImpossibleEncode is an impossible encoding error. ErrImpossibleEncode = errors.New("impossible to encode") // ErrImpossibleOutOfMemory is an impossible out of memory error. ErrImpossibleOutOfMemory = errors.New("impossible out of memory failure") // ErrBadSignature indicates that the given signature does not sign the certificate. ErrBadSignature = errors.New("signature does not sign certificate") // ErrDuplicateSignature indicates that the given signature is already present in the certificate. ErrDuplicateSignature = errors.New("signature must not be duplicate") // ErrInvalidCertified indicates that the certified field is invalid ErrInvalidCertified = errors.New("invalid certified field of certificate") // ErrKeyTypeMismatch indicates that the given signer's key type is different than the signatures present already. ErrKeyTypeMismatch = errors.New("certificate key type mismatch") // ErrInvalidKeyType indicates that the given signer's key type is different than the signatures present already. ErrInvalidKeyType = errors.New("invalid certificate key type") // ErrVersionMismatch indicates that the given certificate is the wrong format version. ErrVersionMismatch = errors.New("certificate version mismatch") // ErrCertificateExpired indicates that the given certificate has expired. ErrCertificateExpired = errors.New("certificate expired") // ErrIdentitySignatureNotFound indicates that for the given signer identity there was no signature present in the certificate. ErrIdentitySignatureNotFound = errors.New("failure to find signature associated with the given identity") // ErrInvalidThreshold indicated the given threshold cannot be used. ErrInvalidThreshold = errors.New("threshold must be equal or less than the number of verifiers") // ErrThresholdNotMet indicates that there were not enough valid signatures to meet the threshold. ErrThresholdNotMet = errors.New("threshold failure") )
AddSignature adds the signature to the certificate if the verifier can verify the signature signs the certificate.
GetCertified returns the certified data.
Sign uses the given Signer to create a certificate which certifies the given data.
SignMulti uses the given signer to create a signature and appends it to the certificate and returns it.
Verify is used to verify one of the signatures attached to the certificate. It returns the certified data if the signature is valid.
VerifyAll returns the certified data if all of the given verifiers can verify the certificate. Otherwise nil is returned along with an error.
VerifyThreshold returns the certified data, the succeeded verifiers and the failed verifiers if at least a threshold number of verifiers can verify the certificate. Otherwise nil is returned along with an error.
Signature is a cryptographic signature which has an associated signer ID.
GetSignature returns a signature that signs the certificate if it matches with the given identity.
GetSignatures returns all the signatures.
Signer signs messages.
Verifier is used to verify signatures.