blob: fae1b0b742173f6ab2c6e83208a4ec897b73e9a3 [file] [log] [blame]
Raef Coles59cf5d82024-12-09 15:41:13 +00001#-------------------------------------------------------------------------------
2# SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8import struct
9
10import logging
11logger = logging.getLogger("TF-M")
12
13def struct_pack(objects, pad_to=0):
14 defstring = "<"
15 for obj in objects:
16 defstring += str(len(obj)) + "s"
17
18 size = struct.calcsize(defstring)
19 if size < pad_to:
20 defstring += str(pad_to - size) + "x"
21 assert size < pad_to or pad_to == 0, "Error padding struct of size {} to {}".format(size, pad_to)
22
23 return (bytes(struct.pack(defstring, *objects)))