mirror of
https://github.com/harshabose/socket-comm.git
synced 2025-10-05 15:46:52 +08:00
added NewBaseMessage function in message.go
This commit is contained in:
@@ -23,6 +23,23 @@ type Init struct {
|
||||
Salt types.Salt `json:"salt"`
|
||||
}
|
||||
|
||||
func NewInit(pubKey types.PublicKey, sign []byte, sessionID types.EncryptionSessionID, salt types.Salt) (*Init, error) {
|
||||
msg := &Init{
|
||||
PublicKey: pubKey,
|
||||
Signature: sign,
|
||||
SessionID: sessionID,
|
||||
Salt: salt,
|
||||
}
|
||||
|
||||
bmsg, err := interceptor.NewBaseMessage(message.NoneProtocol, nil, msg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
msg.BaseMessage = bmsg
|
||||
|
||||
return msg, nil
|
||||
}
|
||||
|
||||
func (m *Init) WriteProcess(_ interceptor.Interceptor, _ interceptor.Connection) error {
|
||||
return nil
|
||||
}
|
||||
@@ -76,9 +93,14 @@ func (m *Init) Process(protocol interfaces.Protocol, s interfaces.State) error {
|
||||
p.decKey = decKey
|
||||
p.sessionID = m.SessionID
|
||||
|
||||
if err := s.WriteMessage(nil); err != nil {
|
||||
msg, err := NewResponse(p.pubKey)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
} // TODO: ADD RESPONSE MESSAGE
|
||||
if err := s.WriteMessage(msg); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
p.state = types.SessionStateInProgress
|
||||
return nil
|
||||
@@ -89,6 +111,20 @@ type Response struct {
|
||||
PublicKey types.PublicKey `json:"public_key"`
|
||||
}
|
||||
|
||||
func NewResponse(pubKey types.PublicKey) (*Response, error) {
|
||||
msg := &Response{
|
||||
PublicKey: pubKey,
|
||||
}
|
||||
|
||||
bmsg, err := interceptor.NewBaseMessage(message.NoneProtocol, nil, msg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
msg.BaseMessage = bmsg
|
||||
|
||||
return msg, nil
|
||||
}
|
||||
|
||||
func (m *Response) WriteProcess(_ interceptor.Interceptor, _ interceptor.Connection) error {
|
||||
return nil
|
||||
}
|
||||
@@ -135,9 +171,14 @@ func (m *Response) Process(protocol interfaces.Protocol, s interfaces.State) err
|
||||
p.encKey = encKey
|
||||
p.decKey = decKey
|
||||
|
||||
if err := s.WriteMessage(nil); err != nil {
|
||||
msg, err := NewDone()
|
||||
if err != nil {
|
||||
return err
|
||||
} // TODO: Send Done message
|
||||
}
|
||||
|
||||
if err := s.WriteMessage(msg); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
p.state = types.SessionStateInProgress
|
||||
return nil
|
||||
|
@@ -51,9 +51,14 @@ func (p *Curve25519Protocol) Init(s interfaces.State) error {
|
||||
return err
|
||||
}
|
||||
|
||||
_ = ed25519.Sign(p.options.SigningKey, append(p.pubKey[:], p.salt[:]...))
|
||||
sign := ed25519.Sign(p.options.SigningKey, append(p.pubKey[:], p.salt[:]...))
|
||||
|
||||
if err := s.WriteMessage(nil); err != nil { // TODO: SEND INIT MESSAGE
|
||||
msg, err := NewInit(p.pubKey, sign, p.sessionID, p.salt)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := s.WriteMessage(msg); err != nil {
|
||||
p.state = types.SessionStateError
|
||||
return err
|
||||
}
|
||||
|
Reference in New Issue
Block a user