Add command for cross-signing current device
This commit is contained in:
		@@ -424,6 +424,8 @@ Subcommands:
 | 
			
		||||
    Generate and upload new cross-signing keys.
 | 
			
		||||
    This will prompt you to enter your account password.
 | 
			
		||||
    If you already have existing keys, --force is required.
 | 
			
		||||
* self-sign
 | 
			
		||||
    Sign the current device with cached cross-signing keys.
 | 
			
		||||
* fetch [--save-to-disk]
 | 
			
		||||
    Fetch your cross-signing keys from SSSS and decrypt them.
 | 
			
		||||
    If --save-to-disk is specified, the keys are saved to disk.
 | 
			
		||||
@@ -450,6 +452,8 @@ func cmdCrossSigning(cmd *Command) {
 | 
			
		||||
		cmdCrossSigningFetch(cmd, mach, saveToDisk)
 | 
			
		||||
	case "upload":
 | 
			
		||||
		cmdCrossSigningUpload(cmd, mach)
 | 
			
		||||
	case "self-sign":
 | 
			
		||||
		cmdCrossSigningSelfSign(cmd, mach)
 | 
			
		||||
	default:
 | 
			
		||||
		cmd.Reply(crossSigningHelp, cmd.OrigCommand)
 | 
			
		||||
	}
 | 
			
		||||
@@ -641,3 +645,18 @@ func cmdCrossSigningUpload(cmd *Command, mach *crypto.OlmMachine) {
 | 
			
		||||
		cmd.Reply("Successfully uploaded cross-signing keys to SSSS")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func cmdCrossSigningSelfSign(cmd *Command, mach *crypto.OlmMachine) {
 | 
			
		||||
	if mach.CrossSigningKeys == nil {
 | 
			
		||||
		cmd.Reply("Cross-signing keys not cached")
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := mach.SignOwnDevice(mach.OwnIdentity())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		cmd.Reply("Failed to self-sign: %v", err)
 | 
			
		||||
	} else {
 | 
			
		||||
		cmd.Reply("Successfully self-signed. This device is now trusted by other devices")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user