diff --git a/api/user.go b/api/user.go index da54da2aaafefa528ae01cdb0ae80579897a906d..45536132fdde09c191aa4d0953fa52c62f6cf2cf 100644 --- a/api/user.go +++ b/api/user.go @@ -62,7 +62,7 @@ func createNewUser(rng csprng.Source, cmix, e2e *cyclic.Group) user.User { RSA: rsaKey, Precanned: false, CmixDhPrivateKey: cmix.NewIntFromBytes(cMixKeyBytes), - E2eDhPrivateKey: cmix.NewIntFromBytes(e2eKeyBytes), + E2eDhPrivateKey: e2e.NewIntFromBytes(e2eKeyBytes), } } @@ -89,6 +89,6 @@ func createPrecannedUser(precannedID uint, rng csprng.Source, cmix, e2e *cyclic. ID: userID.DeepCopy(), Salt: salt, Precanned: false, - E2eDhPrivateKey: cmix.NewIntFromBytes(e2eKeyBytes), + E2eDhPrivateKey: e2e.NewIntFromBytes(e2eKeyBytes), } } diff --git a/interfaces/message/id.go b/interfaces/message/id.go new file mode 100644 index 0000000000000000000000000000000000000000..f848e8bcc592075e84c6df8163697294a5fd691d --- /dev/null +++ b/interfaces/message/id.go @@ -0,0 +1,35 @@ +package message + +import ( + "encoding/binary" + "gitlab.com/elixxir/crypto/hash" + "gitlab.com/xx_network/primitives/id" + jww "github.com/spf13/jwalterweatherman" +) + +const messageIDLen = 32 + +type ID [messageIDLen]byte + +func NewID(sender, receiver *id.ID, connectionSalt []byte, + internalMessageID uint64) ID { + h, err := hash.NewCMixHash() + if err != nil { + jww.FATAL.Panicf("Failed to get hash for message ID creation") + } + + h.Write(sender.Bytes()) + h.Write(receiver.Bytes()) + + intMidBytes := make([]byte, 8) + binary.BigEndian.PutUint64(intMidBytes, internalMessageID) + + h.Write(intMidBytes) + h.Write(connectionSalt) + + midBytes := h.Sum(nil) + + mid := ID{} + copy(mid[:], midBytes) + return mid +} diff --git a/interfaces/message/receiveMessage.go b/interfaces/message/receiveMessage.go index d562e0528b738cc219ccf270932fdf9a993716f6..8e6a5a70fbc5c9514c7eaba706d3a6595471197a 100644 --- a/interfaces/message/receiveMessage.go +++ b/interfaces/message/receiveMessage.go @@ -11,4 +11,7 @@ type Receive struct { Sender *id.ID Timestamp time.Time Encryption EncryptionType + Id ID } + +