version 1.76, 2014/05/06 23:27:50 |
version 1.77, 2014/05/06 23:33:04 |
|
|
parseb64file(const char *filename, char *b64, void *buf, size_t buflen, |
parseb64file(const char *filename, char *b64, void *buf, size_t buflen, |
char *comment) |
char *comment) |
{ |
{ |
int rv; |
|
char *commentend, *b64end; |
char *commentend, *b64end; |
|
|
commentend = strchr(b64, '\n'); |
commentend = strchr(b64, '\n'); |
|
|
if (!b64end) |
if (!b64end) |
errx(1, "missing new line after b64 in %s", filename); |
errx(1, "missing new line after b64 in %s", filename); |
*b64end = '\0'; |
*b64end = '\0'; |
rv = b64_pton(commentend + 1, buf, buflen); |
if (b64_pton(commentend + 1, buf, buflen) != buflen) |
if (rv != buflen) |
|
errx(1, "invalid b64 encoding in %s", filename); |
errx(1, "invalid b64 encoding in %s", filename); |
if (memcmp(buf, PKALG, 2) != 0) |
if (memcmp(buf, PKALG, 2) != 0) |
errx(1, "unsupported file %s", filename); |
errx(1, "unsupported file %s", filename); |