binman: Tidy up tests for pre-load entry type
Drop the use of a numbered key file since numbering is just for the test devicetree files. Also adjust the tests to avoid putting a hard-coded path to binman in the file, using the entry arg instead. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -81,7 +81,8 @@ class Entry_pre_load(Entry_collection):
|
|||||||
|
|
||||||
def ReadNode(self):
|
def ReadNode(self):
|
||||||
super().ReadNode()
|
super().ReadNode()
|
||||||
self.key_path, = self.GetEntryArgsOrProps([EntryArg('pre-load-key-path', str)])
|
self.key_path, = self.GetEntryArgsOrProps(
|
||||||
|
[EntryArg('pre-load-key-path', str)])
|
||||||
if self.key_path is None:
|
if self.key_path is None:
|
||||||
self.key_path = ''
|
self.key_path = ''
|
||||||
|
|
||||||
@@ -98,8 +99,7 @@ class Entry_pre_load(Entry_collection):
|
|||||||
self.Raise(sign_name + " is not supported")
|
self.Raise(sign_name + " is not supported")
|
||||||
|
|
||||||
# Read the key
|
# Read the key
|
||||||
with open(key_name, 'rb') as pem:
|
key = RSA.import_key(tools.read_file(key_name))
|
||||||
key = RSA.import_key(pem.read())
|
|
||||||
|
|
||||||
# Check if the key has the expected size
|
# Check if the key has the expected size
|
||||||
if key.size_in_bytes() != RSAS[sign_name]:
|
if key.size_in_bytes() != RSAS[sign_name]:
|
||||||
|
@@ -5647,41 +5647,61 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
|
|||||||
def testPreLoad(self):
|
def testPreLoad(self):
|
||||||
"""Test an image with a pre-load header"""
|
"""Test an image with a pre-load header"""
|
||||||
entry_args = {
|
entry_args = {
|
||||||
'pre-load-key-path': '.',
|
'pre-load-key-path': os.path.join(self._binman_dir, 'test'),
|
||||||
}
|
}
|
||||||
data, _, _, _ = self._DoReadFileDtb('230_pre_load.dts',
|
data = self._DoReadFileDtb(
|
||||||
entry_args=entry_args)
|
'230_pre_load.dts', entry_args=entry_args,
|
||||||
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
|
extra_indirs=[os.path.join(self._binman_dir, 'test')])[0]
|
||||||
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
|
|
||||||
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
|
|
||||||
data = self._DoReadFile('230_pre_load.dts')
|
|
||||||
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
|
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
|
||||||
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
|
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
|
||||||
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
|
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
|
||||||
|
|
||||||
|
def testPreLoadNoKey(self):
|
||||||
|
"""Test an image with a pre-load heade0r with missing key"""
|
||||||
|
with self.assertRaises(FileNotFoundError) as exc:
|
||||||
|
self._DoReadFile('230_pre_load.dts')
|
||||||
|
self.assertIn("No such file or directory: 'dev.key'",
|
||||||
|
str(exc.exception))
|
||||||
|
|
||||||
def testPreLoadPkcs(self):
|
def testPreLoadPkcs(self):
|
||||||
"""Test an image with a pre-load header with padding pkcs"""
|
"""Test an image with a pre-load header with padding pkcs"""
|
||||||
data = self._DoReadFile('231_pre_load_pkcs.dts')
|
entry_args = {
|
||||||
|
'pre-load-key-path': os.path.join(self._binman_dir, 'test'),
|
||||||
|
}
|
||||||
|
data = self._DoReadFileDtb('231_pre_load_pkcs.dts',
|
||||||
|
entry_args=entry_args)[0]
|
||||||
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
|
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
|
||||||
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
|
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
|
||||||
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
|
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
|
||||||
|
|
||||||
def testPreLoadPss(self):
|
def testPreLoadPss(self):
|
||||||
"""Test an image with a pre-load header with padding pss"""
|
"""Test an image with a pre-load header with padding pss"""
|
||||||
data = self._DoReadFile('232_pre_load_pss.dts')
|
entry_args = {
|
||||||
|
'pre-load-key-path': os.path.join(self._binman_dir, 'test'),
|
||||||
|
}
|
||||||
|
data = self._DoReadFileDtb('232_pre_load_pss.dts',
|
||||||
|
entry_args=entry_args)[0]
|
||||||
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
|
self.assertEqual(PRE_LOAD_MAGIC, data[:len(PRE_LOAD_MAGIC)])
|
||||||
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
|
self.assertEqual(PRE_LOAD_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
|
||||||
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
|
self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
|
||||||
|
|
||||||
def testPreLoadInvalidPadding(self):
|
def testPreLoadInvalidPadding(self):
|
||||||
"""Test an image with a pre-load header with an invalid padding"""
|
"""Test an image with a pre-load header with an invalid padding"""
|
||||||
|
entry_args = {
|
||||||
|
'pre-load-key-path': os.path.join(self._binman_dir, 'test'),
|
||||||
|
}
|
||||||
with self.assertRaises(ValueError) as e:
|
with self.assertRaises(ValueError) as e:
|
||||||
data = self._DoReadFile('233_pre_load_invalid_padding.dts')
|
self._DoReadFileDtb('233_pre_load_invalid_padding.dts',
|
||||||
|
entry_args=entry_args)
|
||||||
|
|
||||||
def testPreLoadInvalidSha(self):
|
def testPreLoadInvalidSha(self):
|
||||||
"""Test an image with a pre-load header with an invalid hash"""
|
"""Test an image with a pre-load header with an invalid hash"""
|
||||||
|
entry_args = {
|
||||||
|
'pre-load-key-path': os.path.join(self._binman_dir, 'test'),
|
||||||
|
}
|
||||||
with self.assertRaises(ValueError) as e:
|
with self.assertRaises(ValueError) as e:
|
||||||
data = self._DoReadFile('234_pre_load_invalid_sha.dts')
|
self._DoReadFileDtb('234_pre_load_invalid_sha.dts',
|
||||||
|
entry_args=entry_args)
|
||||||
|
|
||||||
def testPreLoadInvalidAlgo(self):
|
def testPreLoadInvalidAlgo(self):
|
||||||
"""Test an image with a pre-load header with an invalid algo"""
|
"""Test an image with a pre-load header with an invalid algo"""
|
||||||
@@ -5690,8 +5710,12 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
|
|||||||
|
|
||||||
def testPreLoadInvalidKey(self):
|
def testPreLoadInvalidKey(self):
|
||||||
"""Test an image with a pre-load header with an invalid key"""
|
"""Test an image with a pre-load header with an invalid key"""
|
||||||
|
entry_args = {
|
||||||
|
'pre-load-key-path': os.path.join(self._binman_dir, 'test'),
|
||||||
|
}
|
||||||
with self.assertRaises(ValueError) as e:
|
with self.assertRaises(ValueError) as e:
|
||||||
data = self._DoReadFile('236_pre_load_invalid_key.dts')
|
data = self._DoReadFileDtb('236_pre_load_invalid_key.dts',
|
||||||
|
entry_args=entry_args)
|
||||||
|
|
||||||
def _CheckSafeUniqueNames(self, *images):
|
def _CheckSafeUniqueNames(self, *images):
|
||||||
"""Check all entries of given images for unsafe unique names"""
|
"""Check all entries of given images for unsafe unique names"""
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
pre-load {
|
pre-load {
|
||||||
content = <&image>;
|
content = <&image>;
|
||||||
algo-name = "sha256,rsa2048";
|
algo-name = "sha256,rsa2048";
|
||||||
key-name = "tools/binman/test/230_dev.key";
|
key-name = "dev.key";
|
||||||
header-size = <4096>;
|
header-size = <4096>;
|
||||||
version = <0x11223344>;
|
version = <0x11223344>;
|
||||||
};
|
};
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
content = <&image>;
|
content = <&image>;
|
||||||
algo-name = "sha256,rsa2048";
|
algo-name = "sha256,rsa2048";
|
||||||
padding-name = "pkcs-1.5";
|
padding-name = "pkcs-1.5";
|
||||||
key-name = "tools/binman/test/230_dev.key";
|
key-name = "dev.key";
|
||||||
header-size = <4096>;
|
header-size = <4096>;
|
||||||
version = <0x11223344>;
|
version = <0x11223344>;
|
||||||
};
|
};
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
content = <&image>;
|
content = <&image>;
|
||||||
algo-name = "sha256,rsa2048";
|
algo-name = "sha256,rsa2048";
|
||||||
padding-name = "pss";
|
padding-name = "pss";
|
||||||
key-name = "tools/binman/test/230_dev.key";
|
key-name = "dev.key";
|
||||||
header-size = <4096>;
|
header-size = <4096>;
|
||||||
version = <0x11223344>;
|
version = <0x11223344>;
|
||||||
};
|
};
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
content = <&image>;
|
content = <&image>;
|
||||||
algo-name = "sha256,rsa2048";
|
algo-name = "sha256,rsa2048";
|
||||||
padding-name = "padding";
|
padding-name = "padding";
|
||||||
key-name = "tools/binman/test/230_dev.key";
|
key-name = "dev.key";
|
||||||
header-size = <4096>;
|
header-size = <4096>;
|
||||||
version = <1>;
|
version = <1>;
|
||||||
};
|
};
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
content = <&image>;
|
content = <&image>;
|
||||||
algo-name = "sha2560,rsa2048";
|
algo-name = "sha2560,rsa2048";
|
||||||
padding-name = "pkcs-1.5";
|
padding-name = "pkcs-1.5";
|
||||||
key-name = "tools/binman/test/230_dev.key";
|
key-name = "dev.key";
|
||||||
header-size = <4096>;
|
header-size = <4096>;
|
||||||
version = <1>;
|
version = <1>;
|
||||||
};
|
};
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
content = <&image>;
|
content = <&image>;
|
||||||
algo-name = "sha256,rsa20480";
|
algo-name = "sha256,rsa20480";
|
||||||
padding-name = "pkcs-1.5";
|
padding-name = "pkcs-1.5";
|
||||||
key-name = "tools/binman/test/230_dev.key";
|
key-name = "dev.key";
|
||||||
header-size = <4096>;
|
header-size = <4096>;
|
||||||
version = <1>;
|
version = <1>;
|
||||||
};
|
};
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
content = <&image>;
|
content = <&image>;
|
||||||
algo-name = "sha256,rsa4096";
|
algo-name = "sha256,rsa4096";
|
||||||
padding-name = "pkcs-1.5";
|
padding-name = "pkcs-1.5";
|
||||||
key-name = "tools/binman/test/230_dev.key";
|
key-name = "dev.key";
|
||||||
header-size = <4096>;
|
header-size = <4096>;
|
||||||
version = <1>;
|
version = <1>;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user