unsigned char *buf = NULL;
size_t len = 0;
if (!Mmap(&buf, &len, argv[i])) {
+ fprintf(stderr, "%s: %s\n", argv[i], strerror(errno));
exit(EXIT_FAILURE);
}
fputs(argv[i], stdout);
size_t off = 0;
enum YACErr err = YACCerParse(&(cers[i - 1]), &off, &failReason, buf, len);
if (err != YACErrNo) {
- fprintf(stderr, "%s\n", failReason);
+ fprintf(stderr, "%s: %s\n", argv[i], failReason);
return EXIT_FAILURE;
}
fputs("cid:", stdout);
struct YACCerSigVerifier sigVerifiers[] = {
{.algo = "gost3410-256A", .func = gost3410SignatureVerifier},
{.algo = "gost3410-512C", .func = gost3410SignatureVerifier},
+ {.algo = NULL},
};
- struct YACCerVerifyOpts opts = {
- .t = now, .sigVerifiers = sigVerifiers, .sigVerifiersLen = 2};
+ struct YACCerVerifyOpts opts = {.t = now, .sigVerifiers = sigVerifiers};
struct YACCer *toVerify = &(cers[0]);
struct YACCer *verifier = NULL;
(*failReason) = "bad /sigs/./tbs/exp/since value";
return YACErrUnsatisfiedSchema;
}
+ err = YACTimespecToUTC(&(cer->since));
+ if (err != YACErrNo) {
+ (*failReason) = "bad /sigs/./tbs/exp/since UTC value";
+ return YACErrUnsatisfiedSchema;
+ }
err = YACTAI64ToTimespec(
&(cer->till),
items->list[idx + 2].atom.v.str.ptr,
(*failReason) = "bad /sigs/./tbs/exp/till value";
return YACErrUnsatisfiedSchema;
}
+ err = YACTimespecToUTC(&(cer->till));
+ if (err != YACErrNo) {
+ (*failReason) = "bad /sigs/./tbs/exp/till UTC value";
+ return YACErrUnsatisfiedSchema;
+ }
}
sigIdx = items->list[sigIdx].next;
}
const size_t items = 5;
struct YACItem tbsItems[5];
memset(&tbsItems, 0, sizeof tbsItems);
- struct YACItems tbs = {.list = tbsItems, .offsets=NULL, .len=items, .cap=-1};
+ struct YACItems tbs = {
+ .list = tbsItems, .offsets = NULL, .len = items, .cap = -1};
tbsItems[0].atom.typ = YACItemMap;
tbsItems[0].atom.v.list.head = 1;
}
off += got;
}
- for (size_t i = 0; i < opts.sigVerifiersLen; i++) {
+ for (size_t i = 0; opts.sigVerifiers[i].algo != NULL; i++) {
if (!YACStrEqual(&(pubA->atom), opts.sigVerifiers[i].algo)) {
continue;
}