57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
package internal
|
|
|
|
//
|
|
//import (
|
|
// "amuz.es/src/mercury/endpoint/misc"
|
|
// "encoding/base64"
|
|
// "github.com/tinylib/msgp/msgp"
|
|
// "io"
|
|
// "strings"
|
|
//)
|
|
//
|
|
//type (
|
|
// secretPayload map[string]string
|
|
// SecretToolboxImpl struct {
|
|
// EncryptWriter func(dst io.Writer) (io.WriteCloser, error)
|
|
// DecryptReader func(src io.Reader) (io.Reader, error)
|
|
// }
|
|
//)
|
|
//
|
|
//// 인터페이스가 실제구현체랑 호환되는가
|
|
//var _ misc.SecretToolbox = (*SecretToolboxImpl)(nil)
|
|
//
|
|
//func (tbx *SecretToolboxImpl) Encrypt(data map[string]string) (encrypted string, err error) {
|
|
//
|
|
// var (
|
|
// payload secretPayload = data
|
|
// stringWriter strings.Builder
|
|
// )
|
|
//
|
|
// encryptor, err := tbx.EncryptWriter(base64.NewEncoder(base64.URLEncoding, &stringWriter))
|
|
// if err != nil {
|
|
// return
|
|
// } else if err = msgp.Encode(encryptor, payload); err != nil {
|
|
// return
|
|
// }
|
|
//
|
|
// _ = encryptor.Close()
|
|
//
|
|
// encrypted = stringWriter.String()
|
|
// return
|
|
//}
|
|
//func (tbx *SecretToolboxImpl) Decrypt(encrypted string) (data map[string]string, err error) {
|
|
// var (
|
|
// stringReader = strings.NewReader(encrypted)
|
|
// payload = secretPayload{}
|
|
// )
|
|
//
|
|
// decryptor, err := tbx.DecryptReader(base64.NewDecoder(base64.URLEncoding, stringReader))
|
|
// if err != nil {
|
|
// return
|
|
// } else if err = msgp.Decode(decryptor, &payload); err != nil {
|
|
// return
|
|
// }
|
|
// data = payload
|
|
// return
|
|
//}
|