summaryrefslogtreecommitdiff
path: root/pkg/server/module/aes.go
diff options
context:
space:
mode:
authorMikhail Osipov <mike.osipov@gmail.com>2020-02-29 00:58:01 +0300
committerMikhail Osipov <mike.osipov@gmail.com>2020-02-29 00:58:01 +0300
commitc55afd2de177f128fae6e1c52d0c56af17096258 (patch)
tree2b06eeabf4db3a6c7ef357fb1569c4e8f72aab68 /pkg/server/module/aes.go
parent11501b56a751d2959480aaeaf2036eff586e5629 (diff)
rename module to hook
Diffstat (limited to 'pkg/server/module/aes.go')
-rw-r--r--pkg/server/module/aes.go85
1 files changed, 0 insertions, 85 deletions
diff --git a/pkg/server/module/aes.go b/pkg/server/module/aes.go
deleted file mode 100644
index 13153bc..0000000
--- a/pkg/server/module/aes.go
+++ /dev/null
@@ -1,85 +0,0 @@
-package module
-
-import (
- "crypto/aes"
- "crypto/cipher"
- "crypto/md5"
- "crypto/rand"
- "io"
- "tunnel/pkg/server/env"
- "tunnel/pkg/server/opts"
- "tunnel/pkg/server/queue"
-)
-
-type aesModule struct{}
-
-type aesPipe struct {
- key []byte
-}
-
-func (a *aesPipe) Send(rq, wq queue.Q) error {
- block, err := aes.NewCipher(a.key)
- if err != nil {
- return err
- }
-
- iv := make([]byte, aes.BlockSize)
-
- if _, err := rand.Read(iv); err != nil {
- return err
- }
-
- writer := &cipher.StreamWriter{
- S: cipher.NewOFB(block, iv),
- W: wq.Writer(),
- }
-
- wq <- iv
-
- return queue.IoCopy(rq.Reader(), writer)
-}
-
-func (a *aesPipe) Recv(rq, wq queue.Q) error {
- block, err := aes.NewCipher(a.key)
- if err != nil {
- return err
- }
-
- r := rq.Reader()
-
- iv := make([]byte, aes.BlockSize)
-
- if _, err := io.ReadFull(r, iv); err != nil {
- if err == io.EOF {
- return nil
- }
- return err
- }
-
- reader := &cipher.StreamReader{
- S: cipher.NewOFB(block, iv),
- R: r,
- }
-
- return queue.IoCopy(reader, wq.Writer())
-}
-
-func newAes(env env.Env) *aesPipe {
- s := getAuthSecret(env)
- h := md5.Sum([]byte(s))
-
- a := &aesPipe{key: make([]byte, 16)}
- copy(a.key, h[:])
-
- return a
-}
-
-func (m aesModule) Open(env env.Env) (interface{}, error) {
- return newAes(env), nil
-}
-
-func init() {
- register("aes", func(opts.Opts, env.Env) (module, error) {
- return aesModule{}, nil
- })
-}