def test_seal_cfpa(): cfpa = CFPA('lpc55s6x') data = cfpa.export(add_seal=False) assert len(data) == 512 assert data[0x1e0:] == bytes(32) data = cfpa.export(add_seal=True) assert len(data) == 512 assert data[0x1e0:] == CFPA.MARK * 8
def test_seal_cmpa_n4analog(): cfpa = CFPA('lpc55s3x') data = cfpa.export(add_seal=False) assert len(data) == 512 assert data[0x1e0:] == bytes(32) data = cfpa.export(add_seal=True) assert len(data) == 512 assert data[0x1ec:0x1f0] == CFPA.MARK
def test_seal_cmpa_lpc55s3x(): """Test PFR tool - Test CMPA seal on LPC55S3x.""" cfpa = CFPA("lpc55s3x") data = cfpa.export(add_seal=False) assert len(data) == 512 assert data[0x1E0:] == bytes(32) data = cfpa.export(add_seal=True) assert len(data) == 512 assert data[0x1EC:0x1F0] == CFPA.MARK
def test_seal_cfpa(): """Test PFR tool - Test CFPA seal.""" cfpa = CFPA("lpc55s6x") data = cfpa.export(add_seal=False) assert len(data) == 512 assert data[0x1E0:] == bytes(32) data = cfpa.export(add_seal=True) assert len(data) == 512 assert data[0x1E0:] == CFPA.MARK * 8
def test_generate_cfpa(data_dir): """Test PFR tool - Generating CFPA binary.""" binary = load_file(data_dir, "CFPA_test.bin", mode="rb") pfr_cfg_json = PfrConfiguration(os.path.join(data_dir, "cfpa_test.json")) cfpa_json = CFPA("lpc55s6x", user_config=pfr_cfg_json) assert cfpa_json.export(add_seal=True) == binary pfr_cfg_yml = PfrConfiguration(os.path.join(data_dir, "cfpa_test.yml")) cfpa_yml = CFPA("lpc55s6x", user_config=pfr_cfg_yml) assert cfpa_yml.export(add_seal=True) == binary
def test_generate_cfpa(data_dir): config = json.loads(load_file(data_dir, 'cfpa_test.json')) binary = load_file(data_dir, 'CFPA_test.bin', mode='rb') cfpa = CFPA('lpc55s6x', user_config=config['settings']) data = cfpa.export(add_seal=True, compute_inverses=False) assert binary == data
def test_lpc55s3x_load_yml_without_change(data_dir): """Test silicon LPC55S3x mandatory computing of antipole values.""" cfpa = CFPA(user_config=PfrConfiguration(f"{data_dir}/cfpa_no_change.yml")) data = cfpa.export() assert len(data) == 512 with open(data_dir + "/lpc55s3x_CFPA_basic.bin", "rb") as binary: assert data == binary.read()
def generate_pfr() -> None: """Generate CFPA data. Alternatively, to generate data you may use the `pfr` commandline utility After generating the data, you can upload them to the device using McuBoot.write_memory !!! Caution !!! Incorrectly configured data may lock the device from further use """ with open(os.path.join(DATA_DIR, "cfpa_test.json")) as config_file: config_data = json.load(config_file) cfpa = CFPA("lpc55xx", user_config=config_data) cfpa_data = cfpa.export() with open(os.path.join(THIS_DIR, "cfpa.bin"), "wb") as binary_file: binary_file.write(cfpa_data)
def test_missing_rotkh(): """Simple test to check right functionality of missing ROTKH.""" cfpa = CFPA("lpc55s6x") with pytest.raises(SPSDKPfrRotkhIsNotPresent): cfpa.export(keys=["Invalid"])