LIBOPTS = $(LIBOPTS_LDADD)
endif
-bin_PROGRAMS = psktool gnutls-cli-debug certtool
+bin_PROGRAMS = psktool gnutls-cli-debug certtool gnutls-serv
if ENABLE_SRP
bin_PROGRAMS += srptool
endif
if ENABLE_OCSP
-bin_PROGRAMS += ocsptool gnutls-serv
+bin_PROGRAMS += ocsptool
if ENABLE_ANON
bin_PROGRAMS += gnutls-cli
endif
libcmd_ocsp_la_SOURCES = ocsptool-args.def
nodist_libcmd_ocsp_la_SOURCES = ocsptool-args.h ocsptool-args.c
+endif
+
gnutls_serv_SOURCES = \
list.h serv.c \
udp-serv.c udp-serv.h \
libcmd_serv_la_SOURCES = serv-args.def
nodist_libcmd_serv_la_SOURCES = serv-args.c serv-args.h
+if ENABLE_OCSP
if ENABLE_ANON
BENCHMARK_SRCS = benchmark-cipher.c benchmark.c benchmark.h benchmark-tls.c
/* These are global */
gnutls_srp_server_credentials_t srp_cred = NULL;
gnutls_psk_server_credentials_t psk_cred = NULL;
+#ifdef ENABLE_ANON
gnutls_anon_server_credentials_t dh_cred = NULL;
+#endif
gnutls_certificate_credentials_t cert_cred = NULL;
const int ssl_session_cache = 2048;
int ret;
unsigned i;
const char *err;
+#ifdef ENABLE_ALPN
gnutls_datum_t alpn[MAX_ALPN_PROTOCOLS];
+#endif
unsigned alpn_size;
unsigned flags = GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH | GNUTLS_ENABLE_RAWPK;
}
}
+#ifndef ENABLE_ALPN
+ if (alpn_protos_size != 0) {
+ fprintf(stderr, "ALPN is not supported\n");
+ exit(1);
+ }
+#else
alpn_size = MIN(MAX_ALPN_PROTOCOLS,alpn_protos_size);
for (i=0;i<alpn_size;i++) {
alpn[i].data = (void*)alpn_protos[i];
fprintf(stderr, "Error setting ALPN protocols: %s\n", gnutls_strerror(ret));
exit(1);
}
+#endif
+#ifdef ENABLE_ANON
gnutls_credentials_set(session, GNUTLS_CRD_ANON, dh_cred);
+#endif
if (srp_cred != NULL)
gnutls_credentials_set(session, GNUTLS_CRD_SRP, srp_cred);
}
#endif
+#if defined(ENABLE_DHE) || defined(ENABLE_ANON)
if (kx_alg == GNUTLS_KX_DHE_RSA || kx_alg == GNUTLS_KX_DHE_DSS) {
snprintf(tmp_buffer, tmp_buffer_size,
"Ephemeral DH using prime of <b>%d</b> bits.<br>\n",
gnutls_dh_get_prime_bits(session));
}
+#endif
tmp = gnutls_compression_get_name(gnutls_compression_get(session));
if (tmp == NULL)
"Warning: no private key and certificate pairs were set.\n");
}
+#ifndef ENABLE_OCSP
+ if (HAVE_OPT(IGNORE_OCSP_RESPONSE_ERRORS) || ocsp_responses_size != 0) {
+ fprintf(stderr, "OCSP is not supported!\n");
+ exit(1);
+ }
+#else
/* OCSP status-request TLS extension */
if (HAVE_OPT(IGNORE_OCSP_RESPONSE_ERRORS))
gnutls_certificate_set_flags(cert_cred, GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
exit(1);
}
}
+#endif
if (use_static_dh_params) {
+#if defined(ENABLE_DHE) || defined(ENABLE_ANON)
ret = gnutls_certificate_set_known_dh_params(cert_cred, GNUTLS_SEC_PARAM_MEDIUM);
if (ret < 0) {
fprintf(stderr, "Error while setting DH parameters: %s\n", gnutls_strerror(ret));
exit(1);
}
+#else
+ fprintf(stderr, "Setting DH parameters is not supported\n");
+ exit(1);
+#endif
} else {
gnutls_certificate_set_params_function(cert_cred, get_params);
}