This commit is contained in:
ycc
2021-10-18 21:05:44 +02:00
parent 877fc55071
commit 60b14db80c
8 changed files with 269 additions and 0 deletions

45
message.go Normal file
View File

@ -0,0 +1,45 @@
package meow
import (
"time"
"github.com/ProtonMail/gopenpgp/v2/helper"
"github.com/rs/zerolog/log"
)
type Message struct {
To string
From string
Data []byte
Sent time.Time
Received time.Time
Read time.Time
}
func CreateFromText(peer Peer, text string) *Message {
var msg Message
var err error
msg.To = peer.PublicKey
msg.From = peer.Me[len(peer.Me)-1].Public
msg.Data = []byte{byte('t')}
armor, err := helper.EncryptMessageArmored(msg.To, text)
if err != nil {
log.Debug().Msg("Message encryption failed")
}
msg.Data = append(msg.Data, []byte(armor)...)
msg.Sent = time.Now()
return &msg
}
func (*Message) GetType() string {
return "msg"
}
func (msg *Message) GetText(peer Peer) string {
decrypted, err := helper.DecryptMessageArmored(peer.Me[len(peer.Me)-1].Private, []byte(""), string(msg.Data))
if err != nil {
log.Debug().Msg("Message decryption failed")
}
return decrypted
}