18 #define CERT_BUF_LEN 4096
72 int ret = 0, pret = 0;
75 f = fopen(certfile,
"r");
89 ret = ferror(f) || !feof(f);
113 cobj = calloc(1,
sizeof(*cobj));
141 fprintf(stdout,
"signature:\n---\n%s---\n", (
char *)
blob_data(v));
148 fprintf(stdout,
"payload:\n---\n%s\n---\n", json);
159 unsigned int count = 0;
162 fprintf(stderr,
"cannot parse cert %s\n", basename((
char *) certfile));
167 fprintf(stdout,
"=== CHAIN ELEMENT %02u ===\n", ++count);
174 int main(
int argc,
char *argv[])
177 fprintf(stderr,
"Usage: %s <cert.ucert>\n", argv[0]);
int blob_parse_untrusted(struct blob_attr *attr, size_t attr_len, struct blob_attr **data, const struct blob_attr_info *info, int max)
struct blob_attr * blob_memdup(struct blob_attr *attr)
static size_t blob_pad_len(const struct blob_attr *attr)
static struct blob_attr * blob_next(const struct blob_attr *attr)
static void * blob_data(const struct blob_attr *attr)
static char * blobmsg_format_json_indent(struct blob_attr *attr, bool list, int indent)
static void list_add_tail(struct list_head *_new, struct list_head *head)
#define list_for_each_entry(p, h, field)
struct blob_attr * cert[CERT_ATTR_MAX]
int main(int argc, char *argv[])
static const struct blob_attr_info cert_policy[CERT_ATTR_MAX]
static void cert_dump_blob(struct blob_attr *cert[CERT_ATTR_MAX])
static int cert_load(const char *certfile, struct list_head *chain)
@ CERT_PL_ATTR_KEY_FINGERPRINT
@ CERT_PL_ATTR_EXPIRETIME
@ CERT_PL_ATTR_VALIDFROMTIME
static int cert_dump(const char *certfile)
FILE(GLOB test_cases "test-*.c") MACRO(ADD_FUZZER_TEST name) ADD_EXECUTABLE($