static int def_extension_cb(struct TS_resp_ctx *ctx, X509_EXTENSION *ext, void *data) { TS_RESP_CTX_set_status_info(ctx, TS_STATUS_REJECTION, "Unsupported extension."); TS_RESP_CTX_add_failure_info(ctx, TS_INFO_UNACCEPTED_EXTENSION); return 0; }
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); return serial; }
static int def_time_cb(struct TS_resp_ctx *ctx, void *data, long *sec, long *usec) { time_t t; if (time(&t) == (time_t)-1) { TSerr(TS_F_DEF_TIME_CB, TS_R_TIME_SYSCALL_ERROR); TS_RESP_CTX_set_status_info(ctx, TS_STATUS_REJECTION, "Time is not available."); TS_RESP_CTX_add_failure_info(ctx, TS_INFO_TIME_NOT_AVAILABLE); return 0; } *sec = (long)t; *usec = 0; return 1; }
static int def_time_cb(struct TS_resp_ctx *ctx, void *data, long *sec, long *usec) { struct timeval tv; if (gettimeofday(&tv, NULL) != 0) { TSerr(TS_F_DEF_TIME_CB, TS_R_TIME_SYSCALL_ERROR); TS_RESP_CTX_set_status_info(ctx, TS_STATUS_REJECTION, "Time is not available."); TS_RESP_CTX_add_failure_info(ctx, TS_INFO_TIME_NOT_AVAILABLE); return 0; } *sec = tv.tv_sec; *usec = tv.tv_usec; return 1; }
/* Use the gettimeofday function call. */ static int def_time_cb(struct TS_resp_ctx *ctx, void *data, long *sec, long *usec) { struct TINYCLR_SSL_TIMEVAL tv; if (TINYCLR_SSL_GETTIMEOFDAY(&tv, NULL) != 0) { TSerr(TS_F_DEF_TIME_CB, TS_R_TIME_SYSCALL_ERROR); TS_RESP_CTX_set_status_info(ctx, TS_STATUS_REJECTION, "Time is not available."); TS_RESP_CTX_add_failure_info(ctx, TS_INFO_TIME_NOT_AVAILABLE); return 0; } /* Return time to caller. */ *sec = tv.tv_sec; *usec = tv.tv_usec; return 1; }