added NewBaseMessage function in message.go

This commit is contained in:
harshabose
2025-05-01 01:55:31 +05:30
parent dc28c3d354
commit 83414564ec
2 changed files with 52 additions and 6 deletions

View File

@@ -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

View File

@@ -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
} }