/* on error yields NULL; o/w returns a cert */ cert * cert_read (const char *cert_file) { int fdcert = open (cert_file, O_RDONLY); char *raw_cert = (fdcert == -1) ? NULL : import_from_file (fdcert); cert *c = raw_cert ? cert_import (raw_cert) : NULL; return c; }
char * import_sk_from_file (char **raw_sk_p, size_t *raw_len_p, int fdsk) { char *armored_key = import_from_file (fdsk); ssize_t dearmored_len = dearmor64len (armored_key); if ((-1 == dearmored_len)) { /* error when dearmoring */ *raw_sk_p = NULL; *raw_len_p = 0; } else { *raw_len_p = (size_t) dearmored_len; *raw_sk_p = (char *) malloc (dearmored_len * sizeof (char)); dearmor64 (*raw_sk_p, armored_key); } return (*raw_sk_p); }