Add 1024-bit Diffie-Hellman parameters to vconn-ssl.

1024-bit Diffie-Hellman is somewhat weak, but I haven't been able to
figure out how to make OpenSSL use longer Diffie-Hellman keys than that.
If this isn't available, OpenSSL doesn't let connections proceed.

This change should be reverted when we figure out how to make OpenSSL
use longer Diffie-Hellman keys.
This commit is contained in:
Ben Pfaff committed 2008-03-27 17:50:33 -07:00
1 parent 5875f5b634
commit 5f9a684de5
4 files changed
+16 -3

No files matched your search

+3 -2
View File
@@ -30,12 +30,13 @@ if HAVE_OPENSSL
libopenflow_la_SOURCES += \
vconn-ssl.c \
dhparams.c
dhparams.c: dh2048.pem dh4096.pem
dhparams.c: dh1024.pem dh2048.pem dh4096.pem
(echo '#include "dhparams.h"' && \
openssl dhparam -C -in $(srcdir)/dh1024.pem -noout && \
openssl dhparam -C -in $(srcdir)/dh2048.pem -noout && \
openssl dhparam -C -in $(srcdir)/dh4096.pem -noout) \
| sed 's/\(get_dh[0-9]*\)()/\1(void)/' > dhparams.c.tmp
mv dhparams.c.tmp dhparams.c
endif
EXTRA_DIST = dh2048.pem dh4096.pem dhparams.h
EXTRA_DIST = dh1024.pem dh2048.pem dh4096.pem dhparams.h
+10
View File
@@ -0,0 +1,10 @@
-----BEGIN DH PARAMETERS-----
MIGHAoGBAPSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsY
jY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6
ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpL3jHAgEC
-----END DH PARAMETERS-----
These are the 1024 bit DH parameters from "Assigned Number for SKIP Protocols"
(http://www.skip-vpn.org/spec/numbers.html).
See there for how they were generated.
Note that g is not a generator, but this is not a problem since p is a safe prime.
+1
View File
@@ -3,6 +3,7 @@
#include <openssl/dh.h>
DH *get_dh1024(void);
DH *get_dh2048(void);
DH *get_dh4096(void);
+2 -1
View File
@@ -674,13 +674,14 @@ tmp_dh_callback(SSL *ssl, int is_export UNUSED, int keylength)
};
static struct dh dh_table[] = {
{1024, NULL, get_dh1024},
{2048, NULL, get_dh2048},
{4096, NULL, get_dh4096},
};
struct dh *dh;
for (dh = dh_table; dh < &dh[ARRAY_SIZE(dh_table)]; dh++) {
for (dh = dh_table; dh < &dh_table[ARRAY_SIZE(dh_table)]; dh++) {
if (dh->keylength == keylength) {
if (!dh->dh) {
dh->dh = dh->constructor();