base64

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2022 License: MIT Imports: 4 Imported by: 10

Documentation

Index

Constants

View Source
const (
	StdPadding rune = base64.StdPadding
	NoPadding  rune = base64.NoPadding
)

Variables

View Source
var RawStdEncoding = StdEncoding.WithPadding(NoPadding)

RawStdEncoding is the standard unpadded base64 encoding defined in RFC 4648 section 3.2. This is the same as StdEncoding but omits padding characters.

View Source
var RawURLEncoding = URLEncoding.WithPadding(NoPadding)

RawURLEncoding is the unpadded alternate base64 encoding defined in RFC 4648. This is the same as URLEncoding but omits padding characters.

View Source
var StdEncoding = NewEncoding(encodeStd)

StdEncoding is the standard base64 encoding, as defined in RFC 4648.

View Source
var URLEncoding = NewEncoding(encodeURL)

URLEncoding is the alternate base64 encoding defined in RFC 4648. It is typically used in URLs and file names.

Functions

This section is empty.

Types

type Encoding

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

An Encoding is a radix 64 encoding/decoding scheme, defined by a 64-character alphabet.

func NewEncoding

func NewEncoding(encoder string) *Encoding

NewEncoding returns a new padded Encoding defined by the given alphabet, which must be a 64-byte string that does not contain the padding character or CR / LF ('\r', '\n'). Unlike the standard library, the encoding alphabet cannot be abitrary, and it must follow one of the know standard encoding variants.

Required alphabet values:

  • [0,26): characters 'A'..'Z'
  • [26,52): characters 'a'..'z'
  • [52,62): characters '0'..'9'

Flexible alphabet value options:

The resulting Encoding uses the default padding character ('='), which may be changed or disabled via WithPadding. The padding characters is urestricted, but it must be a character outside of the encoder alphabet.

func (*Encoding) Decode

func (enc *Encoding) Decode(dst, src []byte) (n int, err error)

Decode decodes src using the defined encoding alphabet. This will write DecodedLen(len(src)) bytes to dst and return the number of bytes written.

func (*Encoding) DecodeString

func (enc *Encoding) DecodeString(s string) ([]byte, error)

DecodeString decodes the base64 encoded string s, returns the decoded value as bytes.

func (*Encoding) DecodedLen

func (enc *Encoding) DecodedLen(n int) int

DecodedLen calculates the decoded byte length for a base64-encoded message of length n.

func (*Encoding) Encode

func (enc *Encoding) Encode(dst, src []byte)

Encode encodes src using the defined encoding alphabet. This will write EncodedLen(len(src)) bytes to dst.

func (*Encoding) EncodeToString

func (enc *Encoding) EncodeToString(src []byte) string

Encode encodes src using the encoding enc, writing EncodedLen(len(src)) bytes to dst.

func (*Encoding) EncodedLen

func (enc *Encoding) EncodedLen(n int) int

EncodedLen calculates the base64-encoded byte length for a message of length n.

func (Encoding) Strict

func (enc Encoding) Strict() *Encoding

Strict creates a duplicate encoding updated with strict decoding enabled. This requires that trailing padding bits are zero.

func (Encoding) WithPadding

func (enc Encoding) WithPadding(padding rune) *Encoding

WithPadding creates a duplicate Encoding updated with a specified padding character, or NoPadding to disable padding. The padding character must not be contained in the encoding alphabet, must not be '\r' or '\n', and must be no greater than '\xFF'.

Jump to

Keyboard shortcuts

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