Move encoding utils in separate pkg

This commit is contained in:
Neeraj Gupta 2023-09-23 09:35:37 +05:30
parent 42a6217d44
commit d59991bd7f
5 changed files with 22 additions and 22 deletions

View file

@ -2,7 +2,7 @@ package crypto
import ( import (
"bytes" "bytes"
"cli-go/utils" "cli-go/utils/encoding"
"encoding/base64" "encoding/base64"
"fmt" "fmt"
"io" "io"
@ -131,8 +131,8 @@ func SecretBoxOpen(c []byte, n []byte, k []byte) ([]byte, error) {
} }
func SecretBoxOpenBase64(cipher string, nonce string, k []byte) ([]byte, error) { func SecretBoxOpenBase64(cipher string, nonce string, k []byte) ([]byte, error) {
var cp sodium.Bytes = utils.DecodeBase64(cipher) var cp sodium.Bytes = encoding.DecodeBase64(cipher)
out, err := cp.SecretBoxOpen(sodium.SecretBoxNonce{Bytes: utils.DecodeBase64(nonce)}, sodium.SecretBoxKey{Bytes: k}) out, err := cp.SecretBoxOpen(sodium.SecretBoxNonce{Bytes: encoding.DecodeBase64(nonce)}, sodium.SecretBoxKey{Bytes: k})
if err != nil { if err != nil {
return nil, err return nil, err
} }

View file

@ -2,7 +2,7 @@ package model
import ( import (
"cli-go/internal/crypto" "cli-go/internal/crypto"
"cli-go/utils" "cli-go/utils/encoding"
"log" "log"
) )
@ -17,13 +17,13 @@ func MakeEncString(plainTextBytes []byte, key []byte) *EncString {
log.Fatalf("failed to encrypt %s", err) log.Fatalf("failed to encrypt %s", err)
} }
return &EncString{ return &EncString{
CipherText: utils.EncodeBase64(cipher), CipherText: encoding.EncodeBase64(cipher),
Nonce: utils.EncodeBase64(nonce), Nonce: encoding.EncodeBase64(nonce),
} }
} }
func (e *EncString) MustDecrypt(key []byte) []byte { func (e *EncString) MustDecrypt(key []byte) []byte {
plainBytes, err := crypto.DecryptChaCha20poly1305(utils.DecodeBase64(e.CipherText), key, utils.DecodeBase64(e.Nonce)) plainBytes, err := crypto.DecryptChaCha20poly1305(encoding.DecodeBase64(e.CipherText), key, encoding.DecodeBase64(e.Nonce))
if err != nil { if err != nil {
panic(err) panic(err)
} }

View file

@ -4,7 +4,7 @@ import (
"cli-go/internal/api" "cli-go/internal/api"
enteCrypto "cli-go/internal/crypto" enteCrypto "cli-go/internal/crypto"
"cli-go/pkg/model" "cli-go/pkg/model"
"cli-go/utils" "cli-go/utils/encoding"
"context" "context"
"encoding/base64" "encoding/base64"
"fmt" "fmt"
@ -80,8 +80,8 @@ func (c *ClICtrl) getCollectionKey(ctx context.Context, collection api.Collectio
userID := ctx.Value("user_id").(int64) userID := ctx.Value("user_id").(int64)
if collection.Owner.ID == userID { if collection.Owner.ID == userID {
collKey, err := enteCrypto.SecretBoxOpen( collKey, err := enteCrypto.SecretBoxOpen(
utils.DecodeBase64(collection.EncryptedKey), encoding.DecodeBase64(collection.EncryptedKey),
utils.DecodeBase64(collection.KeyDecryptionNonce), encoding.DecodeBase64(collection.KeyDecryptionNonce),
accSecretInfo.MasterKey) accSecretInfo.MasterKey)
if err != nil { if err != nil {
log.Fatalf("failed to decrypt collection key %s", err) log.Fatalf("failed to decrypt collection key %s", err)

View file

@ -3,7 +3,7 @@ package pkg
import ( import (
"cli-go/internal/api" "cli-go/internal/api"
enteCrypto "cli-go/internal/crypto" enteCrypto "cli-go/internal/crypto"
"cli-go/utils" "cli-go/utils/encoding"
"context" "context"
"fmt" "fmt"
"log" "log"
@ -34,18 +34,18 @@ func (c *ClICtrl) signInViaPassword(ctx context.Context, email string, srpAttr *
srpParams := srp.GetParams(4096) srpParams := srp.GetParams(4096)
identify := []byte(srpAttr.SRPUserID.String()) identify := []byte(srpAttr.SRPUserID.String())
salt := utils.DecodeBase64(srpAttr.SRPSalt) salt := encoding.DecodeBase64(srpAttr.SRPSalt)
clientSecret := srp.GenKey() clientSecret := srp.GenKey()
srpClient := srp.NewClient(srpParams, salt, identify, loginKey, clientSecret) srpClient := srp.NewClient(srpParams, salt, identify, loginKey, clientSecret)
clientA := srpClient.ComputeA() clientA := srpClient.ComputeA()
session, err := c.Client.CreateSRPSession(ctx, srpAttr.SRPUserID, utils.EncodeBase64(clientA)) session, err := c.Client.CreateSRPSession(ctx, srpAttr.SRPUserID, encoding.EncodeBase64(clientA))
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
serverB := session.SRPB serverB := session.SRPB
srpClient.SetB(utils.DecodeBase64(serverB)) srpClient.SetB(encoding.DecodeBase64(serverB))
clientM := srpClient.ComputeM1() clientM := srpClient.ComputeM1()
authResp, err := c.Client.VerifySRPSession(ctx, srpAttr.SRPUserID, session.SessionID, utils.EncodeBase64(clientM)) authResp, err := c.Client.VerifySRPSession(ctx, srpAttr.SRPUserID, session.SessionID, encoding.EncodeBase64(clientM))
if err != nil { if err != nil {
log.Printf("failed to verify %v", err) log.Printf("failed to verify %v", err)
continue continue
@ -83,8 +83,8 @@ func (c *ClICtrl) decryptAccSecretInfo(
currentKeyEncKey = keyEncKey currentKeyEncKey = keyEncKey
} }
encryptedKey := utils.DecodeBase64(authResp.KeyAttributes.EncryptedKey) encryptedKey := encoding.DecodeBase64(authResp.KeyAttributes.EncryptedKey)
encryptedKeyNonce := utils.DecodeBase64(authResp.KeyAttributes.KeyDecryptionNonce) encryptedKeyNonce := encoding.DecodeBase64(authResp.KeyAttributes.KeyDecryptionNonce)
masterKey, err = enteCrypto.SecretBoxOpen(encryptedKey, encryptedKeyNonce, currentKeyEncKey) masterKey, err = enteCrypto.SecretBoxOpen(encryptedKey, encryptedKeyNonce, currentKeyEncKey)
if err != nil { if err != nil {
if keyEncKey != nil { if keyEncKey != nil {
@ -96,8 +96,8 @@ func (c *ClICtrl) decryptAccSecretInfo(
} }
} }
secretKey, err = enteCrypto.SecretBoxOpen( secretKey, err = enteCrypto.SecretBoxOpen(
utils.DecodeBase64(authResp.KeyAttributes.EncryptedSecretKey), encoding.DecodeBase64(authResp.KeyAttributes.EncryptedSecretKey),
utils.DecodeBase64(authResp.KeyAttributes.SecretKeyDecryptionNonce), encoding.DecodeBase64(authResp.KeyAttributes.SecretKeyDecryptionNonce),
masterKey, masterKey,
) )
if err != nil { if err != nil {
@ -105,8 +105,8 @@ func (c *ClICtrl) decryptAccSecretInfo(
return nil, err return nil, err
} }
tokenKey, err = enteCrypto.SealedBoxOpen( tokenKey, err = enteCrypto.SealedBoxOpen(
utils.DecodeBase64(authResp.EncryptedToken), encoding.DecodeBase64(authResp.EncryptedToken),
utils.DecodeBase64(authResp.KeyAttributes.PublicKey), encoding.DecodeBase64(authResp.KeyAttributes.PublicKey),
secretKey, secretKey,
) )
if err != nil { if err != nil {

View file

@ -1,4 +1,4 @@
package utils package encoding
import ( import (
"encoding/base64" "encoding/base64"