aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-01-21 15:11:38 +0100
committerMartin Willi <martin@revosec.ch>2010-08-03 15:39:24 +0200
commitf7f63c52e14c88dde2417c6ddccd2b4e12d3f06a (patch)
tree07a8f690652ae999d11e7e6cc502f19ce7f1a693 /src/charon
parentb173819e5d2d4b102440f599d1ac5b79d7478f43 (diff)
downloadstrongswan-f7f63c52e14c88dde2417c6ddccd2b4e12d3f06a.tar.bz2
strongswan-f7f63c52e14c88dde2417c6ddccd2b4e12d3f06a.tar.xz
Added some TLS constants
Diffstat (limited to 'src/charon')
-rw-r--r--src/charon/plugins/eap_tls/Makefile.am2
-rw-r--r--src/charon/plugins/eap_tls/tls/tls.c46
-rw-r--r--src/charon/plugins/eap_tls/tls/tls.h126
3 files changed, 173 insertions, 1 deletions
diff --git a/src/charon/plugins/eap_tls/Makefile.am b/src/charon/plugins/eap_tls/Makefile.am
index 236e50d83..694b869e5 100644
--- a/src/charon/plugins/eap_tls/Makefile.am
+++ b/src/charon/plugins/eap_tls/Makefile.am
@@ -6,5 +6,5 @@ AM_CFLAGS = -rdynamic
plugin_LTLIBRARIES = libstrongswan-eap-tls.la
libstrongswan_eap_tls_la_SOURCES = eap_tls_plugin.h eap_tls_plugin.c \
- eap_tls.h eap_tls.c
+ eap_tls.h eap_tls.c tls/tls.h tls/tls.c
libstrongswan_eap_tls_la_LDFLAGS = -module -avoid-version
diff --git a/src/charon/plugins/eap_tls/tls/tls.c b/src/charon/plugins/eap_tls/tls/tls.c
new file mode 100644
index 000000000..930ae78b6
--- /dev/null
+++ b/src/charon/plugins/eap_tls/tls/tls.c
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2010 Martin Willi
+ * Copyright (C) 2010 revosec AG
+ *
+ * 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. See <http://www.fsf.org/copyleft/gpl.txt>.
+ *
+ * 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.
+ */
+
+#include "tls.h"
+
+ENUM(tls_version_names, SSL_2_0, TLS_1_2,
+ "SSLv2",
+ "SSLv3",
+ "TLS 1.0",
+ "TLS 1.1",
+ "TLS 1.2",
+);
+
+ENUM(tls_content_type_names, TLS_CHANGE_CIPHER_SPEC, TLS_APPLICATION_DATA,
+ "ChangeCipherSpec",
+ "Alert",
+ "Handshake",
+ "ApplicationData",
+);
+
+ENUM_BEGIN(tls_handshake_type_names, TLS_HELLO_REQUEST, TLS_SERVER_HELLO,
+ "HelloRequest",
+ "ClientHello",
+ "ServerHello");
+ENUM_NEXT(tls_handshake_type_names, TLS_CERTIFICATE, TLS_CLIENT_KEY_EXCHANGE, TLS_SERVER_HELLO,
+ "Certificate",
+ "ServerKeyExchange",
+ "CertificateRequest",
+ "ServerHelloDone",
+ "CertificateVerify",
+ "ClientKeyExchange");
+ENUM_NEXT(tls_handshake_type_names, TLS_FINISHED, TLS_FINISHED, TLS_CLIENT_KEY_EXCHANGE,
+ "Finished");
+ENUM_END(tls_handshake_type_names, TLS_FINISHED);
diff --git a/src/charon/plugins/eap_tls/tls/tls.h b/src/charon/plugins/eap_tls/tls/tls.h
new file mode 100644
index 000000000..d7a331756
--- /dev/null
+++ b/src/charon/plugins/eap_tls/tls/tls.h
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2010 Martin Willi
+ * Copyright (C) 2010 revosec AG
+ *
+ * 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. See <http://www.fsf.org/copyleft/gpl.txt>.
+ *
+ * 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.
+ */
+
+/**
+ * @defgroup tlsgroup tls
+ * @{ @ingroup eap_tls
+ *
+ * @defgroup tls tls
+ * @{ @ingroup tls
+ */
+
+#ifndef TLS_H_
+#define TLS_H_
+
+typedef enum tls_version_t tls_version_t;
+typedef enum tls_content_type_t tls_content_type_t;
+typedef enum tls_handshake_type_t tls_handshake_type_t;
+typedef enum tls_cipher_suite_t tls_cipher_suite_t;
+
+#include <library.h>
+
+/**
+ * TLS/SSL version numbers
+ */
+enum tls_version_t {
+ SSL_2_0 = 0x0200,
+ SSL_3_0 = 0x0300,
+ TLS_1_0 = 0x0301,
+ TLS_1_1 = 0x0302,
+ TLS_1_2 = 0x0303,
+};
+
+/**
+ * Enum names for tls_version_t
+ */
+extern enum_name_t *tls_version_names;
+
+/**
+ * TLS higher level content type
+ */
+enum tls_content_type_t {
+ TLS_CHANGE_CIPHER_SPEC = 20,
+ TLS_ALERT = 21,
+ TLS_HANDSHAKE = 22,
+ TLS_APPLICATION_DATA = 23,
+};
+
+/**
+ * Enum names for tls_content_type_t
+ */
+extern enum_name_t *tls_content_type_names;
+
+/**
+ * TLS handshake subtype
+ */
+enum tls_handshake_type_t {
+ TLS_HELLO_REQUEST = 0,
+ TLS_CLIENT_HELLO = 1,
+ TLS_SERVER_HELLO = 2,
+ TLS_CERTIFICATE = 11,
+ TLS_SERVER_KEY_EXCHANGE = 12,
+ TLS_CERTIFICATE_REQUEST = 13,
+ TLS_SERVER_HELLO_DONE = 14,
+ TLS_CERTIFICATE_VERIFY = 15,
+ TLS_CLIENT_KEY_EXCHANGE = 16,
+ TLS_FINISHED = 20,
+};
+
+/**
+ * Enum names for tls_handshake_type_t
+ */
+extern enum_name_t *tls_handshake_type_names;
+
+enum tls_cipher_suite_t {
+ TLS_NULL_WITH_NULL_NULL = 0x00,
+ TLS_RSA_WITH_NULL_MD5 = 0x01,
+ TLS_RSA_WITH_NULL_SHA = 0x02,
+ TLS_RSA_WITH_NULL_SHA256 = 0x3B,
+ TLS_RSA_WITH_RC4_128_MD5 = 0x04,
+ TLS_RSA_WITH_RC4_128_SHA = 0x05,
+ TLS_RSA_WITH_3DES_EDE_CBC_SHA = 0x0A,
+ TLS_RSA_WITH_AES_128_CBC_SHA = 0x2F,
+ TLS_RSA_WITH_AES_256_CBC_SHA = 0x35,
+ TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x3C,
+ TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x3D,
+ TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = 0x0D,
+ TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = 0x10,
+ TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 0x13,
+ TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 0x16,
+ TLS_DH_DSS_WITH_AES_128_CBC_SHA = 0x30,
+ TLS_DH_RSA_WITH_AES_128_CBC_SHA = 0x31,
+ TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 0x32,
+ TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x33,
+ TLS_DH_DSS_WITH_AES_256_CBC_SHA = 0x36,
+ TLS_DH_RSA_WITH_AES_256_CBC_SHA = 0x37,
+ TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 0x38,
+ TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x39,
+ TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = 0x3E,
+ TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = 0x3F,
+ TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 0x40,
+ TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x67,
+ TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = 0x68,
+ TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = 0x69,
+ TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 0x6A,
+ TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x6B,
+ TLS_DH_ANON_WITH_RC4_128_MD5 = 0x18,
+ TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA = 0x1B,
+ TLS_DH_ANON_WITH_AES_128_CBC_SHA = 0x34,
+ TLS_DH_ANON_WITH_AES_256_CBC_SHA = 0x3A,
+ TLS_DH_ANON_WITH_AES_128_CBC_SHA256 = 0x6C,
+ TLS_DH_ANON_WITH_AES_256_CBC_SHA256 = 0x6D,
+};
+
+#endif /** TLS_H_ @}*/