wgtpkg: spliting of headers
authorJosé Bollo <jose.bollo@iot.bzh>
Tue, 29 Dec 2015 09:11:20 +0000 (10:11 +0100)
committerJosé Bollo <jose.bollo@iot.bzh>
Tue, 29 Dec 2015 09:11:20 +0000 (10:11 +0100)
Change-Id: I8ac6a16c936b73c6ce74ee41ae9c5a2ad9d042ee

25 files changed:
src/afm-system-daemon.c
src/afm-user-daemon.c
src/wgtpkg-base64.c
src/wgtpkg-base64.h [new file with mode: 0644]
src/wgtpkg-certs.c
src/wgtpkg-certs.h [new file with mode: 0644]
src/wgtpkg-digsig.c
src/wgtpkg-digsig.h [new file with mode: 0644]
src/wgtpkg-files.c
src/wgtpkg-files.h [new file with mode: 0644]
src/wgtpkg-info.c
src/wgtpkg-install.c
src/wgtpkg-install.h
src/wgtpkg-installer.c
src/wgtpkg-pack.c
src/wgtpkg-permissions.c
src/wgtpkg-permissions.h [new file with mode: 0644]
src/wgtpkg-sign.c
src/wgtpkg-workdir.c
src/wgtpkg-workdir.h [new file with mode: 0644]
src/wgtpkg-xmlsec.c
src/wgtpkg-xmlsec.h [new file with mode: 0644]
src/wgtpkg-zip.c
src/wgtpkg-zip.h [new file with mode: 0644]
src/wgtpkg.h [deleted file]

index 84e8992..70d8656 100644 (file)
@@ -284,7 +284,7 @@ int main(int ac, char **av)
 
        /* start and run */
        if (jbus_start_serving(jbus)) {
-               ERROR("cant start server");
+               ERROR("can't start server");
                return 1;
        }
        while (!jbus_read_write_dispatch(jbus, -1));
index 1459dde..87d7e71 100644 (file)
@@ -303,7 +303,7 @@ int main(int ac, char **av)
 
        /* start and run */
        if (jbus_start_serving(jbus)) {
-               ERROR("cant start server");
+               ERROR("can't start server");
                return 1;
        }
        while (!jbus_read_write_dispatch(jbus, -1));
