Move encoding utils in separate pkg
This commit is contained in:
parent
42a6217d44
commit
d59991bd7f
5 changed files with 22 additions and 22 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package utils
|
package encoding
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
Loading…
Add table
Reference in a new issue