initial commit
This commit is contained in:
commit
60fb40d61a
34 changed files with 2571 additions and 0 deletions
56
pkg/core/encoding.go
Normal file
56
pkg/core/encoding.go
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
// Copyright (C) 2023 Marius Schellenberger
|
||||
|
||||
package core
|
||||
|
||||
import (
|
||||
"encoding/base32"
|
||||
"encoding/base64"
|
||||
"encoding/hex"
|
||||
)
|
||||
|
||||
var b32raw = base32.StdEncoding.WithPadding(base32.NoPadding)
|
||||
|
||||
type Encoding int
|
||||
|
||||
func (e Encoding) String() string {
|
||||
switch e {
|
||||
case Base32:
|
||||
return "base32"
|
||||
case Base64:
|
||||
return "base64"
|
||||
case Base64URL:
|
||||
return "base64url"
|
||||
}
|
||||
return "hex"
|
||||
}
|
||||
|
||||
func (e Encoding) EncodeToString(src []byte) string {
|
||||
switch e {
|
||||
case Base32:
|
||||
return b32raw.EncodeToString(src)
|
||||
case Base64:
|
||||
return base64.RawStdEncoding.EncodeToString(src)
|
||||
case Base64URL:
|
||||
return base64.RawURLEncoding.EncodeToString(src)
|
||||
}
|
||||
return hex.EncodeToString(src)
|
||||
}
|
||||
|
||||
func EncodingFromString(e string) Encoding {
|
||||
switch e {
|
||||
case "base32":
|
||||
return Base32
|
||||
case "base64":
|
||||
return Base64
|
||||
case "base64url":
|
||||
return Base64URL
|
||||
}
|
||||
return Hex
|
||||
}
|
||||
|
||||
const (
|
||||
Hex Encoding = iota
|
||||
Base32
|
||||
Base64
|
||||
Base64URL
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue