diff options
| author | Christine Dodrill <me@christine.website> | 2019-02-17 09:35:25 -0800 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2019-02-17 09:35:25 -0800 |
| commit | 2511992a18cf4a425aacbdd4d84449ae81b2dbc3 (patch) | |
| tree | 9c8243cabe67f8c3e4e9db7dab247e790ddf8fcb /internal | |
| parent | 60d342478afe343cd36af5fb89a8569ced0e896e (diff) | |
| download | x-2511992a18cf4a425aacbdd4d84449ae81b2dbc3.tar.xz x-2511992a18cf4a425aacbdd4d84449ae81b2dbc3.zip | |
kill glue
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/gluaexpect/expect.go | 35 | ||||
| -rw-r--r-- | internal/gluasimplebox/sb.go | 100 |
2 files changed, 0 insertions, 135 deletions
diff --git a/internal/gluaexpect/expect.go b/internal/gluaexpect/expect.go deleted file mode 100644 index b7e57d4..0000000 --- a/internal/gluaexpect/expect.go +++ /dev/null @@ -1,35 +0,0 @@ -package gluaexpect - -import ( - "github.com/ThomasRooney/gexpect" - luar "github.com/layeh/gopher-luar" - lua "github.com/yuin/gopher-lua" -) - -func Preload(L *lua.LState) { - L.PreloadModule("expect", Loader) -} - -// Loader is the module loader function. -func Loader(L *lua.LState) int { - mod := L.SetFuncs(L.NewTable(), api) - L.Push(mod) - return 1 -} - -var api = map[string]lua.LGFunction{ - "spawn": spawn, -} - -func spawn(L *lua.LState) int { - cmd := L.CheckString(1) - child, err := gexpect.Spawn(cmd) - if err != nil { - L.Push(lua.LNil) - L.Push(lua.LString(err.Error())) - return 2 - } - - L.Push(luar.New(L, child)) - return 1 -} diff --git a/internal/gluasimplebox/sb.go b/internal/gluasimplebox/sb.go deleted file mode 100644 index cbb707e..0000000 --- a/internal/gluasimplebox/sb.go +++ /dev/null @@ -1,100 +0,0 @@ -package gluasimplebox - -import ( - "crypto/rand" - "encoding/base64" - "encoding/hex" - "errors" - - "github.com/brandur/simplebox" - luar "github.com/layeh/gopher-luar" - lua "github.com/yuin/gopher-lua" -) - -func Preload(L *lua.LState) { - L.PreloadModule("simplebox", Loader) -} - -// Loader is the module loader function. -func Loader(L *lua.LState) int { - mod := L.SetFuncs(L.NewTable(), api) - L.Push(mod) - return 1 -} - -var api = map[string]lua.LGFunction{ - "new": newSecretBox, - "genkey": genKey, -} - -func newSecretBox(L *lua.LState) int { - key := L.CheckString(1) - - k, err := parseKey(key) - if err != nil { - L.Push(lua.LNil) - L.Push(lua.LString(err.Error())) - return 2 - } - - sb := simplebox.NewFromSecretKey(k) - - L.Push(luar.New(L, &box{sb: sb})) - return 1 -} - -func genKey(L *lua.LState) int { - key, err := generateKey() - if err != nil { - L.Push(lua.LNil) - L.Push(lua.LString(err.Error())) - return 2 - } - - L.Push(lua.LString(base64.URLEncoding.EncodeToString(key[:]))) - return 1 -} - -func generateKey() (*[32]byte, error) { - var k [32]byte - _, err := rand.Read(k[:]) - if err != nil { - return nil, err - } - return &k, nil -} - -func parseKey(s string) (*[32]byte, error) { - k := &[32]byte{} - raw, err := base64.URLEncoding.DecodeString(s) - if err != nil { - return nil, err - } - if n := copy(k[:], raw); n < len(k) { - return nil, errors.New("not valid") - } - return k, nil -} - -type box struct { - sb *simplebox.SimpleBox -} - -func (b *box) Encrypt(data string) string { - result := b.sb.Encrypt([]byte(data)) - return hex.EncodeToString(result) -} - -func (b *box) Decrypt(data string) (string, error) { - d, err := hex.DecodeString(data) - if err != nil { - return "", err - } - - plain, err := b.sb.Decrypt([]byte(d)) - if err != nil { - return "", err - } - - return string(plain), nil -} |
