them in.
*/
static bool ecdsa_keygen(bool ask) {
- ecdsa_t key;
+ ecdsa_t *key;
FILE *f;
char *pubname, *privname;
fprintf(stderr, "Generating ECDSA keypair:\n");
- if(!ecdsa_generate(&key)) {
+ if(!(key = ecdsa_generate())) {
fprintf(stderr, "Error during key generation!\n");
return false;
} else
fchmod(fileno(f), 0600);
#endif
- ecdsa_write_pem_private_key(&key, f);
+ if(!ecdsa_write_pem_private_key(key, f)) {
+ fprintf(stderr, "Error writing private key!\n");
+ ecdsa_free(key);
+ fclose(f);
+ return false;
+ }
fclose(f);
if(!f)
return false;
- char *pubkey = ecdsa_get_base64_public_key(&key);
+ char *pubkey = ecdsa_get_base64_public_key(key);
fprintf(f, "ECDSAPublicKey = %s\n", pubkey);
free(pubkey);
fclose(f);
+ ecdsa_free(key);
return true;
}
them in.
*/
static bool rsa_keygen(int bits, bool ask) {
- rsa_t key;
+ rsa_t *key;
FILE *f;
char *pubname, *privname;
fprintf(stderr, "Generating %d bits keys:\n", bits);
- if(!rsa_generate(&key, bits, 0x10001)) {
+ if(!(key = rsa_generate(bits, 0x10001))) {
fprintf(stderr, "Error during key generation!\n");
return false;
} else
fchmod(fileno(f), 0600);
#endif
- rsa_write_pem_private_key(&key, f);
+ if(!rsa_write_pem_private_key(key, f)) {
+ fprintf(stderr, "Error writing private key!\n");
+ fclose(f);
+ rsa_free(key);
+ return false;
+ }
fclose(f);
if(!f)
return false;
- rsa_write_pem_public_key(&key, f);
+ if(!rsa_write_pem_public_key(key, f)) {
+ fprintf(stderr, "Error writing public key!\n");
+ fclose(f);
+ rsa_free(key);
+ return false;
+ }
fclose(f);
+ rsa_free(key);
return true;
}
c = "tincd";
int nargc = 0;
- char **nargv = xmalloc_and_zero((optind + argc) * sizeof *nargv);
+ char **nargv = xzalloc((optind + argc) * sizeof *nargv);
nargv[nargc++] = c;
for(int i = 1; i < optind; i++)
FILE *f = fopen(filename, "r");
if(!f) {
- if(action < 0 || errno != ENOENT) {
- fprintf(stderr, "Could not open configuration file %s: %s\n", filename, strerror(errno));
- return 1;
- }
-
- // If it doesn't exist, create it.
- f = fopen(filename, "a+");
- if(!f) {
- fprintf(stderr, "Could not create configuration file %s: %s\n", filename, strerror(errno));
- return 1;
- } else {
- fprintf(stderr, "Created configuration file %s.\n", filename);
- }
+ fprintf(stderr, "Could not open configuration file %s: %s\n", filename, strerror(errno));
+ return 1;
}
char *tmpfile = NULL;