On Thu, 29 Jun 2023 at 15:59, <[email protected]> wrote: > > From: Lukas Funke <[email protected]> > > Add test for u_boot_spl_pubkey_dtb. The test adds a public key to the > dtb and checks if the required nodes will be added to the images dtb. > > Signed-off-by: Lukas Funke <[email protected]> > --- > > tools/binman/ftest.py | 32 ++++++++++++++++++++++++ > tools/binman/test/281_spl_pubkey_dtb.dts | 16 ++++++++++++ > 2 files changed, 48 insertions(+) > create mode 100644 tools/binman/test/281_spl_pubkey_dtb.dts
Reviewed-by: Simon Glass <[email protected]> nit below > > diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py > index 43b4f850a6..3bd09d3fea 100644 > --- a/tools/binman/ftest.py > +++ b/tools/binman/ftest.py > @@ -638,6 +638,16 @@ class TestFunctional(unittest.TestCase): > TestFunctional._MakeInputFile('vpl/u-boot-vpl', > tools.read_file(cls.ElfTestFile(src_fname))) > > + @classmethod > + def _SetupPmuFwlElf(cls, src_fname='bss_data'): > + """Set up an ELF file with a '_dt_ucode_base_size' symbol > + > + Args: > + Filename of ELF file to use as VPL > + """ > + TestFunctional._MakeInputFile('pmu-firmware.elf', > + tools.read_file(cls.ElfTestFile(src_fname))) > + > @classmethod > def _SetupDescriptor(cls): > with open(cls.TestFile('descriptor.bin'), 'rb') as fd: > @@ -6677,5 +6687,27 @@ fdt fdtmap Extract the > devicetree blob from the fdtmap > self.assertIn("Node '/fit': Missing tool: 'mkimage'", > str(e.exception)) > > > + def testSplPubkeyDtb(self): > + """Test u_boot_spl_pubkey_dtb etype""" > + data = tools.read_file(self.TestFile("key.pem")) > + self._MakeInputFile("key.crt", data) > + self._DoReadFileRealDtb('281_spl_pubkey_dtb.dts') > + image = control.images['image'] > + entries = image.GetEntries() > + dtb_entry = entries['u_boot_spl_pubkey_dtb'] > + dtb_data = dtb_entry.GetData() > + dtb = fdt.Fdt.FromData(dtb_data) > + dtb.Scan() > + > + signature_node = dtb.GetNode('/signature') > + self.assertIsNotNone(signature_node) > + key_node = signature_node.FindNode("key-key") > + self.assertIsNotNone(key_node) > + self.assertEqual(fdt_util.GetString(key_node, "required"), > + "conf") > + self.assertEqual(fdt_util.GetString(key_node, "algo"), > + "sha384,rsa4096") > + self.assertEqual(fdt_util.GetString(key_node, "key-name-hint"), > + "key") > if __name__ == "__main__": > unittest.main() > diff --git a/tools/binman/test/281_spl_pubkey_dtb.dts > b/tools/binman/test/281_spl_pubkey_dtb.dts > new file mode 100644 > index 0000000000..5a2952ed7d > --- /dev/null > +++ b/tools/binman/test/281_spl_pubkey_dtb.dts > @@ -0,0 +1,16 @@ > +// SPDX-License-Identifier: GPL-2.0+ > + > +/dts-v1/; > + > +/ { > + #address-cells = <1>; > + #size-cells = <1>; > + > + binman { > + u_boot_spl_pubkey_dtb { please use - instead of _ > + algo = "sha384,rsa4096"; > + required = "conf"; > + key-name = "key"; > + }; > + }; > +}; > -- > 2.30.2 >

