Server outbound processing chain + server messages uuids

This commit is contained in:
ycc
2022-09-19 20:16:57 +02:00
parent 37f6d7b93a
commit adb058492f
6 changed files with 181 additions and 146 deletions

View File

@ -88,6 +88,13 @@ func (id *Identity) DecodeToServerMessage(toServerMessage []byte) (*meowlib.ToSe
// Outbound processing chain
//
func (id *Identity) BuildSimpleAckResponseMessage(uuidToAck string) (fromServerMessage *meowlib.FromServerMessage, err error) {
var msg meowlib.FromServerMessage
msg.ServerPublicKey = id.ServerKp.Public
msg.UuidAck = uuidToAck
return &msg, nil
}
// AsymEncryptMessage prepares a message to send to a specific client contact
func (id *Identity) AsymEncryptMessage(ClientPublicKey string, Message []byte) (EncryptedMsg []byte, Signature []byte, err error) {
EncryptedMsg, Signature, err = meowlib.AsymEncryptAndSign(ClientPublicKey, id.ServerKp.Private, Message)
@ -97,3 +104,15 @@ func (id *Identity) AsymEncryptMessage(ClientPublicKey string, Message []byte) (
}
return EncryptedMsg, Signature, err
}
func (id *Identity) PackResponseMessage(encryptedMessage []byte, signature []byte) (fromServerMessage []byte, err error) {
var pmsg meowlib.PackedServerMessage
pmsg.Payload = encryptedMessage
pmsg.Signature = signature
pmsg.From = id.ServerKp.Public
out, err := proto.Marshal(&pmsg)
if err != nil {
return nil, err
}
return out, nil
}