summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2016-07-07 14:09:44 +0000
committerjsing <>2016-07-07 14:09:44 +0000
commit793bbb74db9be5898f5b404a5091e6ef33f70a51 (patch)
tree75299acad4a63e35a7b861f9f2ee3bf9e73e68f2
parent025e7d6501957fe925241c7e73c233c203a19711 (diff)
downloadopenbsd-793bbb74db9be5898f5b404a5091e6ef33f70a51.tar.gz
openbsd-793bbb74db9be5898f5b404a5091e6ef33f70a51.tar.bz2
openbsd-793bbb74db9be5898f5b404a5091e6ef33f70a51.zip
Revert previous since the libtls change has been reverted.
-rw-r--r--src/usr.bin/nc/netcat.c40
1 files changed, 24 insertions, 16 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c
index 5673dd5b18..e3f6074ab4 100644
--- a/src/usr.bin/nc/netcat.c
+++ b/src/usr.bin/nc/netcat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: netcat.c,v 1.158 2016/07/06 16:31:18 jsing Exp $ */ 1/* $OpenBSD: netcat.c,v 1.159 2016/07/07 14:09:44 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> 3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
4 * Copyright (c) 2015 Bob Beck. All rights reserved. 4 * Copyright (c) 2015 Bob Beck. All rights reserved.
@@ -65,6 +65,7 @@
65#define POLL_NETIN 2 65#define POLL_NETIN 2
66#define POLL_STDOUT 3 66#define POLL_STDOUT 3
67#define BUFSIZE 16384 67#define BUFSIZE 16384
68#define DEFAULT_CA_FILE "/etc/ssl/cert.pem"
68 69
69#define TLS_LEGACY (1 << 1) 70#define TLS_LEGACY (1 << 1)
70#define TLS_NOVERIFY (1 << 2) 71#define TLS_NOVERIFY (1 << 2)
@@ -98,11 +99,17 @@ int rtableid = -1;
98int usetls; /* use TLS */ 99int usetls; /* use TLS */
99char *Cflag; /* Public cert file */ 100char *Cflag; /* Public cert file */
100char *Kflag; /* Private key file */ 101char *Kflag; /* Private key file */
101char *Rflag; /* Root CA file */ 102char *Rflag = DEFAULT_CA_FILE; /* Root CA file */
102int tls_cachanged; /* Using non-default CA file */ 103int tls_cachanged; /* Using non-default CA file */
103int TLSopt; /* TLS options */ 104int TLSopt; /* TLS options */
104char *tls_expectname; /* required name in peer cert */ 105char *tls_expectname; /* required name in peer cert */
105char *tls_expecthash; /* required hash of peer cert */ 106char *tls_expecthash; /* required hash of peer cert */
107uint8_t *cacert;
108size_t cacertlen;
109uint8_t *privkey;
110size_t privkeylen;
111uint8_t *pubcert;
112size_t pubcertlen;
106 113
107int timeout = -1; 114int timeout = -1;
108int family = AF_UNSPEC; 115int family = AF_UNSPEC;
@@ -437,22 +444,29 @@ main(int argc, char *argv[])
437 } 444 }
438 445
439 if (usetls) { 446 if (usetls) {
447 if (Rflag && (cacert = tls_load_file(Rflag, &cacertlen, NULL)) == NULL)
448 errx(1, "unable to load root CA file %s", Rflag);
449 if (Cflag && (pubcert = tls_load_file(Cflag, &pubcertlen, NULL)) == NULL)
450 errx(1, "unable to load TLS certificate file %s", Cflag);
451 if (Kflag && (privkey = tls_load_file(Kflag, &privkeylen, NULL)) == NULL)
452 errx(1, "unable to load TLS key file %s", Kflag);
453
440 if (Pflag) { 454 if (Pflag) {
441 if (pledge("stdio inet dns rpath tty", NULL) == -1) 455 if (pledge("stdio inet dns tty", NULL) == -1)
442 err(1, "pledge"); 456 err(1, "pledge");
443 } else if (pledge("stdio inet dns rpath", NULL) == -1) 457 } else if (pledge("stdio inet dns", NULL) == -1)
444 err(1, "pledge"); 458 err(1, "pledge");
445 459
446 if (tls_init() == -1) 460 if (tls_init() == -1)
447 errx(1, "unable to initialize TLS"); 461 errx(1, "unable to initialize TLS");
448 if ((tls_cfg = tls_config_new()) == NULL) 462 if ((tls_cfg = tls_config_new()) == NULL)
449 errx(1, "unable to allocate TLS config"); 463 errx(1, "unable to allocate TLS config");
450 if (Rflag && tls_config_set_ca_file(tls_cfg, Rflag) == -1) 464 if (Rflag && tls_config_set_ca_mem(tls_cfg, cacert, cacertlen) == -1)
451 errx(1, "%s", tls_config_error(tls_cfg)); 465 errx(1, "unable to set root CA file %s", Rflag);
452 if (Cflag && tls_config_set_cert_file(tls_cfg, Cflag) == -1) 466 if (Cflag && tls_config_set_cert_mem(tls_cfg, pubcert, pubcertlen) == -1)
453 errx(1, "%s", tls_config_error(tls_cfg)); 467 errx(1, "unable to set TLS certificate file %s", Cflag);
454 if (Kflag && tls_config_set_key_file(tls_cfg, Kflag) == -1) 468 if (Kflag && tls_config_set_key_mem(tls_cfg, privkey, privkeylen) == -1)
455 errx(1, "%s", tls_config_error(tls_cfg)); 469 errx(1, "unable to set TLS key file %s", Kflag);
456 if (TLSopt & TLS_LEGACY) { 470 if (TLSopt & TLS_LEGACY) {
457 tls_config_set_protocols(tls_cfg, TLS_PROTOCOLS_ALL); 471 tls_config_set_protocols(tls_cfg, TLS_PROTOCOLS_ALL);
458 tls_config_set_ciphers(tls_cfg, "legacy"); 472 tls_config_set_ciphers(tls_cfg, "legacy");
@@ -467,12 +481,6 @@ main(int argc, char *argv[])
467 "together"); 481 "together");
468 tls_config_insecure_noverifycert(tls_cfg); 482 tls_config_insecure_noverifycert(tls_cfg);
469 } 483 }
470
471 if (Pflag) {
472 if (pledge("stdio inet dns tty", NULL) == -1)
473 err(1, "pledge");
474 } else if (pledge("stdio inet dns", NULL) == -1)
475 err(1, "pledge");
476 } 484 }
477 if (lflag) { 485 if (lflag) {
478 struct tls *tls_cctx = NULL; 486 struct tls *tls_cctx = NULL;