init
This commit is contained in:
45
message.go
Normal file
45
message.go
Normal 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
|
||||
}
|
Reference in New Issue
Block a user