review3 renames
This commit is contained in:
@ -1,7 +1,8 @@
|
||||
package client
|
||||
package server
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
|
||||
"forge.redroom.link/yves/meowlib"
|
||||
@ -11,27 +12,24 @@ import (
|
||||
const key = "3pw0c8#6ZG8{75b5;3?fe80$2"
|
||||
|
||||
type Identity struct {
|
||||
ServerName string `json:"servername,omitempty"`
|
||||
ServerDesc string `json:"servername,omitempty"`
|
||||
PublicKey string `json:"public_key,omitempty"`
|
||||
PrivateKey string `json:"private_key,omitempty"`
|
||||
Status string `json:"status,omitempty"`
|
||||
ServerName string `json:"servername,omitempty"`
|
||||
ServerDesc string `json:"serverdesc,omitempty"`
|
||||
ServerKp meowlib.KeyPair `json:"server_kp,omitempty"`
|
||||
Status string `json:"status,omitempty"`
|
||||
// KnownServers ServerList `json:"known_servers,omitempty"`
|
||||
}
|
||||
|
||||
func CreateIdentity(servername string, serverdesc string) *Identity {
|
||||
func CreateIdentity(ServerName string, ServerDesc string) *Identity {
|
||||
var id Identity
|
||||
id.ServerName = servername
|
||||
id.ServerDesc = serverdesc
|
||||
kp := meowlib.NewKeyPair()
|
||||
id.PublicKey = kp.Public
|
||||
id.PrivateKey = kp.Private
|
||||
id.ServerName = ServerName
|
||||
id.ServerDesc = ServerDesc
|
||||
id.ServerKp = meowlib.NewKeyPair()
|
||||
return &id
|
||||
}
|
||||
|
||||
func LoadIdentity(file string) (*Identity, error) {
|
||||
func LoadIdentity(File string) (*Identity, error) {
|
||||
var id Identity
|
||||
indata, err := ioutil.ReadFile(file)
|
||||
indata, err := ioutil.ReadFile(File)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -52,3 +50,23 @@ func (id *Identity) Save(file string) error {
|
||||
err = ioutil.WriteFile(file, []byte(armor), 0644)
|
||||
return err
|
||||
}
|
||||
|
||||
// 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.EncryptAndSign(ClientPublicKey, id.ServerKp.Private, Message)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return nil, nil, err
|
||||
}
|
||||
return EncryptedMsg, Signature, err
|
||||
}
|
||||
|
||||
// AsymDecryptMessage reads a message from a specific client contact
|
||||
func (id *Identity) AsymDecryptMessage(ClientPublicKey string, Message []byte, Signature []byte) (DecryptedMsg []byte, err error) {
|
||||
DecryptedMsg, err = meowlib.DecryptAndCheck(id.ServerKp.Private, ClientPublicKey, Message, Signature)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
return DecryptedMsg, err
|
||||
}
|
||||
|
Reference in New Issue
Block a user