diff options
Diffstat (limited to 'apps/s_client.c')
| -rw-r--r-- | apps/s_client.c | 20 | 
1 files changed, 18 insertions, 2 deletions
| diff --git a/apps/s_client.c b/apps/s_client.c index fc806eb67263b..3ba66056038a3 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -357,12 +357,14 @@ static void sc_usage(void)  	BIO_printf(bio_err," -tlsextdebug      - hex dump of all TLS extensions received\n");  	BIO_printf(bio_err," -status           - request certificate status from server\n");  	BIO_printf(bio_err," -no_ticket        - disable use of RFC4507bis session tickets\n"); -# if !defined(OPENSSL_NO_NEXTPROTONEG) +# ifndef OPENSSL_NO_NEXTPROTONEG  	BIO_printf(bio_err," -nextprotoneg arg - enable NPN extension, considering named protocols supported (comma-separated list)\n");  # endif  #endif  	BIO_printf(bio_err," -legacy_renegotiation - enable use of legacy renegotiation (dangerous)\n"); +#ifndef OPENSSL_NO_SRTP  	BIO_printf(bio_err," -use_srtp profiles - Offer SRTP key management with a colon-separated profile list\n"); +#endif   	BIO_printf(bio_err," -keymatexport label   - Export keying material using label\n");   	BIO_printf(bio_err," -keymatexportlen len  - Export len bytes of keying material (default 20)\n");  	} @@ -502,7 +504,9 @@ static char * MS_CALLBACK ssl_give_srp_client_pwd_cb(SSL *s, void *arg)  	}  #endif +#ifndef OPENSSL_NO_SRTP  	char *srtp_profiles = NULL; +#endif  # ifndef OPENSSL_NO_NEXTPROTONEG  /* This the context that we pass to next_proto_cb */ @@ -536,7 +540,7 @@ static int next_proto_cb(SSL *s, unsigned char **out, unsigned char *outlen, con  	ctx->status = SSL_select_next_proto(out, outlen, in, inlen, ctx->data, ctx->len);  	return SSL_TLSEXT_ERR_OK;  	} -# endif +# endif  /* ndef OPENSSL_NO_NEXTPROTONEG */  #endif  enum @@ -945,11 +949,13 @@ int MAIN(int argc, char **argv)  			jpake_secret = *++argv;  			}  #endif +#ifndef OPENSSL_NO_SRTP  		else if (strcmp(*argv,"-use_srtp") == 0)  			{  			if (--argc < 1) goto bad;  			srtp_profiles = *(++argv);  			} +#endif  		else if (strcmp(*argv,"-keymatexport") == 0)  			{  			if (--argc < 1) goto bad; @@ -1130,6 +1136,8 @@ bad:  			BIO_printf(bio_c_out, "PSK key given or JPAKE in use, setting client callback\n");  		SSL_CTX_set_psk_client_callback(ctx, psk_client_cb);  		} +#endif +#ifndef OPENSSL_NO_SRTP  	if (srtp_profiles != NULL)  		SSL_CTX_set_tlsext_use_srtp(ctx, srtp_profiles);  #endif @@ -1890,6 +1898,10 @@ end:  			print_stuff(bio_c_out,con,1);  		SSL_free(con);  		} +#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) +	if (next_proto.data) +		OPENSSL_free(next_proto.data); +#endif  	if (ctx != NULL) SSL_CTX_free(ctx);  	if (cert)  		X509_free(cert); @@ -1897,6 +1909,8 @@ end:  		EVP_PKEY_free(key);  	if (pass)  		OPENSSL_free(pass); +	if (vpm) +		X509_VERIFY_PARAM_free(vpm);  	if (cbuf != NULL) { OPENSSL_cleanse(cbuf,BUFSIZZ); OPENSSL_free(cbuf); }  	if (sbuf != NULL) { OPENSSL_cleanse(sbuf,BUFSIZZ); OPENSSL_free(sbuf); }  	if (mbuf != NULL) { OPENSSL_cleanse(mbuf,BUFSIZZ); OPENSSL_free(mbuf); } @@ -2061,6 +2075,7 @@ static void print_stuff(BIO *bio, SSL *s, int full)  	}  #endif +#ifndef OPENSSL_NO_SRTP   	{   	SRTP_PROTECTION_PROFILE *srtp_profile=SSL_get_selected_srtp_profile(s); @@ -2068,6 +2083,7 @@ static void print_stuff(BIO *bio, SSL *s, int full)  		BIO_printf(bio,"SRTP Extension negotiated, profile=%s\n",  			   srtp_profile->name);  	} +#endif  	SSL_SESSION_print(bio,SSL_get_session(s));  	if (keymatexportlabel != NULL) | 
