Move sync before verification in headless mode

This commit is contained in:
FIGBERT 2023-08-09 23:50:31 -07:00
parent f6f1a906d0
commit fb10f59801
No known key found for this signature in database
GPG key ID: 67F1598D607A844B
2 changed files with 42 additions and 35 deletions

View file

@ -63,29 +63,6 @@ func Init(conf Config, updates chan fmt.Stringer) error {
}
updates <- importedKeys{imported: imported, total: total}
// verify (fetch)
key, err := getSSSS(mach, conf.RecoveryPhrase)
if err != nil {
return err
}
err = mach.FetchCrossSigningKeysFromSSSS(key)
if err != nil {
return fmt.Errorf("Error fetching cross-signing keys: %v", err)
}
updates <- fetchedVerificationKeys{}
// verify (sign)
if mach.CrossSigningKeys == nil {
return fmt.Errorf("Cross-signing keys not cached")
}
err = mach.SignOwnDevice(mach.OwnIdentity())
if err != nil {
return fmt.Errorf("Failed to self-sign: %v", err)
}
updates <- successfullyVerified{}
// display mode
gmx.Config().Preferences.DisplayMode = config.DisplayModeModern
updates <- configuredDisplayMode{}
@ -109,6 +86,30 @@ func Init(conf Config, updates chan fmt.Stringer) error {
gmx.Matrix().(*matrix.Container).InitSyncer()
updates <- processingSync{}
err = gmx.Matrix().(*matrix.Container).ProcessSyncResponse(resp, "")
updates <- syncFinished{}
// verify (fetch)
key, err := getSSSS(mach, conf.RecoveryPhrase)
if err != nil {
return err
}
err = mach.FetchCrossSigningKeysFromSSSS(key)
if err != nil {
return fmt.Errorf("Error fetching cross-signing keys: %v", err)
}
updates <- fetchedVerificationKeys{}
// verify (sign)
if mach.CrossSigningKeys == nil {
return fmt.Errorf("Cross-signing keys not cached")
}
err = mach.SignOwnDevice(mach.OwnIdentity())
if err != nil {
return fmt.Errorf("Failed to self-sign: %v", err)
}
updates <- successfullyVerified{}
return err
}

View file

@ -26,18 +26,6 @@ func (msg importedKeys) String() string {
return fmt.Sprintf("Successfully imported %d/%d sessions", msg.imported, msg.total)
}
type fetchedVerificationKeys struct{}
func (msg fetchedVerificationKeys) String() string {
return "Successfully unlocked cross-signing keys…"
}
type successfullyVerified struct{}
func (msg successfullyVerified) String() string {
return "Successfully self-signed. This device is now trusted by other devices…"
}
type configuredDisplayMode struct{}
func (msg configuredDisplayMode) String() string {
@ -61,3 +49,21 @@ type processingSync struct{}
func (msg processingSync) String() string {
return "Processing sync response…"
}
type syncFinished struct{}
func (msg syncFinished) String() string {
return "Sync completed…"
}
type fetchedVerificationKeys struct{}
func (msg fetchedVerificationKeys) String() string {
return "Successfully unlocked cross-signing keys…"
}
type successfullyVerified struct{}
func (msg successfullyVerified) String() string {
return "Successfully self-signed. This device is now trusted by other devices…"
}