[server] added 'synchronisationKey([]byte)' to apply a new synchronisation key with length check
This commit is contained in:
parent
7d38485edb
commit
61f99cf940
|
@ -1,6 +1,7 @@
|
||||||
package server
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"git.xdrm.io/schastsp/pkg/scha"
|
"git.xdrm.io/schastsp/pkg/scha"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
@ -135,4 +136,30 @@ func (s *T) HandleRequest(req io.Reader, res io.Writer) error {
|
||||||
if written != len(y1) { return errors.New("Cannot write y2") }
|
if written != len(y1) { return errors.New("Cannot write y2") }
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (4) Apply a synchronisation key
|
||||||
|
*
|
||||||
|
* @syncKey<[]byte> Synchronisation key from client
|
||||||
|
*
|
||||||
|
* @return err<error>
|
||||||
|
*
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
func (s *T) SynchronisationKey(syncKey []byte) error {
|
||||||
|
|
||||||
|
/* (1) Check size */
|
||||||
|
if uint16(len(syncKey)) != scha.HSIZE {
|
||||||
|
return fmt.Errorf("Invalid synchronisation key size (%d), expected %d bytes", len(syncKey), scha.HSIZE)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (2) Copy synchronisation key */
|
||||||
|
copy(s.hash, syncKey)
|
||||||
|
|
||||||
|
/* (3) Store new config */
|
||||||
|
s.store()
|
||||||
|
|
||||||
|
return nil
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue