const ( StdPadding rune = '=' // 標準パディング文字 NoPadding rune = -1 // パディングなし )
HexEncoding は RFC 4648 で定義されている “Extended Hex Alphabet” です。 通常 DNS で使用されます。
var HexEncoding = NewEncoding(encodeHex)
StdEncoding は, RFC 4648 で定義されている標準の base32 エンコーディングです。
var StdEncoding = NewEncoding(encodeStd)
func NewDecoder(enc *Encoding, r io.Reader) io.Reader
NewDecoder は新しい base32 ストリームデコーダを構築します。
func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser
NewEncoder は新しい base32 ストリームエンコーダを返します。 返されたライターに書き込まれたデータは enc を使用してエンコードされてから w に書き込まれます。 Base32 エンコーディングは 5 バイトブロックで動作します。 書き込みが終了したら,呼び出し側は返されたエンコーダを閉じて, 部分的に書き込まれたブロックをフラッシュする必要があります。
▹ 例
type CorruptInputError int64
func (e CorruptInputError) Error() string
Encoding は, 32 文字のアルファベットで定義された基数 32 のエンコード / デコード方式です。 最も一般的なのは SASL SSAPI 用に導入され RFC 4648 で標準化された "base32" エンコーディングです。 代替の "base32hex" エンコーディングは DNSSEC で使用されます。
type Encoding struct {
// エクスポートされていないフィールドがあります
}
func NewEncoding(encoder string) *Encoding
NewEncoding は,与えられたアルファベットで定義された新しい Encoding を返します。 これは 32 バイトの文字列でなければなりません。
func (enc *Encoding) Decode(dst, src []byte) (n int, err error)
デコード enc はエンコーディング enc を使って src をデコードします。 最大で DecodedLen(len(src)) バイトを dst に書き込み,書き込まれたバイト数を返します。 src に無効な base32 データが含まれている場合は,正常に書き込まれたバイト数と CorruptInputError が返されます。 改行文字 (\r と \n) は無視されます。
func (enc *Encoding) DecodeString(s string) ([]byte, error)
DecodeString は, base32 文字列 s で表されるバイトを返します。
▹ 例
func (enc *Encoding) DecodedLen(n int) int
DecodedLen は, n バイトの base32 エンコードデータに対応するデコードデータの最大長をバイト数で返します。
func (enc *Encoding) Encode(dst, src []byte)
Encode はエンコーディング enc を使用して src をエンコードし, EncodedLen(len(src)) バイトを dst に書き込みます。
エンコーディングは出力を 8 バイトの倍数にパディングするので, Encode は大きなデータストリームの個々のブロックでの使用には適していません。 代わりに NewEncoder() を使用してください。
func (enc *Encoding) EncodeToString(src []byte) string
EncodeToString は, src の base32 エンコーディングを返します。
▹ 例
func (enc *Encoding) EncodedLen(n int) int
EncodedLen は,長さ n の入力バッファの base32 エンコーディングの長さをバイト数で返します。
func (enc Encoding) WithPadding(padding rune) *Encoding
WithPadding は,padding 文字を変更した,あるいは,NoPadding でパディングを無効にした点を除いて enc と同じ新しいエンコーディングを作成します。 padding 文字は '\r' や '\n' であってはならず,エンコーディングのアルファベットに含まれてはならず, '\xff' 以下のルーンでなければなりません。