diff options
author | Jose Bollo <jose.bollo@iot.bzh> | 2019-09-11 16:23:04 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2020-02-28 12:19:24 +0100 |
commit | 7ea1070ee471141f58e9e4c03df5c95bbcef907d (patch) | |
tree | 0a1478a93095286e4e8a637196956061a9201161 /src/wgtpkg-digsig.c | |
parent | 0083ad3751cd2b088b5c5d0dea727671ea2a3cca (diff) |
Refactor ALLOW_NO_SIGNATURE compile flag
Fix a tiny bug and minor improvements
Bug-AGL: SPEC-2840
Change-Id: I9b74a8fd604980615d5669219cb5de801de61163
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/wgtpkg-digsig.c')
-rw-r--r-- | src/wgtpkg-digsig.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/wgtpkg-digsig.c b/src/wgtpkg-digsig.c index d8ec58e..d190d23 100644 --- a/src/wgtpkg-digsig.c +++ b/src/wgtpkg-digsig.c @@ -308,7 +308,7 @@ int verify_digsig(struct filedesc *fdesc) int res, fd; assert ((fdesc->flags & flag_signature) != 0); - DEBUG("-- checking file %s",fdesc->name); + DEBUG("-- checking file %s", fdesc->name); /* reset the flags */ file_clear_flags(); @@ -343,13 +343,23 @@ int check_all_signatures(int allow_none) struct filedesc *fdesc; n = signature_count(); - if (n == 0 && !allow_none) { - ERROR("no signature found"); - return -1; + if (n == 0) { + if (!allow_none) { + ERROR("no signature found"); + return -1; + } + return 0; } + + rc = xmlsec_init(); + if (rc < 0) { + ERROR("can't check signature"); + return rc; + } + rc = 0; - for (i = n ; i-- > 0 ; ) { - fdesc = signature_of_index(i); + for (i = n ; i ; ) { + fdesc = signature_of_index(--i); irc = verify_digsig(fdesc); if (irc < 0) rc = irc; |