Code Review
/
src
/
app-framework-main.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Merge "Revert "afm-unit: add autoapi in required-api feature""
[src/app-framework-main.git]
/
src
/
wgtpkg-sign.c
diff --git
a/src/wgtpkg-sign.c
b/src/wgtpkg-sign.c
index
cd506fc
..
7610346
100644
(file)
--- a/
src/wgtpkg-sign.c
+++ b/
src/wgtpkg-sign.c
@@
-1,5
+1,7
@@
/*
/*
- Copyright 2015 IoT.bzh
+ Copyright (C) 2015-2018 IoT.bzh
+
+ author: José Bollo <jose.bollo@iot.bzh>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@
-21,12
+23,17
@@
#include <unistd.h>
#include <limits.h>
#include <errno.h>
#include <unistd.h>
#include <limits.h>
#include <errno.h>
-#include <syslog.h>
#include <getopt.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <getopt.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include "wgtpkg.h"
+#include <libxml/tree.h>
+
+#include "verbose.h"
+#include "wgtpkg-files.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-digsig.h"
+#include "wgtpkg-xmlsec.h"
#if !defined(MAXCERT)
#define MAXCERT 20
#if !defined(MAXCERT)
#define MAXCERT 20
@@
-47,16
+54,30
@@
static unsigned int get_number(const char *value)
val = strtoul(value, &end, 10);
if (*end || 0 == val || val >= UINT_MAX || *value == '-') {
val = strtoul(value, &end, 10);
if (*end || 0 == val || val >= UINT_MAX || *value == '-') {
-
syslog(LOG_ERR,
"bad number value %s", value);
+
ERROR(
"bad number value %s", value);
exit(1);
}
return (unsigned int)val;
}
exit(1);
}
return (unsigned int)val;
}
+static void version()
+{
+ printf(
+ "\n"
+ " %s version="AFM_VERSION"\n"
+ "\n"
+ " Copyright (C) 2015, 2016, 2017 \"IoT.bzh\"\n"
+ " AFB comes with ABSOLUTELY NO WARRANTY.\n"
+ " Licence Apache 2\n"
+ "\n",
+ appname
+ );
+}
+
static void usage()
{
printf(
static void usage()
{
printf(
- "usage: %s [-f] [-k keyfile] [-c certfile]... [-
o wgtfile] [-
d number | -a] directory\n"
+ "usage: %s [-f] [-k keyfile] [-c certfile]... [-d number | -a] directory\n"
"\n"
" -k keyfile the private key to use for author signing\n"
" -c certfile the certificate(s) to use for author signing\n"
"\n"
" -k keyfile the private key to use for author signing\n"
" -c certfile the certificate(s) to use for author signing\n"
@@
-65,6
+86,7
@@
static void usage()
" -f force overwriting\n"
" -q quiet\n"
" -v verbose\n"
" -f force overwriting\n"
" -q quiet\n"
" -v verbose\n"
+ " -V version\n"
"\n",
appname
);
"\n",
appname
);
@@
-79,6
+101,7
@@
static struct option options[] = {
{ "help", no_argument, NULL, 'h' },
{ "quiet", no_argument, NULL, 'q' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
{ "quiet", no_argument, NULL, 'q' },
{ "verbose", no_argument, NULL, 'v' },
+ { "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
};
{ NULL, 0, NULL, 0 }
};
@@
-90,19
+113,19
@@
int main(int ac, char **av)
char *keyfile, *certfiles[MAXCERT+1], *directory, **x;
struct stat s;
char *keyfile, *certfiles[MAXCERT+1], *directory, **x;
struct stat s;
-
openlog(appname, LOG_PERROR, LOG_USER
);
+
LOGUSER(appname
);
force = ncert = author = 0;
number = UINT_MAX;
keyfile = directory = NULL;
for (;;) {
force = ncert = author = 0;
number = UINT_MAX;
keyfile = directory = NULL;
for (;;) {
- i = getopt_long(ac, av, "hfak:c:d:", options, NULL);
+ i = getopt_long(ac, av, "hf
qvV
ak:c:d:", options, NULL);
if (i < 0)
break;
switch (i) {
case 'c':
if (ncert == MAXCERT) {
if (i < 0)
break;
switch (i) {
case 'c':
if (ncert == MAXCERT) {
-
syslog(LOG_ERR,
"maximum count of certificates reached");
+
ERROR(
"maximum count of certificates reached");
return 1;
}
certfiles[ncert++] = optarg;
return 1;
}
certfiles[ncert++] = optarg;
@@
-112,15
+135,23
@@
int main(int ac, char **av)
case 'f': force = 1; continue;
case 'a': author = 1; continue;
case 'h': usage(); return 0;
case 'f': force = 1; continue;
case 'a': author = 1; continue;
case 'h': usage(); return 0;
+ case 'V': version(); return 0;
+ case 'q':
+ if (verbosity)
+ verbosity--;
+ break;
+ case 'v':
+ verbosity++;
+ break;
case ':':
case ':':
-
syslog(LOG_ERR,
"missing argument");
+
ERROR(
"missing argument");
return 1;
default:
return 1;
default:
-
syslog(LOG_ERR,
"unrecognized option");
+
ERROR(
"unrecognized option");
return 1;
}
if (*x != NULL) {
return 1;
}
if (*x != NULL) {
-
syslog(LOG_ERR,
"option set twice");
+
ERROR(
"option set twice");
return 1;
}
*x = optarg;
return 1;
}
*x = optarg;
@@
-128,12
+159,12
@@
int main(int ac, char **av)
/* remaining arguments and final checks */
if (optind >= ac) {
/* remaining arguments and final checks */
if (optind >= ac) {
-
syslog(LOG_ERR,
"no directory set");
+
ERROR(
"no directory set");
return 1;
}
directory = av[optind++];
if (optind < ac) {
return 1;
}
directory = av[optind++];
if (optind < ac) {
-
syslog(LOG_ERR,
"extra parameters found");
+
ERROR(
"extra parameters found");
return 1;
}
return 1;
}
@@
-145,20
+176,20
@@
int main(int ac, char **av)
/* check values */
if (stat(directory, &s)) {
/* check values */
if (stat(directory, &s)) {
-
syslog(LOG_ERR,
"can't find directory %s", directory);
+
ERROR(
"can't find directory %s", directory);
return 1;
}
if (!S_ISDIR(s.st_mode)) {
return 1;
}
if (!S_ISDIR(s.st_mode)) {
-
syslog(LOG_ERR,
"%s isn't a directory", directory);
+
ERROR(
"%s isn't a directory", directory);
return 1;
}
if (access(keyfile, R_OK) != 0) {
return 1;
}
if (access(keyfile, R_OK) != 0) {
-
syslog(LOG_ERR,
"can't access private key %s", keyfile);
+
ERROR(
"can't access private key %s", keyfile);
return 1;
}
for(i = 0 ; i < ncert ; i++)
if (access(certfiles[i], R_OK) != 0) {
return 1;
}
for(i = 0 ; i < ncert ; i++)
if (access(certfiles[i], R_OK) != 0) {
-
syslog(LOG_ERR,
"can't access certificate %s", certfiles[i]);
+
ERROR(
"can't access certificate %s", certfiles[i]);
return 1;
}
return 1;
}
@@
-168,14
+199,14
@@
int main(int ac, char **av)
/* compute absolutes paths */
/* compute absolutes paths */
-#define rp(x) do { char *p = realpath(x, NULL); if (p != NULL) x = p; else {
syslog(LOG_ERR,
"realpath failed for %s",x); return 1; } } while(0)
+#define rp(x) do { char *p = realpath(x, NULL); if (p != NULL) x = p; else {
ERROR(
"realpath failed for %s",x); return 1; } } while(0)
rp(keyfile);
for(i = 0 ; i < ncert ; i++)
rp(certfiles[i]);
#undef rp
/* set and enter the workdir */
rp(keyfile);
for(i = 0 ; i < ncert ; i++)
rp(certfiles[i]);
#undef rp
/* set and enter the workdir */
- if (set_workdir(directory, 0)
|| enter_workdir(0)
)
+ if (set_workdir(directory, 0))
return 1;
if (fill_files())
return 1;
if (fill_files())
@@
-187,11
+218,11
@@
int main(int ac, char **av)
for (number = 1; get_signature(number) != NULL ; number++);
if (!force && get_signature(number) != NULL) {
for (number = 1; get_signature(number) != NULL ; number++);
if (!force && get_signature(number) != NULL) {
-
syslog(LOG_ERR,
"can't overwrite existing signature %s", get_signature(number)->name);
+
ERROR(
"can't overwrite existing signature %s", get_signature(number)->name);
return 1;
}
return 1;
}
-
notice
("-- SIGNING content of directory %s for number %u", directory, number);
+
NOTICE
("-- SIGNING content of directory %s for number %u", directory, number);
certfiles[ncert] = NULL;
return !!create_digsig(number, keyfile, (const char**)certfiles);
certfiles[ncert] = NULL;
return !!create_digsig(number, keyfile, (const char**)certfiles);