aboutsummaryrefslogtreecommitdiffstats
path: root/src/crypto/dh_group5.c
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2009-10-11 16:17:22 (GMT)
committerJouni Malinen <j@w1.fi>2009-10-11 16:17:22 (GMT)
commitf042122a57e093b076680f7b849de709b0357679 (patch)
tree27a91d968376f184d0f12f54b67135bcfc212b03 /src/crypto/dh_group5.c
parentdd01b1ff9d8a19c1e1b7e40d6df7d838d2ac34bb (diff)
downloadhostap-f042122a57e093b076680f7b849de709b0357679.zip
hostap-f042122a57e093b076680f7b849de709b0357679.tar.gz
hostap-f042122a57e093b076680f7b849de709b0357679.tar.bz2
Allow the internal DH implementation to be overridden
Crypto library wrappers can now override the internal DH (group 5) implementation. As a starting point, this is done with OpenSSL. The new mechanism is currently available only for WPS (i.e., IKEv2 still depends on the internal DH implementation).
Diffstat (limited to 'src/crypto/dh_group5.c')
-rw-r--r--src/crypto/dh_group5.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/crypto/dh_group5.c b/src/crypto/dh_group5.c
new file mode 100644
index 0000000..8c475bf
--- /dev/null
+++ b/src/crypto/dh_group5.c
@@ -0,0 +1,40 @@
+/*
+ * Diffie-Hellman group 5 operations
+ * Copyright (c) 2009, Jouni Malinen <j@w1.fi>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Alternatively, this software may be distributed under the terms of BSD
+ * license.
+ *
+ * See README and COPYING for more details.
+ */
+
+#include "includes.h"
+
+#include "common.h"
+#include "dh_groups.h"
+#include "dh_group5.h"
+
+
+void * dh5_init(struct wpabuf **priv, struct wpabuf **publ)
+{
+ *publ = dh_init(dh_groups_get(5), priv);
+ if (*publ == 0)
+ return NULL;
+ return (void *) 1;
+}
+
+
+struct wpabuf * dh5_derive_shared(void *ctx, const struct wpabuf *peer_public,
+ const struct wpabuf *own_private)
+{
+ return dh_derive_shared(peer_public, own_private, dh_groups_get(5));
+}
+
+
+void dh5_free(void *ctx)
+{
+}