diff options
author | Nicolas Dechesne <nicolas.dechesne@linaro.org> | 2018-05-27 14:56:13 +0200 |
---|---|---|
committer | Nicolas Dechesne <nicolas.dechesne@linaro.org> | 2018-05-27 14:58:29 +0200 |
commit | 46039882ec75dc57e3d11d523f8287683c8cc70c (patch) | |
tree | be25fa4ad03e8ea4e70be6eeabe5e0f1c5c3480b | |
parent | 750be284ab15a5054575f0595adde7cf3475cb68 (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.cpp | 2 | ||||
-rwxr-xr-x | signlk.sh | 6 |
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()); @@ -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 |