From fbcac585cf626917e2baf1d0065c7b632341ba01 Mon Sep 17 00:00:00 2001 From: Gabriel Arakaki Giovanini Date: Wed, 19 Jul 2023 21:01:23 +0200 Subject: ref: Move auth functions to service --- pkg/ext/auth.go | 72 --------------------------------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 pkg/ext/auth.go (limited to 'pkg/ext/auth.go') diff --git a/pkg/ext/auth.go b/pkg/ext/auth.go deleted file mode 100644 index ed122bb..0000000 --- a/pkg/ext/auth.go +++ /dev/null @@ -1,72 +0,0 @@ -package ext - -import ( - "bytes" - "crypto/aes" - "crypto/cipher" - "crypto/rand" - "encoding/gob" - "errors" - "io" -) - -type Token struct { - UserID uint - Username string -} - -func ReadToken(data []byte, key []byte) (*Token, error) { - block, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - - aesgcm, err := cipher.NewGCM(block) - if err != nil { - panic(err.Error()) - } - - nonceSize := aesgcm.NonceSize() - if len(data) < nonceSize { - return nil, errors.New("nonce size greater than data's size") - } - - nonce, ciphertext := data[:nonceSize], data[nonceSize:] - plaintext, err := aesgcm.Open(nil, nonce, ciphertext, nil) - if err != nil { - return nil, err - } - - r := bytes.NewReader(plaintext) - var token Token - dec := gob.NewDecoder(r) - if err = dec.Decode(&token); err != nil { - return nil, err - } - return &token, nil -} - -func WriteToken(token *Token, key []byte) ([]byte, error) { - block, err := aes.NewCipher(key) - if err != nil { - return nil, err - } - - aesgcm, err := cipher.NewGCM(block) - if err != nil { - return nil, err - } - - var buffer bytes.Buffer - enc := gob.NewEncoder(&buffer) - if err := enc.Encode(token); err != nil { - return nil, err - } - nonce := make([]byte, aesgcm.NonceSize()) - if _, err = io.ReadFull(rand.Reader, nonce); err != nil { - return nil, err - } - - ciphertext := aesgcm.Seal(nonce, nonce, buffer.Bytes(), nil) - return ciphertext, nil -} -- cgit v1.2.3