]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
binman: Tidy up tests for pre-load entry type
authorSimon Glass <sjg@chromium.org>
Mon, 24 Jul 2023 15:19:57 +0000 (09:19 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 24 Jul 2023 15:33:55 +0000 (09:33 -0600)
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>
tools/binman/etype/pre_load.py
tools/binman/ftest.py
tools/binman/test/230_pre_load.dts
tools/binman/test/231_pre_load_pkcs.dts
tools/binman/test/232_pre_load_pss.dts
tools/binman/test/233_pre_load_invalid_padding.dts
tools/binman/test/234_pre_load_invalid_sha.dts
tools/binman/test/235_pre_load_invalid_algo.dts
tools/binman/test/236_pre_load_invalid_key.dts
tools/binman/test/dev.key [moved from tools/binman/test/230_dev.key with 100% similarity]

index bd3545bffc0f931efd799f726a4b6bd3f867544a..2e4c72359ff3e334d07e077fe2fee1c502a59117 100644 (file)
@@ -81,7 +81,8 @@ class Entry_pre_load(Entry_collection):
 
     def ReadNode(self):
         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:
             self.key_path = ''
 
@@ -98,8 +99,7 @@ class Entry_pre_load(Entry_collection):
             self.Raise(sign_name + " is not supported")
 
         # Read the key
-        with open(key_name, 'rb') as pem:
-            key = RSA.import_key(pem.read())
+        key = RSA.import_key(tools.read_file(key_name))
 
         # Check if the key has the expected size
         if key.size_in_bytes() != RSAS[sign_name]:
index 3e8091e832617b304c994b14e5c282f8220be12d..376af9fa0806c84a3918c2cca95720a5e1b43dd4 100644 (file)
@@ -5647,41 +5647,61 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap
     def testPreLoad(self):
         """Test an image with a pre-load header"""
         entry_args = {
-            'pre-load-key-path': '.',
+            'pre-load-key-path': os.path.join(self._binman_dir, 'test'),
         }
-        data, _, _, _ = self._DoReadFileDtb('230_pre_load.dts',
-                                            entry_args=entry_args)
-        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_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
-        data = self._DoReadFile('230_pre_load.dts')
+        data = self._DoReadFileDtb(
+            '230_pre_load.dts', entry_args=entry_args,
+            extra_indirs=[os.path.join(self._binman_dir, 'test')])[0]
         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_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):
         """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_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
         self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
 
     def testPreLoadPss(self):
         """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_VERSION, data[4:4 + len(PRE_LOAD_VERSION)])
         self.assertEqual(PRE_LOAD_HDR_SIZE, data[8:8 + len(PRE_LOAD_HDR_SIZE)])
 
     def testPreLoadInvalidPadding(self):
         """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:
-            data = self._DoReadFile('233_pre_load_invalid_padding.dts')
+            self._DoReadFileDtb('233_pre_load_invalid_padding.dts',
+                                entry_args=entry_args)
 
     def testPreLoadInvalidSha(self):
         """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:
-            data = self._DoReadFile('234_pre_load_invalid_sha.dts')
+            self._DoReadFileDtb('234_pre_load_invalid_sha.dts',
+                                entry_args=entry_args)
 
     def testPreLoadInvalidAlgo(self):
         """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):
         """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:
-            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):
         """Check all entries of given images for unsafe unique names"""
index c0c24729f827d37d8856a3aa1f4e3ffe80d08535..e6d9ef40c6c8efae3b201c3214d21db4c9f95c79 100644 (file)
@@ -10,7 +10,7 @@
                pre-load {
                        content = <&image>;
                         algo-name = "sha256,rsa2048";
-                        key-name = "tools/binman/test/230_dev.key";
+                        key-name = "dev.key";
                         header-size = <4096>;
                         version = <0x11223344>;
                };
index 530638c56b698a357f78a35a9df4a34961f935c3..66268cdb212a1817851fd30d323260d224ed0c26 100644 (file)
@@ -11,7 +11,7 @@
                        content = <&image>;
                         algo-name = "sha256,rsa2048";
                         padding-name = "pkcs-1.5";
-                        key-name = "tools/binman/test/230_dev.key";
+                        key-name = "dev.key";
                         header-size = <4096>;
                         version = <0x11223344>;
                };
index 371e0fdb40886a4b3f1ba3b6d08b9862158f057e..3008d3f4649fb27f820efdcf9334744e4d625c9a 100644 (file)
@@ -11,7 +11,7 @@
                        content = <&image>;
                         algo-name = "sha256,rsa2048";
                         padding-name = "pss";
-                        key-name = "tools/binman/test/230_dev.key";
+                        key-name = "dev.key";
                         header-size = <4096>;
                         version = <0x11223344>;
                };
index 9cb4cb570bc84175c8688cb8819a685a5a169135..bbe2d1ba86967974472be4b080435f23abe80f24 100644 (file)
@@ -11,7 +11,7 @@
                        content = <&image>;
                         algo-name = "sha256,rsa2048";
                         padding-name = "padding";
-                        key-name = "tools/binman/test/230_dev.key";
+                        key-name = "dev.key";
                         header-size = <4096>;
                         version = <1>;
                };
index 8ded98df533b610a09452452a89fd15257e83bf1..29afd2e37e4b7d5f610cb68a4e36cfa2ae0f5b33 100644 (file)
@@ -11,7 +11,7 @@
                        content = <&image>;
                         algo-name = "sha2560,rsa2048";
                         padding-name = "pkcs-1.5";
-                        key-name = "tools/binman/test/230_dev.key";
+                        key-name = "dev.key";
                         header-size = <4096>;
                         version = <1>;
                };
index 145286caa3e2387dc47afd38fe519c916ff8dce4..d6f6dd20cd9a0ef24973c962cff23aec9db78cb8 100644 (file)
@@ -11,7 +11,7 @@
                        content = <&image>;
                         algo-name = "sha256,rsa20480";
                         padding-name = "pkcs-1.5";
-                        key-name = "tools/binman/test/230_dev.key";
+                        key-name = "dev.key";
                         header-size = <4096>;
                         version = <1>;
                };
index df858c3a28b2060b3264fbbabac1dba84c817955..f93bc9792cd110114ddc7fc275a804459a6aa7a7 100644 (file)
@@ -11,7 +11,7 @@
                        content = <&image>;
                         algo-name = "sha256,rsa4096";
                         padding-name = "pkcs-1.5";
-                        key-name = "tools/binman/test/230_dev.key";
+                        key-name = "dev.key";
                         header-size = <4096>;
                         version = <1>;
                };