summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dechesne <nicolas.dechesne@linaro.org>2018-05-27 14:56:13 +0200
committerNicolas Dechesne <nicolas.dechesne@linaro.org>2018-05-27 14:58:29 +0200
commit46039882ec75dc57e3d11d523f8287683c8cc70c (patch)
treebe25fa4ad03e8ea4e70be6eeabe5e0f1c5c3480b
parent750be284ab15a5054575f0595adde7cf3475cb68 (diff)
signlk: do not hardcode the number of segment
The current scripts assume the ELF file to sign contains two segments. Instead, generate the segment with a specific file name pattern and loop through all files, without hardcoding any number. Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
-rw-r--r--signer/signlk.cpp2
-rwxr-xr-xsignlk.sh6
2 files changed, 5 insertions, 3 deletions
diff --git a/signer/signlk.cpp b/signer/signlk.cpp
index 615775a..e130758 100644
--- a/signer/signlk.cpp
+++ b/signer/signlk.cpp
@@ -225,7 +225,7 @@ int main( int argc, char** argv )
const char * data=pseg->get_data();
if (data != NULL)
{
- std::string tmpFileName = tmp_path+"/";
+ std::string tmpFileName = tmp_path+"/segment";
char index = i+hash_offset+'0';
tmpFileName.append(&index,1);
saveDataToFile(tmpFileName, pseg->get_data(), pseg->get_file_size());
diff --git a/signlk.sh b/signlk.sh
index 0413085..a32aa39 100755
--- a/signlk.sh
+++ b/signlk.sh
@@ -120,8 +120,10 @@ $EXECUTABLE $INFILE $TMPOUTFILE $tmpdir
openssl sha256 -binary $tmpdir/header > $tmpdir/data
cat $tmpdir/hash>> $tmpdir/data
-openssl sha256 -binary $tmpdir/2 >> $tmpdir/data
-openssl sha256 -binary $tmpdir/3 >> $tmpdir/data
+
+for f in $tmpdir/segment*; do
+ openssl sha256 -binary $f >> $tmpdir/data
+done
openssl sha256 -binary $tmpdir/data > $tmpdir/stp0
cat $tmpdir/Si > $tmpdir/tmpDigest0