verifier

package module
v0.0.0-...-9904e42 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2023 License: MIT Imports: 8 Imported by: 0

README

Verifier

Verifier provides the functionality for signing and verifying messages to prevent tampering. This package was created, inspired by Ruby's ActiveSupport:MessageVerifier.

Installation

go get github.com/kondo97/verifier

Example

v := NewVerifier("secret") // It is possible to sign regardless of the type.
g, err := v.Generate("message")
purpose
v := NewVerifier("secret") 
g, err := v.Generate("message")
msg, err := v.Verify(g, "purpose") // msg = "secret"
msg, err := v.Verify(g, "diffrent purpose") // msg = "", err = "diffrent purpose"
expiresAt
v := NewVerifier("secret", time.Now().Add(24 * time.Hour)) 
g, err := v.Generate("message")
msg, err := v.Verify(g) // msg = "secret"

v := NewVerifier("secret", time.Now().Add(-24 * time.Hour)) 
g, err := v.Generate("message")
msg, err := v.Verify(g) // msg = "", err = "expired"
Rotate
v := NewVerifier("secret") 
g, err := v.Generate("message")

v2 := NewVerifier("new secret")
msg, err := v2.Verify(g) //  msg = "", err = "invalid signature"

v2.Rorate("secret")
msg, err := v2.Verify(g) // msg = "secret"

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Message

type Message struct {
	Message   any
	ExpiresAt string
	Purpose   string
}

type Verifier

type Verifier struct {
	// contains filtered or unexported fields
}

func NewVerifier

func NewVerifier(secret string) Verifier

func (Verifier) Generate

func (v Verifier) Generate(value any, expiresAt time.Time, purpose string) (string, error)

func (*Verifier) Rotate

func (v *Verifier) Rotate(secret string)

func (Verifier) Verify

func (v Verifier) Verify(signedMessage string, purpose string) (any, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL