moved key output to main.c, caught some bugs

pull/13/head
PsychoMario 10 years ago
parent b34336ab4b
commit 3aff928daf

@ -770,6 +770,30 @@ main(int argc, char *argv[])
} }
} }
if (opts->certgendir) {
unsigned char *keyfpr = malloc(SSL_KEY_IDSZ);
if(ssl_key_identifier_sha1(opts->key, keyfpr)) {
fprintf(stderr, "%s: error generating RSA fingerprint\n", argv0);
exit(EXIT_FAILURE);
}
char *keyfn;
asprintf(&keyfn, "%s/%02X%02X%02X%02X%02X%02X%02X%02X%02X"
"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X.key",
opts->certgendir,
keyfpr[0], keyfpr[1], keyfpr[2], keyfpr[3], keyfpr[4],
keyfpr[5], keyfpr[6], keyfpr[7], keyfpr[8], keyfpr[9],
keyfpr[10], keyfpr[11], keyfpr[12], keyfpr[13], keyfpr[14],
keyfpr[15], keyfpr[16], keyfpr[17], keyfpr[18], keyfpr[19]);
FILE *keyfd = fopen(keyfn,"w");
if (!keyfd) {
log_err_printf("Failed to open '%s' for writing: %s\n",
keyfn, strerror(errno));
} else {
PEM_write_PrivateKey(keyfd, opts->key, NULL, 0, 0, NULL, NULL);
fclose(keyfd);
}
}
/* usage checks after defaults */ /* usage checks after defaults */
if (opts->dropgroup && !opts->dropuser) { if (opts->dropgroup && !opts->dropuser) {
fprintf(stderr, "%s: -m depends on -u.\n", argv0); fprintf(stderr, "%s: -m depends on -u.\n", argv0);

@ -823,25 +823,16 @@ pxy_srccert_create(pxy_conn_ctx_t *ctx)
newfpr[15], newfpr[16], newfpr[17], newfpr[18], newfpr[19]); newfpr[15], newfpr[16], newfpr[17], newfpr[18], newfpr[19]);
if (ctx->opts->certgendir) { if (ctx->opts->certgendir) {
char *keyfn, *crtfn; char *crtfn;
asprintf(&keyfn, "%s/%s-%s.key", ctx->opts->certgendir, *ctx->origfpr, *ctx->newfpr);
asprintf(&crtfn, "%s/%s-%s.crt", ctx->opts->certgendir, *ctx->origfpr, *ctx->newfpr); asprintf(&crtfn, "%s/%s-%s.crt", ctx->opts->certgendir, *ctx->origfpr, *ctx->newfpr);
FILE *keyfd, *crtfd; FILE *crtfd;
keyfd = fopen(keyfn, "w");
crtfd = fopen(crtfn, "w"); crtfd = fopen(crtfn, "w");
if (keyfd) {
PEM_write_PrivateKey(keyfd, cert->key, NULL, 0, 0, NULL, NULL);
fclose(keyfd);
} else {
log_err_printf("Failed to open '%s' for writing: %s\n",
keyfn, strerror(errno));
}
if (crtfd) { if (crtfd) {
PEM_write_X509(crtfd, cert->crt); PEM_write_X509(crtfd, cert->crt);
fclose(crtfd); fclose(crtfd);
} else { } else {
log_err_printf("Failed to open '%s' for writing: %s\n", log_err_printf("Failed to open '%s' for writing: %s\n",
keyfn, strerror(errno)); crtfn, strerror(errno));
} }
if (ctx->opts->writeorig) { if (ctx->opts->writeorig) {
char *origfn; char *origfn;
@ -852,7 +843,7 @@ pxy_srccert_create(pxy_conn_ctx_t *ctx)
fclose(origfd); fclose(origfd);
} else { } else {
log_err_printf("Failed to open '%s' for writing: %s\n", log_err_printf("Failed to open '%s' for writing: %s\n",
keyfn, strerror(errno)); origfn, strerror(errno));
} }
} }
} }

Loading…
Cancel
Save