mirror of
https://github.com/harshabose/socket-comm.git
synced 2025-10-05 23:56:54 +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"`
|
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 {
|
func (m *Init) WriteProcess(_ interceptor.Interceptor, _ interceptor.Connection) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -76,9 +93,14 @@ func (m *Init) Process(protocol interfaces.Protocol, s interfaces.State) error {
|
|||||||
p.decKey = decKey
|
p.decKey = decKey
|
||||||
p.sessionID = m.SessionID
|
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
|
p.state = types.SessionStateInProgress
|
||||||
return nil
|
return nil
|
||||||
@@ -89,6 +111,20 @@ type Response struct {
|
|||||||
PublicKey types.PublicKey `json:"public_key"`
|
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 {
|
func (m *Response) WriteProcess(_ interceptor.Interceptor, _ interceptor.Connection) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -135,9 +171,14 @@ func (m *Response) Process(protocol interfaces.Protocol, s interfaces.State) err
|
|||||||
p.encKey = encKey
|
p.encKey = encKey
|
||||||
p.decKey = decKey
|
p.decKey = decKey
|
||||||
|
|
||||||
if err := s.WriteMessage(nil); err != nil {
|
msg, err := NewDone()
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
} // TODO: Send Done message
|
}
|
||||||
|
|
||||||
|
if err := s.WriteMessage(msg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
p.state = types.SessionStateInProgress
|
p.state = types.SessionStateInProgress
|
||||||
return nil
|
return nil
|
||||||
|
@@ -51,9 +51,14 @@ func (p *Curve25519Protocol) Init(s interfaces.State) error {
|
|||||||
return err
|
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
|
p.state = types.SessionStateError
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user