func genSwapKeyCmd()

in cli/mfg_cmds.go [272:314]


func genSwapKeyCmd(cmd *cobra.Command, args []string, isKek bool) {
	if len(args) < 3 {
		ImgmodUsage(cmd, nil)
	}

	mfgimgFilename := args[0]
	okeyFilename := args[1]
	nkeyFilename := args[2]

	outFilename, err := CalcOutFilename(mfgimgFilename)
	if err != nil {
		ImgmodUsage(cmd, err)
	}

	bin, err := readMfgBin(mfgimgFilename)
	if err != nil {
		ImgmodUsage(cmd, errors.Wrapf(err,
			"failed to read mfgimg file: %s"))
	}

	okey, err := ioutil.ReadFile(okeyFilename)
	if err != nil {
		ImgmodUsage(cmd, errors.Wrapf(err, "failed to read old key der: %s"))
	}

	nkey, err := ioutil.ReadFile(nkeyFilename)
	if err != nil {
		ImgmodUsage(cmd, errors.Wrapf(err, "failed to read new key der: %s"))
	}

	if isKek {
		err = imfg.ReplaceKek(bin, okey, nkey)
	} else {
		err = imfg.ReplaceIsk(bin, okey, nkey)
	}
	if err != nil {
		ImgmodUsage(nil, err)
	}

	if err := WriteFile(bin, outFilename); err != nil {
		ImgmodUsage(nil, err)
	}
}