binman: Ignore hash*, signature* nodes in sections

Switch to str.startswith for matching like the FIT etype does since the
current version doesn't ignore 'hash-1', 'hash-2', etc.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Alper Nebi Yasak
2020-08-31 12:58:18 +03:00
committed by Simon Glass
parent 2512b3b88b
commit 8001d0b162
3 changed files with 47 additions and 1 deletions

View File

@@ -83,7 +83,7 @@ class Entry_section(Entry):
def _ReadEntries(self):
for node in self._node.subnodes:
if node.name == 'hash':
if node.name.startswith('hash') or node.name.startswith('signature'):
continue
entry = Entry.Create(self, node)
entry.ReadNode()

View File

@@ -3477,5 +3477,11 @@ class TestFunctional(unittest.TestCase):
fnode = dtb.GetNode('/images/kernel')
self.assertNotIn('data', fnode.props)
def testSectionIgnoreHashSignature(self):
"""Test that sections ignore hash, signature nodes for its data"""
data = self._DoReadFile('165_section_ignore_hash_signature.dts')
expected = (U_BOOT_DATA + U_BOOT_DATA)
self.assertEqual(expected, data)
if __name__ == "__main__":
unittest.main()

View File

@@ -0,0 +1,40 @@
// SPDX-License-Identifier: GPL-2.0+
/dts-v1/;
/ {
#address-cells = <1>;
#size-cells = <1>;
binman {
section@0 {
u-boot {
};
hash {
algo = "sha256";
};
signature {
algo = "sha256,rsa2048";
key-name-hint = "dev";
};
};
section@1 {
u-boot {
};
hash-1 {
algo = "sha1";
};
hash-2 {
algo = "sha256";
};
signature-1 {
algo = "sha1,rsa2048";
key-name-hint = "dev";
};
signature-2 {
algo = "sha256,rsa2048";
key-name-hint = "dev";
};
};
};
};