Documentation
¶
Index ¶
Constants ¶
const ( HeaderWebhookID string = "webhook-id" HeaderWebhookSignature string = "webhook-signature" HeaderWebhookTimestamp string = "webhook-timestamp" )
Variables ¶
var ( ErrRequiredHeaders = errors.New("missing required headers") ErrInvalidHeaders = errors.New("invalid signature headers") ErrNoMatchingSignature = errors.New("no matching signature found") ErrMessageTooOld = errors.New("message timestamp too old") ErrMessageTooNew = errors.New("message timestamp too new") ErrInvalidKeyType = errors.New("invalid key type") ErrNoSigners = errors.New("no signers configured") ErrNoVerifiers = errors.New("no verifiers configured") )
Functions ¶
This section is empty.
Types ¶
type ED25519Signer ¶
type ED25519Signer struct {
// contains filtered or unexported fields
}
ED25519Signer implements the Signer interface using ED25519
func NewED25519Signer ¶
func NewED25519Signer(key ed25519.PrivateKey) *ED25519Signer
NewED25519Signer creates a new ED25519 signer from a private key
func (*ED25519Signer) Sign ¶
func (s *ED25519Signer) Sign(message []byte) ([]byte, error)
Sign signs the message using ED25519
func (*ED25519Signer) Version ¶
func (s *ED25519Signer) Version() string
Version returns the version string for ED25519 signer
type ED25519Verifier ¶
type ED25519Verifier struct {
// contains filtered or unexported fields
}
ED25519Verifier implements the Verifier interface using ED25519
func NewED25519Verifier ¶
func NewED25519Verifier(key ed25519.PublicKey) *ED25519Verifier
NewED25519Verifier creates a new ED25519 verifier from a public key
func (*ED25519Verifier) Verify ¶
func (s *ED25519Verifier) Verify(message, signature []byte) error
Verify verifies the message using ED25519
func (*ED25519Verifier) Version ¶
func (s *ED25519Verifier) Version() string
Version returns the version string for ED25519 verifier
type HMACSignerAndVerifier ¶
type HMACSignerAndVerifier struct {
// contains filtered or unexported fields
}
HMACSignerAndVerifier implements both Signer and Verifier interfaces using HMAC-SHA256
func NewHMACSignerAndVerifier ¶
func NewHMACSignerAndVerifier(key []byte) *HMACSignerAndVerifier
NewHMACSignerAndVerifier creates a new HMAC signer/verifier from a secret key
func (*HMACSignerAndVerifier) Sign ¶
func (s *HMACSignerAndVerifier) Sign(message []byte) ([]byte, error)
Sign signs the message using HMAC-SHA256
func (*HMACSignerAndVerifier) Verify ¶
func (s *HMACSignerAndVerifier) Verify(message, signature []byte) error
Verify verifies the message using HMAC-SHA256
func (*HMACSignerAndVerifier) Version ¶
func (s *HMACSignerAndVerifier) Version() string
Version returns the version string for HMAC signer
type Signer ¶
type Signer interface { // Version returns the version string for this signer (e.g. "v1" or "v1a") Version() string // Sign signs the given message and returns the signature Sign(message []byte) ([]byte, error) }
Signer represents a webhook signing implementation
type Verifier ¶
type Verifier interface { // Version returns the version string for this verifier (e.g. "v1" or "v1a") Version() string // Verify verifies the given message with the signature Verify(message, signature []byte) error }
Verifier represents a webhook verification implementation
type WebhookSigner ¶
type WebhookSigner struct {
// contains filtered or unexported fields
}
WebhookSigner handles webhook signing
func NewWebhookSigner ¶
func NewWebhookSigner(signers ...Signer) *WebhookSigner
NewWebhookSigner creates a new webhook signer with multiple signers
func (*WebhookSigner) AddSigner ¶
func (wh *WebhookSigner) AddSigner(s Signer)
AddSigner adds a new signer to the webhook signer
type WebhookVerifier ¶
type WebhookVerifier struct {
// contains filtered or unexported fields
}
WebhookVerifier handles webhook verification
func NewWebhookVerifier ¶
func NewWebhookVerifier(verifiers ...Verifier) *WebhookVerifier
NewWebhookVerifier creates a new webhook verifier with multiple verifiers
func (*WebhookVerifier) AddVerifier ¶
func (wh *WebhookVerifier) AddVerifier(v Verifier)
AddVerifier adds a new verifier to the webhook verifier