mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 12:54:37 +00:00
binman: ftest: Add test for u_boot_spl_pubkey_dtb
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 <lukas.funke@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
6cb6425408
commit
8c1fbd1f60
2 changed files with 49 additions and 0 deletions
|
@ -653,6 +653,16 @@ class TestFunctional(unittest.TestCase):
|
||||||
TestFunctional._MakeInputFile('vpl/u-boot-vpl',
|
TestFunctional._MakeInputFile('vpl/u-boot-vpl',
|
||||||
tools.read_file(cls.ElfTestFile(src_fname)))
|
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
|
@classmethod
|
||||||
def _SetupDescriptor(cls):
|
def _SetupDescriptor(cls):
|
||||||
with open(cls.TestFile('descriptor.bin'), 'rb') as fd:
|
with open(cls.TestFile('descriptor.bin'), 'rb') as fd:
|
||||||
|
@ -7054,5 +7064,28 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
|
||||||
self.assertNotIn('key-source', node.props)
|
self.assertNotIn('key-source', node.props)
|
||||||
|
|
||||||
|
|
||||||
|
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('306_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__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
16
tools/binman/test/306_spl_pubkey_dtb.dts
Normal file
16
tools/binman/test/306_spl_pubkey_dtb.dts
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
u-boot-spl-pubkey-dtb {
|
||||||
|
algo = "sha384,rsa4096";
|
||||||
|
required = "conf";
|
||||||
|
key-name-hint = "key";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
Loading…
Add table
Reference in a new issue