generate_test_keys: move code for arrays and LUT generation to a separate function

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
diff --git a/tests/scripts/generate_test_keys.py b/tests/scripts/generate_test_keys.py
index 177850e..62b7560 100755
--- a/tests/scripts/generate_test_keys.py
+++ b/tests/scripts/generate_test_keys.py
@@ -6,7 +6,7 @@
 """Module generating EC and RSA keys to be used in test_suite_pk instead of
 generating the required key at run time. This helps speeding up testing."""
 
-from typing import Iterator, List
+from typing import Iterator, List, Tuple
 import re
 import argparse
 import scripts_path # pylint: disable=unused-import
@@ -90,7 +90,7 @@
     yield "      {0}, sizeof({0}) }},".format(pub_array_name)
 
 
-def write_output_file(output_file_name: str, arrays: List[str], look_up_table: List[str]):
+def write_output_file(output_file_name: str, arrays: str, look_up_table: str):
     with open(output_file_name, 'wt') as output:
         output.write("""\
 /*********************************************************************************
@@ -98,7 +98,7 @@
  * Please do not edit it manually.
  *********************************************************************************/
 """)
-        output.write(''.join(arrays))
+        output.write(arrays)
         output.write("""
 struct predefined_key_element {{
     int group_id;  // EC group ID; 0 for RSA keys
@@ -114,18 +114,15 @@
 }};
 
 /* End of generated file */
-""".format("\n".join(look_up_table)))
+""".format(look_up_table))
 
-
-def main() -> None:
-    default_output_path = guess_project_root() + "/tests/src/test_keys.h"
-
-    argparser = argparse.ArgumentParser()
-    argparser.add_argument("--output", help="Output file", default=default_output_path)
-    args = argparser.parse_args()
-
-    output_file = args.output
-
+def collect_keys() -> Tuple[str, str]:
+    """"
+    This function reads key data from ASYMMETRIC_KEY_DATA and, only for the
+    keys supported in legacy ECP/RSA modules, it returns 2 strings:
+    - the 1st contains C arrays declaration of these keys and
+    - the 2nd contains the final look-up table for all these arrays.
+    """
     arrays = []
     look_up_table = []
 
@@ -169,6 +166,19 @@
             look_up_table.append(''.join(get_look_up_table_entry(key_type, group_id_or_keybits,
                                                                  array_name_priv, array_name_pub)))
 
+    return ''.join(arrays), '\n'.join(look_up_table)
+
+def main() -> None:
+    default_output_path = guess_project_root() + "/tests/src/test_keys.h"
+
+    argparser = argparse.ArgumentParser()
+    argparser.add_argument("--output", help="Output file", default=default_output_path)
+    args = argparser.parse_args()
+
+    output_file = args.output
+
+    arrays, look_up_table = collect_keys()
+
     write_output_file(output_file, arrays, look_up_table)
 
 if __name__ == '__main__':