Move cookie callbacks implementation to own module
diff --git a/include/polarssl/ssl.h b/include/polarssl/ssl.h
index e526098..7493fce 100644
--- a/include/polarssl/ssl.h
+++ b/include/polarssl/ssl.h
@@ -1083,8 +1083,6 @@
  *                 network stack. Used for HelloVerifyRequest with DTLS.
  *                 This is *not* used to route the actual packets.
  *
- * \warning (TODO-DTLS) May change and even be removed before 2.0.0!
- *
  * \param ssl      SSL context
  * \param info     Transport-level info identifying the client (eg IP + port)
  * \param ilen     Length of info in bytes
@@ -1147,45 +1145,6 @@
                            ssl_cookie_write_t *f_cookie_write,
                            ssl_cookie_check_t *f_cookie_check,
                            void *p_cookie );
-
-/* Note: the next things up to endif are to be moved in a separate module */
-
-/**
- * \brief          Default cookie generation function.
- *                 (See description of ssl_cookie_write_t.)
- */
-ssl_cookie_write_t ssl_cookie_write;
-
-/**
- * \brief          Default cookie verification function.
- *                 (See description of ssl_cookie_check_t.)
- */
-ssl_cookie_check_t ssl_cookie_check;
-
-/**
- * \brief          Context for the default cookie functions.
- */
-typedef struct
-{
-    md_context_t    hmac_ctx;
-} ssl_cookie_ctx;
-
-/**
- * \brief          Initialize cookie context
- */
-void ssl_cookie_init( ssl_cookie_ctx *ctx );
-
-/**
- * \brief          Setup cookie context (generate keys)
- */
-int ssl_cookie_setup( ssl_cookie_ctx *ctx,
-                      int (*f_rng)(void *, unsigned char *, size_t),
-                      void *p_rng );
-
-/**
- * \brief          Free cookie context
- */
-void ssl_cookie_free( ssl_cookie_ctx *ctx );
 #endif /* POLARSSL_SSL_DTLS_HELLO_VERIFY */
 
 /**
diff --git a/include/polarssl/ssl_cookie.h b/include/polarssl/ssl_cookie.h
new file mode 100644
index 0000000..a28f338
--- /dev/null
+++ b/include/polarssl/ssl_cookie.h
@@ -0,0 +1,85 @@
+/**
+ * \file ssl_cookie.h
+ *
+ * \brief DTLS cookie callbacks implementation
+ *
+ *  Copyright (C) 2014, Brainspark B.V.
+ *
+ *  This file is part of PolarSSL (http://www.polarssl.org)
+ *  Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
+ *
+ *  All rights reserved.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#ifndef POLARSSL_SSL_COOKIE_H
+#define POLARSSL_SSL_COOKIE_H
+
+#include "ssl.h"
+
+/**
+ * \name SECTION: Module settings
+ *
+ * The configuration options you can set for this module are in this section.
+ * Either change them in config.h or define them on the compiler command line.
+ * \{
+ */
+
+/* \} name SECTION: Module settings */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief          Context for the default cookie functions.
+ */
+typedef struct
+{
+    md_context_t    hmac_ctx;
+} ssl_cookie_ctx;
+
+/**
+ * \brief          Initialize cookie context
+ */
+void ssl_cookie_init( ssl_cookie_ctx *ctx );
+
+/**
+ * \brief          Setup cookie context (generate keys)
+ */
+int ssl_cookie_setup( ssl_cookie_ctx *ctx,
+                      int (*f_rng)(void *, unsigned char *, size_t),
+                      void *p_rng );
+
+/**
+ * \brief          Free cookie context
+ */
+void ssl_cookie_free( ssl_cookie_ctx *ctx );
+
+/**
+ * \brief          Generate cookie, see \c ssl_cookie_write_t
+ */
+ssl_cookie_write_t ssl_cookie_write;
+
+/**
+ * \brief          Verify cookie, see \c ssl_cookie_write_t
+ */
+ssl_cookie_check_t ssl_cookie_check;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ssl_cookie.h */