This commit is contained in:
0xdcarns 2022-02-11 11:08:32 -05:00
parent 5cc6507a0c
commit 20adc73e2a
3 changed files with 4 additions and 54 deletions

View file

@ -26,7 +26,7 @@ func decryptMsg(node *models.Node, msg []byte) ([]byte, error) {
return nil, err return nil, err
} }
return ncutils.DestructMessage(string(msg), nodePubTKey, serverPrivTKey) return ncutils.BoxDecrypt(msg, nodePubTKey, serverPrivTKey)
} }
func encryptMsg(node *models.Node, msg []byte) ([]byte, error) { func encryptMsg(node *models.Node, msg []byte) ([]byte, error) {
@ -46,8 +46,7 @@ func encryptMsg(node *models.Node, msg []byte) ([]byte, error) {
return nil, err return nil, err
} }
var encrypted, encErr = ncutils.BuildMessage(msg, nodePubKey, serverPrivKey) return ncutils.BoxEncrypt(msg, nodePubKey, serverPrivKey)
return []byte(encrypted), encErr
} }
func publish(node *models.Node, dest string, msg []byte) error { func publish(node *models.Node, dest string, msg []byte) error {

View file

@ -552,7 +552,7 @@ func publish(cfg *config.ClientConfig, dest string, msg []byte) error {
client := SetupMQTT(cfg, true) client := SetupMQTT(cfg, true)
defer client.Disconnect(250) defer client.Disconnect(250)
encrypted, err := ncutils.BuildMessage(msg, serverPubKey, trafficPrivKey) encrypted, err := ncutils.BoxEncrypt(msg, serverPubKey, trafficPrivKey)
if err != nil { if err != nil {
return err return err
} }
@ -583,7 +583,7 @@ func decryptMsg(cfg *config.ClientConfig, msg []byte) ([]byte, error) {
return nil, err return nil, err
} }
return ncutils.DestructMessage(string(msg), serverPubKey, diskKey) return ncutils.BoxDecrypt(msg, serverPubKey, diskKey)
} }
func pingServer(cfg *config.ClientConfig) error { func pingServer(cfg *config.ClientConfig) error {

View file

@ -2,7 +2,6 @@ package ncutils
import ( import (
"fmt" "fmt"
"strings"
"time" "time"
) )
@ -23,51 +22,3 @@ func BackOff(isExponential bool, maxTime int, f interface{}) (interface{}, error
} }
return nil, fmt.Errorf("could not find result") return nil, fmt.Errorf("could not find result")
} }
// DestructMessage - reconstruct original message through chunks
func DestructMessage(builtMsg string, senderPublicKey *[32]byte, recipientPrivateKey *[32]byte) ([]byte, error) {
var chunks = strings.Split(builtMsg, splitKey)
var totalMessage = make([]byte, len(builtMsg))
for _, chunk := range chunks {
var bytes, decErr = BoxDecrypt([]byte(chunk), senderPublicKey, recipientPrivateKey)
if decErr != nil || bytes == nil {
return nil, decErr
}
totalMessage = append(totalMessage, bytes...)
}
return totalMessage, nil
}
// BuildMessage Build a message for publishing
func BuildMessage(originalMessage []byte, recipientPubKey *[32]byte, senderPrivateKey *[32]byte) (string, error) {
chunks := getSliceChunks(originalMessage, 16128)
var sb strings.Builder
for i := 0; i < len(chunks); i++ {
var encryptedText, encryptErr = BoxEncrypt(chunks[i], recipientPubKey, senderPrivateKey)
if encryptErr != nil {
return "", encryptErr
}
sb.Write(encryptedText)
if i < len(chunks)-1 {
sb.WriteString(splitKey)
}
}
return sb.String(), nil
}
var splitKey = "<|#|>"
func getSliceChunks(slice []byte, chunkSize int) [][]byte {
var chunks [][]byte
for i := 0; i < len(slice); i += chunkSize {
lastByte := i + chunkSize
if lastByte > len(slice) {
lastByte = len(slice)
}
chunks = append(chunks, slice[i:lastByte])
}
return chunks
}