1
0
Fork 0
eighty/middleware/internal/secret_box_dto.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
//}