index d86f75a..63929ae 100644 (file)
@@ -21,7 +21,7 @@
 #include <string.h>
 
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-base64.h"
 
 static char tob64(char x)
 {
diff --git a/src/wgtpkg-base64.h b/src/wgtpkg-base64.h
new file mode 100644 (file)
index 0000000..90917a9
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ Copyright 2015 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.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+extern char *base64encw(const char *buffer, int length, int width);
+extern char *base64enc(const char *buffer, int length);
+extern int base64dec(const char *buffer, char **output);
+extern int base64eq(const char *buf1, const char *buf2);
+
index 116e637..7310035 100644 (file)
@@ -20,7 +20,8 @@
 #include <openssl/x509.h>
 
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-certs.h"
+#include "wgtpkg-base64.h"
 
 struct x509l {
        int count;
diff --git a/src/wgtpkg-certs.h b/src/wgtpkg-certs.h
new file mode 100644 (file)
index 0000000..6342581
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ Copyright 2015 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.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+extern void clear_certificates();
+extern int add_certificate_b64(const char *b64);
+
index e5a8d74..ed9d089 100644 (file)
 
 
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-files.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-certs.h"
+#include "wgtpkg-xmlsec.h"
+#include "wgtpkg-digsig.h"
 
 
 
diff --git a/src/wgtpkg-digsig.h b/src/wgtpkg-digsig.h
new file mode 100644 (file)
index 0000000..99c5a56
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ Copyright 2015 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.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+/* verify the digital signature in file */
+extern int verify_digsig(struct filedesc *fdesc);
+
+/* create a digital signature */
+extern int create_digsig(int index, const char *key, const char **certs);
+
+/* check the signatures of the current directory */
+extern int check_all_signatures();
+
index a89c52b..cbd6048 100644 (file)
@@ -27,7 +27,8 @@
 #include <limits.h>
 
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-files.h"
 
 struct fdb {
        unsigned int count;
diff --git a/src/wgtpkg-files.h b/src/wgtpkg-files.h
new file mode 100644 (file)
index 0000000..e3aabf8
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ Copyright 2015 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.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+enum entrytype {
+       type_unset = 0,
+       type_file = 1,
+       type_directory = 2
+};
+
+enum fileflag {
+       flag_referenced = 1,
+       flag_opened = 2,
+       flag_author_signature = 4,
+       flag_distributor_signature = 8,
+       flag_signature = 12
+};
+
+struct filedesc {
+       enum entrytype type;
+       unsigned int flags;
+       unsigned int signum;
+       unsigned int zindex;
+       char name[1];
+};
+
+extern void file_reset();
+extern void file_clear_flags();
+extern unsigned int file_count();
+extern struct filedesc *file_of_index(unsigned int index);
+extern struct filedesc *file_of_name(const char *name);
+extern struct filedesc *file_add_directory(const char *name);
+extern struct filedesc *file_add_file(const char *name);
+extern int fill_files();
+
+extern unsigned int signature_count();
+extern struct filedesc *signature_of_index(unsigned int index);
+extern struct filedesc *create_signature(unsigned int number);
+extern struct filedesc *get_signature(unsigned int number);
+
+extern int file_set_prop(struct filedesc *file, const char *name, const char *value);
+extern const char *file_get_prop(struct filedesc *file, const char *name);
+
index 18b1118..67d4596 100644 (file)
 #include <errno.h>
 #include <getopt.h>
 
+#include <libxml/tree.h>
+
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-files.h"
+#include "wgtpkg-zip.h"
+#include "wgtpkg-digsig.h"
+#include "wgtpkg-xmlsec.h"
 #include "wgt.h"
 #include "wgt-info.h"
 
index 70198e9..7b299f2 100644 (file)
 
 #define _GNU_SOURCE
 
+#include <limits.h>
 #include <errno.h>
 #include <string.h>
 #include <ctype.h>
 #include <assert.h>
 #include <unistd.h>
+#include <stdio.h>
 
 #include "verbose.h"
-#include "wgtpkg.h"
 #include "wgt.h"
 #include "wgt-info.h"
+#include "wgtpkg-files.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-zip.h"
+#include "wgtpkg-permissions.h"
+#include "wgtpkg-digsig.h"
 #include "wgtpkg-install.h"
 #include "secmgr-wrap.h"
 #include "utils-dir.h"
index bf3c3a6..f3dd123 100644 (file)
@@ -17,4 +17,3 @@
 */
 
 extern struct wgt_info *install_widget(const char *wgtfile, const char *root, int force);
-
index b5da59f..ea08fce 100644 (file)
 #include <errno.h>
 #include <getopt.h>
 
+#include <libxml/tree.h>
+
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-permissions.h"
+#include "wgtpkg-xmlsec.h"
 #include "wgt-info.h"
 #include "wgtpkg-install.h"
 
index e7fa752..0eeb4ab 100644 (file)
 #include <fcntl.h>
 
 #include "verbose.h"
-#include "wgtpkg.h"
-
-#if !defined(MAXCERT)
-#define MAXCERT 20
-#endif
-#if !defined(DEFAULT_KEY_FILE)
-#define DEFAULT_KEY_FILE "key.pem"
-#endif
-#if !defined(DEFAULT_CERT_FILE)
-#define DEFAULT_CERT_FILE "cert.pem"
-#endif
+#include "wgtpkg-files.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-zip.h"
 
 const char appname[] = "wgtpkg-pack";
 
index 9dabdd0..88bce05 100644 (file)
 
 #include <errno.h>
 #include <string.h>
+#include <stdlib.h>
 
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-permissions.h"
 
 struct permission {
        char *name;
diff --git a/src/wgtpkg-permissions.h b/src/wgtpkg-permissions.h
new file mode 100644 (file)
index 0000000..b052063
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ Copyright 2015 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.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+extern int is_standard_permission(const char *name);
+extern void reset_permissions();
+extern void crop_permissions(unsigned level);
+extern void grant_permission_list(const char *list);
+extern int permission_exists(const char *name);
+extern int request_permission(const char *name);
+extern const char *first_usable_permission();
+extern const char *next_usable_permission();
+
index 7851c4a..5a5d019 100644 (file)
 #include <sys/stat.h>
 #include <fcntl.h>
 
+#include <libxml/tree.h>
+
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-files.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-digsig.h"
+#include "wgtpkg-xmlsec.h"
 
 #if !defined(MAXCERT)
 #define MAXCERT 20
index e6632f4..e1dcdac 100644 (file)
@@ -20,6 +20,8 @@
 
 #include <unistd.h>
 #include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -29,7 +31,7 @@
 #include <limits.h>
 
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-workdir.h"
 #include "utils-dir.h"
 
 static const int dirmode = 0755;
diff --git a/src/wgtpkg-workdir.h b/src/wgtpkg-workdir.h
new file mode 100644 (file)
index 0000000..ff21ab1
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ Copyright 2015 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.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+extern char workdir[PATH_MAX];
+extern int workdirfd;
+extern void remove_workdir();
+extern int set_workdir(const char *name, int create);
+extern int make_workdir_base(const char *root, const char *prefix, int reuse);
+extern int make_workdir(int reuse);
+extern int move_workdir(const char *dest, int parents, int force);
+
index b31a5d0..2d52cc6 100644 (file)
@@ -35,7 +35,9 @@
 
 
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-files.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-xmlsec.h"
 
 static int initstatus;
 static int initdone;
diff --git a/src/wgtpkg-xmlsec.h b/src/wgtpkg-xmlsec.h
new file mode 100644 (file)
index 0000000..92d7615
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ Copyright 2015 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.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+extern int xmlsec_init();
+extern void xmlsec_shutdown();
+extern int xmlsec_verify(xmlNodePtr node);
+extern xmlDocPtr xmlsec_create(int index, const char *key, const char **certs);
+
index 0b1234b..8168fe7 100644 (file)
@@ -29,7 +29,9 @@
 #include <unistd.h>
 
 #include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-files.h"
+#include "wgtpkg-workdir.h"
+#include "wgtpkg-zip.h"
 
 #define MODE_OF_FILE_CREATION 0640
 #define MODE_OF_DIRECTORY_CREATION 0750
diff --git a/src/wgtpkg-zip.h b/src/wgtpkg-zip.h
new file mode 100644 (file)
index 0000000..03d0433
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ Copyright 2015 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.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+/* read (extract) 'zipfile' in current directory */
+extern int zread(const char *zipfile, unsigned long long maxsize);
+
+/* write (pack) content of the current directory in 'zipfile' */
+extern int zwrite(const char *zipfile);
+
+
diff --git a/src/wgtpkg.h b/src/wgtpkg.h
deleted file mode 100644 (file)
index e700a9b..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- Copyright 2015 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.
- You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-
-#include <libxml/tree.h>
-
-struct filedesc;
-
-/**************************************************************/
-/* from wgtpkg-base64 */
-
-extern char *base64encw(const char *buffer, int length, int width);
-extern char *base64enc(const char *buffer, int length);
-extern int base64dec(const char *buffer, char **output);
-extern int base64eq(const char *buf1, const char *buf2);
-
-/**************************************************************/
-/* from wgtpkg-certs */
-
-extern void clear_certificates();
-extern int add_certificate_b64(const char *b64);
-
-/**************************************************************/
-/* from wgtpkg-digsig */
-
-/* verify the digital signature in file */
-extern int verify_digsig(struct filedesc *fdesc);
-
-/* create a digital signature */
-extern int create_digsig(int index, const char *key, const char **certs);
-
-/* check the signatures of the current directory */
-extern int check_all_signatures();
-
-/**************************************************************/
-/* from wgtpkg-files */
-
-enum entrytype {
-       type_unset = 0,
-       type_file = 1,
-       type_directory = 2
-};
-
-enum fileflag {
-       flag_referenced = 1,
-       flag_opened = 2,
-       flag_author_signature = 4,
-       flag_distributor_signature = 8,
-       flag_signature = 12
-};
-
-struct filedesc {
-       enum entrytype type;
-       unsigned int flags;
-       unsigned int signum;
-       unsigned int zindex;
-       char name[1];
-};
-
-extern void file_reset();
-extern void file_clear_flags();
-extern unsigned int file_count();
-extern struct filedesc *file_of_index(unsigned int index);
-extern struct filedesc *file_of_name(const char *name);
-extern struct filedesc *file_add_directory(const char *name);
-extern struct filedesc *file_add_file(const char *name);
-extern int fill_files();
-
-extern unsigned int signature_count();
-extern struct filedesc *signature_of_index(unsigned int index);
-extern struct filedesc *create_signature(unsigned int number);
-extern struct filedesc *get_signature(unsigned int number);
-
-extern int file_set_prop(struct filedesc *file, const char *name, const char *value);
-extern const char *file_get_prop(struct filedesc *file, const char *name);
-
-/**************************************************************/
-/* from wgtpkg-permission */
-
-extern int is_standard_permission(const char *name);
-extern void reset_permissions();
-extern void crop_permissions(unsigned level);
-extern void grant_permission_list(const char *list);
-extern int permission_exists(const char *name);
-extern int request_permission(const char *name);
-extern const char *first_usable_permission();
-extern const char *next_usable_permission();
-
-/**************************************************************/
-/* from wgtpkg-workdir */
-
-extern char workdir[PATH_MAX];
-extern int workdirfd;
-extern void remove_workdir();
-extern int set_workdir(const char *name, int create);
-extern int make_workdir_base(const char *root, const char *prefix, int reuse);
-extern int make_workdir(int reuse);
-extern int move_workdir(const char *dest, int parents, int force);
-
-/**************************************************************/
-/* from wgtpkg-xmlsec */
-
-extern int xmlsec_init();
-extern void xmlsec_shutdown();
-extern int xmlsec_verify(xmlNodePtr node);
-extern xmlDocPtr xmlsec_create(int index, const char *key, const char **certs);
-
-/**************************************************************/
-/* from wgtpkg-zip */
-
-/* read (extract) 'zipfile' in current directory */
-extern int zread(const char *zipfile, unsigned long long maxsize);
-
-/* write (pack) content of the current directory in 'zipfile' */
-extern int zwrite(const char *zipfile);
-
-