From 291f58bd7e940dbe7721cd7c2cb5bb58b2c31a2b Mon Sep 17 00:00:00 2001 From: kakwa Date: Tue, 23 Aug 2016 19:38:07 +0200 Subject: [PATCH] reformat source code --- inc/config.h | 10 +- inc/ini.h | 14 +- src/cmd/uts-server.c | 61 +++-- src/lib/ini.c | 58 ++--- src/lib/rfc3161.c | 550 +++++++++++++++++++++---------------------- src/lib/utils.c | 12 +- 6 files changed, 343 insertions(+), 362 deletions(-) diff --git a/inc/config.h b/inc/config.h index 8632450..466d3a5 100644 --- a/inc/config.h +++ b/inc/config.h @@ -1,13 +1,13 @@ typedef struct uts_config { - char * port; - char * listen; + char *port; + char *listen; bool https; cert https_cert; - void * ts_certs; + void *ts_certs; } uts_config; typedef struct cert { - char * cert_file; - char * key_file; + char *cert_file; + char *key_file; } cert; diff --git a/inc/ini.h b/inc/ini.h index eaa554d..217fc9b 100644 --- a/inc/ini.h +++ b/inc/ini.h @@ -18,11 +18,11 @@ extern "C" { #include /* Typedef for prototype of handler function. */ -typedef int (*ini_handler)(void* user, const char* section, - const char* name, const char* value); +typedef int (*ini_handler)(void *user, const char *section, const char *name, + const char *value); /* Typedef for prototype of fgets-style reader function. */ -typedef char* (*ini_reader)(char* str, int num, void* stream); +typedef char *(*ini_reader)(char *str, int num, void *stream); /* Parse given INI-style file. May have [section]s, name=value pairs (whitespace stripped), and comments starting with ';' (semicolon). Section @@ -37,16 +37,16 @@ typedef char* (*ini_reader)(char* str, int num, void* stream); stop on first error), -1 on file open error, or -2 on memory allocation error (only when INI_USE_STACK is zero). */ -int ini_parse(const char* filename, ini_handler handler, void* user); +int ini_parse(const char *filename, ini_handler handler, void *user); /* Same as ini_parse(), but takes a FILE* instead of filename. This doesn't close the file when it's finished -- the caller must do that. */ -int ini_parse_file(FILE* file, ini_handler handler, void* user); +int ini_parse_file(FILE *file, ini_handler handler, void *user); /* Same as ini_parse(), but takes an ini_reader function pointer instead of filename. Used for implementing custom or string-based I/O. */ -int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, - void* user); +int ini_parse_stream(ini_reader reader, void *stream, ini_handler handler, + void *user); /* Nonzero to allow multi-line value parsing, in the style of Python's configparser. If allowed, ini_parse() will call the handler with the same diff --git a/src/cmd/uts-server.c b/src/cmd/uts-server.c index 5ca2ef6..d245434 100644 --- a/src/cmd/uts-server.c +++ b/src/cmd/uts-server.c @@ -11,71 +11,64 @@ const char *argp_program_version = UTS_VERSION; -const char *argp_program_bug_address = "Pierre-Francois Carpentier "; +const char *argp_program_bug_address = + "Pierre-Francois Carpentier "; static char doc[] = "\nUTS micro timestamp server (RFC 3161)"; static struct argp_option options[] = { - {"conffile", 'c', "CONFFILE", 0, "Path to configuration file"}, - {"daemonize", 'd', 0, 0, "Launch as a daemon"}, - { 0 } -}; + {"conffile", 'c', "CONFFILE", 0, "Path to configuration file"}, + {"daemonize", 'd', 0, 0, "Launch as a daemon"}, + {0}}; /* A description of the arguments we accept. */ static char args_doc[] = "-c CONFFILE -d"; -struct arguments -{ - char *args[2]; /* arg1 & arg2 */ - int daemonize; +struct arguments { + char *args[2]; /* arg1 & arg2 */ + int daemonize; char *conffile; }; -static error_t parse_opt (int key, char *arg, struct argp_state *state) -{ +static error_t parse_opt(int key, char *arg, struct argp_state *state) { /* Get the input argument from argp_parse, which we know is a pointer to our arguments structure. */ struct arguments *arguments = (struct arguments *)state->input; - switch (key) - { - case 'd': - arguments->daemonize = 1; - break; - case 'c': - arguments->conffile = arg; - break; - default: - return ARGP_ERR_UNKNOWN; + switch (key) { + case 'd': + arguments->daemonize = 1; + break; + case 'c': + arguments->conffile = arg; + break; + default: + return ARGP_ERR_UNKNOWN; } return 0; } /* Our argp parser. */ -static struct argp argp = { options, parse_opt, args_doc, doc }; - - -int main(int argc, char **argv) -{ +static struct argp argp = {options, parse_opt, args_doc, doc}; +int main(int argc, char **argv) { struct arguments args; - args.conffile = NULL; + args.conffile = NULL; args.daemonize = 0; - argp_parse (&argp, argc, argv, 0, 0, &args); + argp_parse(&argp, argc, argv, 0, 0, &args); if (args.daemonize) skeleton_daemon(); - while (1) - { - //TODO: Insert daemon code here. + while (1) { + // TODO: Insert daemon code here. http_server_start(); - syslog (LOG_NOTICE, "First daemon started."); - sleep (5); + syslog(LOG_NOTICE, "First daemon started."); + sleep(5); break; } - syslog (LOG_NOTICE, "First daemon terminated."); + syslog(LOG_NOTICE, "First daemon terminated."); closelog(); return EXIT_SUCCESS; diff --git a/src/lib/ini.c b/src/lib/ini.c index 27ca85b..dd1ee40 100644 --- a/src/lib/ini.c +++ b/src/lib/ini.c @@ -25,27 +25,24 @@ https://github.com/benhoyt/inih #define MAX_NAME 50 /* Strip whitespace chars off end of given string, in place. Return s. */ -static char* rstrip(char* s) -{ - char* p = s + strlen(s); +static char *rstrip(char *s) { + char *p = s + strlen(s); while (p > s && isspace((unsigned char)(*--p))) *p = '\0'; return s; } /* Return pointer to first non-whitespace char in given string. */ -static char* lskip(const char* s) -{ +static char *lskip(const char *s) { while (*s && isspace((unsigned char)(*s))) s++; - return (char*)s; + return (char *)s; } /* Return pointer to first char (of chars) or inline comment in given string, or pointer to null at end of string if neither found. Inline comment must be prefixed by a whitespace character to register as a comment. */ -static char* find_chars_or_comment(const char* s, const char* chars) -{ +static char *find_chars_or_comment(const char *s, const char *chars) { #if INI_ALLOW_INLINE_COMMENTS int was_space = 0; while (*s && (!chars || !strchr(chars, *s)) && @@ -58,39 +55,37 @@ static char* find_chars_or_comment(const char* s, const char* chars) s++; } #endif - return (char*)s; + return (char *)s; } /* Version of strncpy that ensures dest (size bytes) is null-terminated. */ -static char* strncpy0(char* dest, const char* src, size_t size) -{ +static char *strncpy0(char *dest, const char *src, size_t size) { strncpy(dest, src, size); dest[size - 1] = '\0'; return dest; } /* See documentation in header file. */ -int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, - void* user) -{ - /* Uses a fair bit of stack (use heap instead if you need to) */ +int ini_parse_stream(ini_reader reader, void *stream, ini_handler handler, + void *user) { +/* Uses a fair bit of stack (use heap instead if you need to) */ #if INI_USE_STACK char line[INI_MAX_LINE]; #else - char* line; + char *line; #endif char section[MAX_SECTION] = ""; char prev_name[MAX_NAME] = ""; - char* start; - char* end; - char* name; - char* value; + char *start; + char *end; + char *name; + char *value; int lineno = 0; int error = 0; #if !INI_USE_STACK - line = (char*)malloc(INI_MAX_LINE); + line = (char *)malloc(INI_MAX_LINE); if (!line) { return -2; } @@ -103,8 +98,8 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, start = line; #if INI_ALLOW_BOM if (lineno == 1 && (unsigned char)start[0] == 0xEF && - (unsigned char)start[1] == 0xBB && - (unsigned char)start[2] == 0xBF) { + (unsigned char)start[1] == 0xBB && + (unsigned char)start[2] == 0xBF) { start += 3; } #endif @@ -129,13 +124,11 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, *end = '\0'; strncpy0(section, start + 1, sizeof(section)); *prev_name = '\0'; - } - else if (!error) { + } else if (!error) { /* No ']' found on section line */ error = lineno; } - } - else if (*start) { + } else if (*start) { /* Not a comment, must be a name[=:]value pair */ end = find_chars_or_comment(start, "=:"); if (*end == '=' || *end == ':') { @@ -153,8 +146,7 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, strncpy0(prev_name, name, sizeof(prev_name)); if (!handler(user, section, name, value) && !error) error = lineno; - } - else if (!error) { + } else if (!error) { /* No '=' or ':' found on name[=:]value line */ error = lineno; } @@ -174,15 +166,13 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, } /* See documentation in header file. */ -int ini_parse_file(FILE* file, ini_handler handler, void* user) -{ +int ini_parse_file(FILE *file, ini_handler handler, void *user) { return ini_parse_stream((ini_reader)fgets, file, handler, user); } /* See documentation in header file. */ -int ini_parse(const char* filename, ini_handler handler, void* user) -{ - FILE* file; +int ini_parse(const char *filename, ini_handler handler, void *user) { + FILE *file; int error; file = fopen(filename, "r"); diff --git a/src/lib/rfc3161.c b/src/lib/rfc3161.c index 01ad774..05ca2a3 100644 --- a/src/lib/rfc3161.c +++ b/src/lib/rfc3161.c @@ -1,4 +1,4 @@ -/* +/* * "This product includes software developed by the OpenSSL Project * * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" */ @@ -19,31 +19,30 @@ #include /* Name of config entry that defines the OID file. */ -# define ENV_OID_FILE "oid_file" +#define ENV_OID_FILE "oid_file" static ASN1_OBJECT *txt2obj(const char *oid); static CONF *load_config_file(const char *configfile); /* Reply related functions. */ static int reply_command(CONF *conf, char *section, char *engine, - char *queryfile, char *passin, char *inkey, - const EVP_MD *md, char *signer, char *chain, - const char *policy, char *in, int token_in, - char *out, int token_out, int text); + char *queryfile, char *passin, char *inkey, + const EVP_MD *md, char *signer, char *chain, + const char *policy, char *in, int token_in, char *out, + int token_out, int text); static TS_RESP *read_PKCS7(BIO *in_bio); static TS_RESP *create_response(CONF *conf, const char *section, char *engine, - char *queryfile, char *passin, - char *inkey, const EVP_MD *md, char *signer, - char *chain, const char *policy); + char *queryfile, char *passin, char *inkey, + const EVP_MD *md, char *signer, char *chain, + const char *policy); static ASN1_INTEGER *serial_cb(TS_RESP_CTX *ctx, void *data); static ASN1_INTEGER *next_serial(const char *serialfile); static int save_ts_serial(const char *serialfile, ASN1_INTEGER *serial); -# define B_FORMAT_TEXT 0x8000 -# define FORMAT_UNDEF 0 -# define FORMAT_TEXT (1 | B_FORMAT_TEXT) /* Generic text */ -# define FORMAT_ASN1 4 /* ASN.1/DER */ - +#define B_FORMAT_TEXT 0x8000 +#define FORMAT_UNDEF 0 +#define FORMAT_TEXT (1 | B_FORMAT_TEXT) /* Generic text */ +#define FORMAT_ASN1 4 /* ASN.1/DER */ /* int ts_http_respond(short event, ad_conn_t *conn, void *userdata) { @@ -67,78 +66,77 @@ static int save_ts_serial(const char *serialfile, ASN1_INTEGER *serial); } */ - // This function will be called by civetweb on every new request. -static int begin_request_handler(struct mg_connection *conn) -{ - const struct mg_request_info *request_info = mg_get_request_info(conn); - char content[100]; +static int begin_request_handler(struct mg_connection *conn) { + const struct mg_request_info *request_info = mg_get_request_info(conn); + char content[100]; - // Prepare the message we're going to send - int content_length = snprintf(content, sizeof(content), - "Hello from civetweb! Remote port: %d", - request_info->remote_port); + // Prepare the message we're going to send + int content_length = snprintf(content, sizeof(content), + "Hello from civetweb! Remote port: %d", + request_info->remote_port); - // Send HTTP reply to the client - mg_printf(conn, - "HTTP/1.1 200 OK\r\n" - "Content-Type: text/plain\r\n" - "Content-Length: %d\r\n" // Always set Content-Length - "\r\n" - "%s", - content_length, content); + // Send HTTP reply to the client + mg_printf(conn, + "HTTP/1.1 200 OK\r\n" + "Content-Type: text/plain\r\n" + "Content-Length: %d\r\n" // Always set Content-Length + "\r\n" + "%s", + content_length, content); - // Returning non-zero tells civetweb that our function has replied to - // the client, and civetweb should not send client any more data. - return 1; + // Returning non-zero tells civetweb that our function has replied to + // the client, and civetweb should not send client any more data. + return 1; } int http_server_start() { - struct mg_context *ctx; - struct mg_callbacks callbacks; + struct mg_context *ctx; + struct mg_callbacks callbacks; - // List of options. Last element must be NULL. - const char *options[] = {"listening_ports", "8080", NULL}; + // List of options. Last element must be NULL. + const char *options[] = {"listening_ports", "8080", NULL}; - // Prepare callbacks structure. We have only one callback, the rest are NULL. - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.begin_request = begin_request_handler; + // Prepare callbacks structure. We have only one callback, the rest are + // NULL. + memset(&callbacks, 0, sizeof(callbacks)); + callbacks.begin_request = begin_request_handler; - // Start the web server. - ctx = mg_start(&callbacks, NULL, options); + // Start the web server. + ctx = mg_start(&callbacks, NULL, options); - // Wait until user hits "enter". Server is running in separate thread. - // Navigating to http://localhost:8080 will invoke begin_request_handler(). - getchar(); + // Wait until user hits "enter". Server is running in separate thread. + // Navigating to http://localhost:8080 will invoke begin_request_handler(). + getchar(); - // Stop the server. - mg_stop(ctx); + // Stop the server. + mg_stop(ctx); - return 0; + return 0; } /* * Configuration file-related function definitions. */ -static ASN1_OBJECT *txt2obj(const char *oid) -{ - ASN1_OBJECT *oid_obj = NULL; +static ASN1_OBJECT *txt2obj(const char *oid) { + ASN1_OBJECT *oid_obj = NULL; - if ((oid_obj = OBJ_txt2obj(oid, 0)) == NULL) -// BIO_printf(bio_err, "cannot convert %s to OID\n", oid); + if ((oid_obj = OBJ_txt2obj(oid, 0)) == NULL) + // BIO_printf(bio_err, "cannot convert %s to OID\n", oid); - return oid_obj; + return oid_obj; } -//static CONF *load_config_file(const char *configfile) +// static CONF *load_config_file(const char *configfile) //{ // CONF *conf = app_load_config(configfile); // // if (conf != NULL) { // const char *p; // -//// BIO_printf(bio_err, "Using configuration from %s\n", configfile); +//// BIO_printf(bio_err, "Using configuration from %s\n", +///configfile); // p = NCONF_get_string(conf, NULL, ENV_OID_FILE); // if (p != NULL) { // BIO *oid_bio = BIO_new_file(p, "r"); @@ -161,256 +159,258 @@ static ASN1_OBJECT *txt2obj(const char *oid) */ static int reply_command(CONF *conf, char *section, char *engine, - char *queryfile, char *passin, char *inkey, - const EVP_MD *md, char *signer, char *chain, - const char *policy, char *in, int token_in, - char *out, int token_out, int text) -{ - int ret = 0; - TS_RESP *response = NULL; - BIO *in_bio = NULL; - BIO *query_bio = NULL; - BIO *inkey_bio = NULL; - BIO *signer_bio = NULL; - BIO *out_bio = NULL; + char *queryfile, char *passin, char *inkey, + const EVP_MD *md, char *signer, char *chain, + const char *policy, char *in, int token_in, char *out, + int token_out, int text) { + int ret = 0; + TS_RESP *response = NULL; + BIO *in_bio = NULL; + BIO *query_bio = NULL; + BIO *inkey_bio = NULL; + BIO *signer_bio = NULL; + BIO *out_bio = NULL; BIO *bio_err; - if (in != NULL) { - if ((in_bio = BIO_new_file(in, "rb")) == NULL) - goto end; - if (token_in) { - response = read_PKCS7(in_bio); - } else { - response = d2i_TS_RESP_bio(in_bio, NULL); - } - } else { - response = create_response(conf, section, engine, queryfile, - passin, inkey, md, signer, chain, policy); -// if (response) -// BIO_printf(bio_err, "Response has been generated.\n"); -// else -// BIO_printf(bio_err, "Response is not generated.\n"); - } - if (response == NULL) - goto end; + if (in != NULL) { + if ((in_bio = BIO_new_file(in, "rb")) == NULL) + goto end; + if (token_in) { + response = read_PKCS7(in_bio); + } else { + response = d2i_TS_RESP_bio(in_bio, NULL); + } + } else { + response = create_response(conf, section, engine, queryfile, passin, + inkey, md, signer, chain, policy); + // if (response) + // BIO_printf(bio_err, "Response has been + //generated.\n"); + // else + // BIO_printf(bio_err, "Response is not + //generated.\n"); + } + if (response == NULL) + goto end; - /* Write response. */ - if (text) { -// if ((out_bio = bio_open_default(out, 'w', FORMAT_TEXT)) == NULL) -// goto end; - if (token_out) { - TS_TST_INFO *tst_info = TS_RESP_get_tst_info(response); - if (!TS_TST_INFO_print_bio(out_bio, tst_info)) - goto end; - } else { - if (!TS_RESP_print_bio(out_bio, response)) - goto end; - } - } else { -// if ((out_bio = bio_open_default(out, 'w', FORMAT_ASN1)) == NULL) -// goto end; - if (token_out) { - PKCS7 *token = TS_RESP_get_token(response); - if (!i2d_PKCS7_bio(out_bio, token)) - goto end; - } else { - if (!i2d_TS_RESP_bio(out_bio, response)) - goto end; - } - } + /* Write response. */ + if (text) { + // if ((out_bio = bio_open_default(out, 'w', FORMAT_TEXT)) == + //NULL) + // goto end; + if (token_out) { + TS_TST_INFO *tst_info = TS_RESP_get_tst_info(response); + if (!TS_TST_INFO_print_bio(out_bio, tst_info)) + goto end; + } else { + if (!TS_RESP_print_bio(out_bio, response)) + goto end; + } + } else { + // if ((out_bio = bio_open_default(out, 'w', FORMAT_ASN1)) == + //NULL) + // goto end; + if (token_out) { + PKCS7 *token = TS_RESP_get_token(response); + if (!i2d_PKCS7_bio(out_bio, token)) + goto end; + } else { + if (!i2d_TS_RESP_bio(out_bio, response)) + goto end; + } + } - ret = 1; + ret = 1; end: - ERR_print_errors(bio_err); - BIO_free_all(in_bio); - BIO_free_all(query_bio); - BIO_free_all(inkey_bio); - BIO_free_all(signer_bio); - BIO_free_all(out_bio); - TS_RESP_free(response); - return ret; + ERR_print_errors(bio_err); + BIO_free_all(in_bio); + BIO_free_all(query_bio); + BIO_free_all(inkey_bio); + BIO_free_all(signer_bio); + BIO_free_all(out_bio); + TS_RESP_free(response); + return ret; } /* Reads a PKCS7 token and adds default 'granted' status info to it. */ -static TS_RESP *read_PKCS7(BIO *in_bio) -{ - int ret = 0; - PKCS7 *token = NULL; - TS_TST_INFO *tst_info = NULL; - TS_RESP *resp = NULL; - TS_STATUS_INFO *si = NULL; +static TS_RESP *read_PKCS7(BIO *in_bio) { + int ret = 0; + PKCS7 *token = NULL; + TS_TST_INFO *tst_info = NULL; + TS_RESP *resp = NULL; + TS_STATUS_INFO *si = NULL; - if ((token = d2i_PKCS7_bio(in_bio, NULL)) == NULL) - goto end; - if ((tst_info = PKCS7_to_TS_TST_INFO(token)) == NULL) - goto end; - if ((resp = TS_RESP_new()) == NULL) - goto end; - if ((si = TS_STATUS_INFO_new()) == NULL) - goto end; -// if (!TS_STATUS_INFO_set_status(si, TS_STATUS_GRANTED)) -// goto end; - if (!TS_RESP_set_status_info(resp, si)) - goto end; - TS_RESP_set_tst_info(resp, token, tst_info); - token = NULL; /* Ownership is lost. */ - tst_info = NULL; /* Ownership is lost. */ - ret = 1; + if ((token = d2i_PKCS7_bio(in_bio, NULL)) == NULL) + goto end; + if ((tst_info = PKCS7_to_TS_TST_INFO(token)) == NULL) + goto end; + if ((resp = TS_RESP_new()) == NULL) + goto end; + if ((si = TS_STATUS_INFO_new()) == NULL) + goto end; + // if (!TS_STATUS_INFO_set_status(si, TS_STATUS_GRANTED)) + // goto end; + if (!TS_RESP_set_status_info(resp, si)) + goto end; + TS_RESP_set_tst_info(resp, token, tst_info); + token = NULL; /* Ownership is lost. */ + tst_info = NULL; /* Ownership is lost. */ + ret = 1; end: - PKCS7_free(token); - TS_TST_INFO_free(tst_info); - if (!ret) { - TS_RESP_free(resp); - resp = NULL; - } - TS_STATUS_INFO_free(si); - return resp; + PKCS7_free(token); + TS_TST_INFO_free(tst_info); + if (!ret) { + TS_RESP_free(resp); + resp = NULL; + } + TS_STATUS_INFO_free(si); + return resp; } static TS_RESP *create_response(CONF *conf, const char *section, char *engine, - char *queryfile, char *passin, - char *inkey, const EVP_MD *md, char *signer, - char *chain, const char *policy) -{ - int ret = 0; - TS_RESP *response = NULL; - BIO *query_bio = NULL; - TS_RESP_CTX *resp_ctx = NULL; + char *queryfile, char *passin, char *inkey, + const EVP_MD *md, char *signer, char *chain, + const char *policy) { + int ret = 0; + TS_RESP *response = NULL; + BIO *query_bio = NULL; + TS_RESP_CTX *resp_ctx = NULL; - if ((query_bio = BIO_new_file(queryfile, "rb")) == NULL) - goto end; - if ((section = TS_CONF_get_tsa_section(conf, section)) == NULL) - goto end; - if ((resp_ctx = TS_RESP_CTX_new()) == NULL) - goto end; - if (!TS_CONF_set_serial(conf, section, serial_cb, resp_ctx)) - goto end; -# ifndef OPENSSL_NO_ENGINE - if (!TS_CONF_set_crypto_device(conf, section, engine)) - goto end; -# endif - if (!TS_CONF_set_signer_cert(conf, section, signer, resp_ctx)) - goto end; - if (!TS_CONF_set_certs(conf, section, chain, resp_ctx)) - goto end; - if (!TS_CONF_set_signer_key(conf, section, inkey, passin, resp_ctx)) - goto end; + if ((query_bio = BIO_new_file(queryfile, "rb")) == NULL) + goto end; + if ((section = TS_CONF_get_tsa_section(conf, section)) == NULL) + goto end; + if ((resp_ctx = TS_RESP_CTX_new()) == NULL) + goto end; + if (!TS_CONF_set_serial(conf, section, serial_cb, resp_ctx)) + goto end; +#ifndef OPENSSL_NO_ENGINE + if (!TS_CONF_set_crypto_device(conf, section, engine)) + goto end; +#endif + if (!TS_CONF_set_signer_cert(conf, section, signer, resp_ctx)) + goto end; + if (!TS_CONF_set_certs(conf, section, chain, resp_ctx)) + goto end; + if (!TS_CONF_set_signer_key(conf, section, inkey, passin, resp_ctx)) + goto end; -// if (md) { -// if (!TS_RESP_CTX_set_signer_digest(resp_ctx, md)) -// goto end; -// } else if (!TS_CONF_set_signer_digest(conf, section, NULL, resp_ctx)) { -// goto end; -// } + // if (md) { + // if (!TS_RESP_CTX_set_signer_digest(resp_ctx, md)) + // goto end; + // } else if (!TS_CONF_set_signer_digest(conf, section, NULL, resp_ctx)) { + // goto end; + // } - if (!TS_CONF_set_def_policy(conf, section, policy, resp_ctx)) - goto end; - if (!TS_CONF_set_policies(conf, section, resp_ctx)) - goto end; - if (!TS_CONF_set_digests(conf, section, resp_ctx)) - goto end; - if (!TS_CONF_set_accuracy(conf, section, resp_ctx)) - goto end; - if (!TS_CONF_set_clock_precision_digits(conf, section, resp_ctx)) - goto end; - if (!TS_CONF_set_ordering(conf, section, resp_ctx)) - goto end; - if (!TS_CONF_set_tsa_name(conf, section, resp_ctx)) - goto end; - if (!TS_CONF_set_ess_cert_id_chain(conf, section, resp_ctx)) - goto end; - if ((response = TS_RESP_create_response(resp_ctx, query_bio)) == NULL) - goto end; - ret = 1; + if (!TS_CONF_set_def_policy(conf, section, policy, resp_ctx)) + goto end; + if (!TS_CONF_set_policies(conf, section, resp_ctx)) + goto end; + if (!TS_CONF_set_digests(conf, section, resp_ctx)) + goto end; + if (!TS_CONF_set_accuracy(conf, section, resp_ctx)) + goto end; + if (!TS_CONF_set_clock_precision_digits(conf, section, resp_ctx)) + goto end; + if (!TS_CONF_set_ordering(conf, section, resp_ctx)) + goto end; + if (!TS_CONF_set_tsa_name(conf, section, resp_ctx)) + goto end; + if (!TS_CONF_set_ess_cert_id_chain(conf, section, resp_ctx)) + goto end; + if ((response = TS_RESP_create_response(resp_ctx, query_bio)) == NULL) + goto end; + ret = 1; end: - if (!ret) { - TS_RESP_free(response); - response = NULL; - } - TS_RESP_CTX_free(resp_ctx); - BIO_free_all(query_bio); - return response; + if (!ret) { + TS_RESP_free(response); + response = NULL; + } + TS_RESP_CTX_free(resp_ctx); + BIO_free_all(query_bio); + return response; } -static ASN1_INTEGER *serial_cb(TS_RESP_CTX *ctx, void *data) -{ - const char *serial_file = (const char *)data; - ASN1_INTEGER *serial = next_serial(serial_file); +static ASN1_INTEGER *serial_cb(TS_RESP_CTX *ctx, void *data) { + const char *serial_file = (const char *)data; + ASN1_INTEGER *serial = next_serial(serial_file); - if (!serial) { - TS_RESP_CTX_set_status_info(ctx, TS_STATUS_REJECTION, - "Error during serial number " - "generation."); - TS_RESP_CTX_add_failure_info(ctx, TS_INFO_ADD_INFO_NOT_AVAILABLE); - } else - save_ts_serial(serial_file, serial); + if (!serial) { + TS_RESP_CTX_set_status_info(ctx, TS_STATUS_REJECTION, + "Error during serial number " + "generation."); + TS_RESP_CTX_add_failure_info(ctx, TS_INFO_ADD_INFO_NOT_AVAILABLE); + } else + save_ts_serial(serial_file, serial); - return serial; + return serial; } -static ASN1_INTEGER *next_serial(const char *serialfile) -{ - int ret = 0; - BIO *in = NULL; - ASN1_INTEGER *serial = NULL; - BIGNUM *bn = NULL; +static ASN1_INTEGER *next_serial(const char *serialfile) { + int ret = 0; + BIO *in = NULL; + ASN1_INTEGER *serial = NULL; + BIGNUM *bn = NULL; - if ((serial = ASN1_INTEGER_new()) == NULL) - goto err; + if ((serial = ASN1_INTEGER_new()) == NULL) + goto err; - if ((in = BIO_new_file(serialfile, "r")) == NULL) { - ERR_clear_error(); -// BIO_printf(bio_err, "Warning: could not open file %s for " -// "reading, using serial number: 1\n", serialfile); - if (!ASN1_INTEGER_set(serial, 1)) - goto err; - } else { - char buf[1024]; - if (!a2i_ASN1_INTEGER(in, serial, buf, sizeof(buf))) { -// BIO_printf(bio_err, "unable to load number from %s\n", -// serialfile); - goto err; - } - if ((bn = ASN1_INTEGER_to_BN(serial, NULL)) == NULL) - goto err; - ASN1_INTEGER_free(serial); - serial = NULL; - if (!BN_add_word(bn, 1)) - goto err; - if ((serial = BN_to_ASN1_INTEGER(bn, NULL)) == NULL) - goto err; - } - ret = 1; + if ((in = BIO_new_file(serialfile, "r")) == NULL) { + ERR_clear_error(); + // BIO_printf(bio_err, "Warning: could not open file %s for + //" + // "reading, using serial number: 1\n", + //serialfile); + if (!ASN1_INTEGER_set(serial, 1)) + goto err; + } else { + char buf[1024]; + if (!a2i_ASN1_INTEGER(in, serial, buf, sizeof(buf))) { + // BIO_printf(bio_err, "unable to load number from + //%s\n", + // serialfile); + goto err; + } + if ((bn = ASN1_INTEGER_to_BN(serial, NULL)) == NULL) + goto err; + ASN1_INTEGER_free(serial); + serial = NULL; + if (!BN_add_word(bn, 1)) + goto err; + if ((serial = BN_to_ASN1_INTEGER(bn, NULL)) == NULL) + goto err; + } + ret = 1; err: - if (!ret) { - ASN1_INTEGER_free(serial); - serial = NULL; - } - BIO_free_all(in); - BN_free(bn); - return serial; + if (!ret) { + ASN1_INTEGER_free(serial); + serial = NULL; + } + BIO_free_all(in); + BN_free(bn); + return serial; } -static int save_ts_serial(const char *serialfile, ASN1_INTEGER *serial) -{ - int ret = 0; - BIO *out = NULL; +static int save_ts_serial(const char *serialfile, ASN1_INTEGER *serial) { + int ret = 0; + BIO *out = NULL; - if ((out = BIO_new_file(serialfile, "w")) == NULL) - goto err; - if (i2a_ASN1_INTEGER(out, serial) <= 0) - goto err; - if (BIO_puts(out, "\n") <= 0) - goto err; - ret = 1; + if ((out = BIO_new_file(serialfile, "w")) == NULL) + goto err; + if (i2a_ASN1_INTEGER(out, serial) <= 0) + goto err; + if (BIO_puts(out, "\n") <= 0) + goto err; + ret = 1; err: - if (!ret) -// BIO_printf(bio_err, "could not save serial number to %s\n", -// serialfile); - BIO_free_all(out); - return ret; + if (!ret) + // BIO_printf(bio_err, "could not save serial number to + //%s\n", + // serialfile); + BIO_free_all(out); + return ret; } diff --git a/src/lib/utils.c b/src/lib/utils.c index 69c3cf4..319ecbc 100644 --- a/src/lib/utils.c +++ b/src/lib/utils.c @@ -7,8 +7,7 @@ #include #include "utils.h" -void skeleton_daemon() -{ +void skeleton_daemon() { pid_t pid; /* Fork off the parent process */ @@ -27,7 +26,7 @@ void skeleton_daemon() exit(EXIT_FAILURE); /* Catch, ignore and handle signals */ - //TODO: Implement a working signal handler */ + // TODO: Implement a working signal handler */ signal(SIGCHLD, SIG_IGN); signal(SIGHUP, SIG_IGN); @@ -51,11 +50,10 @@ void skeleton_daemon() /* Close all open file descriptors */ int x; - for (x = sysconf(_SC_OPEN_MAX); x>0; x--) - { - close (x); + for (x = sysconf(_SC_OPEN_MAX); x > 0; x--) { + close(x); } /* Open the log file */ - openlog ("firstdaemon", LOG_PID, LOG_DAEMON); + openlog("firstdaemon", LOG_PID, LOG_DAEMON); }