Adding inner symetric encryption
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
ycc
2026-03-04 21:40:26 +01:00
parent 5748ead926
commit c0dcfe997c
3 changed files with 45 additions and 5 deletions

View File

@@ -1,9 +1,11 @@
package client
import (
"crypto/rand"
"encoding/base64"
"encoding/json"
"errors"
"math/rand"
mrand "math/rand"
"os"
"path/filepath"
"strings"
@@ -20,7 +22,7 @@ const maxHiddenCount = 30
// Package-level random number generator with mutex for thread-safe access
var (
rngMu sync.Mutex
rng = rand.New(rand.NewSource(time.Now().UnixNano()))
rng = mrand.New(mrand.NewSource(time.Now().UnixNano()))
)
type Identity struct {
@@ -96,6 +98,11 @@ func (id *Identity) InvitePeer(MyName string, ContactName string, MessageServerU
}
peer.Name = ContactName
peer.InvitationId = uuid.New().String() // todo as param to identify then update url
symKeyBytes := make([]byte, 32)
if _, err = rand.Read(symKeyBytes); err != nil {
return nil, err
}
peer.MySymKey = base64.StdEncoding.EncodeToString(symKeyBytes)
/* if id.MessageServers.Servers == nil {
return nil, errors.New("no message servers defined in your identity")
}
@@ -161,6 +168,7 @@ func (id *Identity) AnswerInvitation(MyName string, ContactName string, MessageS
peer.ContactEncryption = ReceivedContact.EncryptionPublicKey
peer.ContactLookupKey = ReceivedContact.LookupPublicKey
peer.ContactPublicKey = ReceivedContact.ContactPublicKey
peer.MySymKey = ReceivedContact.SymetricKey
peer.InvitationId = ReceivedContact.InvitationId
peer.InvitationMessage = ReceivedContact.InvitationMessage
for srv := range ReceivedContact.PullServers {