Documentation ¶
Overview ¶
Utility for creating and restoring url-safe signed JSON objects.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrInvalidKey = errors.New("Invalid key: key can not be an empty string") ErrInvalidSalt = errors.New("Invalid salt: salt can not be an empty string") ErrUnsafeSignerSeparator = errors.New("Unsafe Signer separator: cannot be empty or consist of only A-z0-9-_=") ErrBadSignature = errors.New("Signature not valid") )
View Source
var (
ErrSignatureExpired = errors.New("Signature expired")
)
Functions ¶
func Base64Hmac ¶
func SaltedHmac ¶
Types ¶
type SignUnsigner ¶
type Signer ¶
type Signer struct {
// contains filtered or unexported fields
}
func NewSigner ¶
Example ¶
package main import ( "fmt" "github.com/enricofoltran/signing" ) func main() { var key string = "v5kyWAnOBiEKVpAZmMC03BY18Fi6u1ALuZZUb0gnU7Q=" var salt string = "Gm8uSwfozUKXXatEJLpBB1cNq0F0AR1U7LRaqeO+Tn8=" var sep string = ":" signer, err := signing.NewSigner(key, sep, salt) if err != nil { panic(err) } signed := signer.Sign("the-quick-brown-fox") fmt.Print(signed) unsigned, err := signer.Unsign(signed) switch err { case signing.ErrBadSignature: fmt.Printf("Unsign error: %v", err) default: panic(err) } fmt.Print(unsigned) }
Output: the-quick-brown-fox:-maTzDzCZGpiiLqm6SZr0KkMfBo
type TimestampSigner ¶
type TimestampSigner struct {
Signer
}
func NewTimestampSigner ¶
func NewTimestampSigner(key, sep, salt string) (*TimestampSigner, error)
func (*TimestampSigner) Sign ¶
func (ts *TimestampSigner) Sign(value string) string
func (*TimestampSigner) UnsignMaxAge ¶
Click to show internal directories.
Click to hide internal directories.