ticket

package
v1.4.5 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2022 License: MIT Imports: 10 Imported by: 1

Documentation

Overview

Example (C_DecodeString)
package main

import (
	"fmt"

	"github.com/akornatskyy/goext/security/ticket"
)

var key2 = []byte("1234567890123456")

func main() {
	c := ticket.NewCipher(key2)

	b, err := c.DecodeString("4ADOyviA4Khjpe3VNCDaD6x5ceLzBNSGsVqBuhBbTpw")

	fmt.Println(string(b), err)
}
Output:

test <nil>
Example (C_EncodeToString)
package main

import (
	"fmt"

	"github.com/akornatskyy/goext/security/ticket"
)

var key2 = []byte("1234567890123456")

func main() {
	c := ticket.NewCipher(key2)

	_, err := c.EncodeToString([]byte("test"))

	fmt.Println(err)
}
Output:

<nil>

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	ErrExpired = errors.New("expired")
)

Functions

func NewCipher

func NewCipher(key []byte) *c

Types

type Signer

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

func NewSigner

func NewSigner(h func() hash.Hash, key []byte) *Signer

func (*Signer) DecodeString

func (s *Signer) DecodeString(src string) ([]byte, error)
Example
package main

import (
	"crypto/sha1"
	"fmt"

	"github.com/akornatskyy/goext/security/ticket"
)

var key = []byte("secret")

func main() {
	s := ticket.NewSigner(sha1.New, key)

	text, err := s.DecodeString("dGVzdBqjSVhe1-y9O5xIajAGfjlcpLNW")
	fmt.Println(string(text), err)
}
Output:

test <nil>

func (*Signer) EncodeToString

func (s *Signer) EncodeToString(src []byte) (string, error)
Example
package main

import (
	"crypto/sha1"
	"fmt"

	"github.com/akornatskyy/goext/security/ticket"
)

var key = []byte("secret")

func main() {
	s := ticket.NewSigner(sha1.New, key)

	fmt.Println(s.EncodeToString([]byte("test")))
}
Output:

dGVzdBqjSVhe1-y9O5xIajAGfjlcpLNW <nil>

func (*Signer) Signature

func (s *Signer) Signature(src []byte) ([]byte, error)
Example
package main

import (
	"crypto/sha1"
	"encoding/base64"
	"fmt"

	"github.com/akornatskyy/goext/security/ticket"
)

var key = []byte("secret")

func main() {
	s := ticket.NewSigner(sha1.New, key)

	signature, err := s.Signature([]byte("test"))
	fmt.Println(base64.RawURLEncoding.EncodeToString(signature), err)
}
Output:

GqNJWF7X7L07nEhqMAZ-OVyks1Y <nil>

func (*Signer) Verify

func (s *Signer) Verify(src, signature []byte) error
Example
package main

import (
	"crypto/sha1"
	"encoding/base64"
	"fmt"

	"github.com/akornatskyy/goext/security/ticket"
)

var key = []byte("secret")

func main() {
	s := ticket.NewSigner(sha1.New, key)

	signature, err := base64.RawURLEncoding.DecodeString(
		"GqNJWF7X7L07nEhqMAZ-OVyks1Y")
	fmt.Println(s.Verify([]byte("test"), signature), err)
}
Output:

<nil> <nil>

type Ticket

type Ticket struct {
	MaxAge time.Duration
	Signer *Signer
}

func (*Ticket) DecodeString

func (t *Ticket) DecodeString(s string) ([]byte, int, error)

func (*Ticket) EncodeToString

func (t *Ticket) EncodeToString(b []byte) (string, error)

Jump to

Keyboard shortcuts

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