From fd2ef07f372819e4eccbd85b7a0388c9c41eb31d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 8 Jan 2018 21:47:56 +0100 Subject: tests: Move helper functions to a common file Signed-off-by: Andreas Schneider --- tests/torture_pki.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 tests/torture_pki.c (limited to 'tests/torture_pki.c') diff --git a/tests/torture_pki.c b/tests/torture_pki.c new file mode 100644 index 00000000..07c01094 --- /dev/null +++ b/tests/torture_pki.c @@ -0,0 +1,91 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "torture_pki.h" + +char *torture_pki_read_file(const char *filename) +{ + char *key; + int fd; + int size; + int rc; + struct stat sb; + + if (filename == NULL || filename[0] == '\0') { + return NULL; + } + + fd = open(filename, O_RDONLY); + if (fd < 0) { + return NULL; + } + + rc = fstat(fd, &sb); + if (rc != 0) { + close(fd); + return NULL; + } + + key = malloc(sb.st_size + 1); + if (key == NULL) { + close(fd); + return NULL; + } + + size = read(fd, key, sb.st_size); + close(fd); + if (size != sb.st_size) { + free(key); + return NULL; + } + + key[size] = '\0'; + return key; +} + +int torture_read_one_line(const char *filename, char *buffer, size_t len) +{ + FILE *fp; + size_t nmemb; + + fp = fopen(filename, "r"); + if (fp == NULL) { + return -1; + } + + nmemb = fread(buffer, len - 2, 1, fp); + if (nmemb != 0 || ferror(fp)) { + fclose(fp); + return -1; + } + buffer[len - 1] = '\0'; + + fclose(fp); + + return 0; +} + +/** + * @internal + * + * Returns the character len of a public key string, omitting the comment part + */ +size_t torture_pubkey_len(const char *pubkey) +{ + const char *ptr; + + ptr = strchr(pubkey, ' '); + if (ptr != NULL) { + ptr = strchr(ptr + 1, ' '); + if (ptr != NULL) { + return ptr - pubkey; + } + } + + return 0; +} -- cgit v1.2.3