[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r7436 - in libmicrohttpd/src: daemon daemon/https include t
From: |
gnunet |
Subject: |
[GNUnet-SVN] r7436 - in libmicrohttpd/src: daemon daemon/https include testcurl/https |
Date: |
Tue, 15 Jul 2008 19:19:39 -0600 (MDT) |
Author: lv-426
Date: 2008-07-15 19:19:39 -0600 (Tue, 15 Jul 2008)
New Revision: 7436
Modified:
libmicrohttpd/src/daemon/connection_https.c
libmicrohttpd/src/daemon/https/https_common.c
libmicrohttpd/src/include/microhttpsd.h
libmicrohttpd/src/testcurl/https/mhds_session_info_test.c
Log:
implemented MHD_get_session_info
Modified: libmicrohttpd/src/daemon/connection_https.c
===================================================================
--- libmicrohttpd/src/daemon/connection_https.c 2008-07-14 22:42:32 UTC (rev
7435)
+++ libmicrohttpd/src/daemon/connection_https.c 2008-07-16 01:19:39 UTC (rev
7436)
@@ -70,31 +70,28 @@
/* TODO impl */
}
-/* get cipher spec for this connection */
-gnutls_cipher_algorithm_t
-MHDS_get_session_cipher (struct MHD_Connection *session)
+union MHD_SessionInfo
+MHD_get_session_info (struct MHD_Connection *con, enum MHD_InfoType infoType)
{
- return gnutls_cipher_get (session->tls_session);
+ switch (infoType)
+ {
+ case MHS_INFO_CIPHER_ALGO:
+ return (union MHD_SessionInfo)
con->tls_session->security_parameters.read_bulk_cipher_algorithm;
+ case MHD_INFO_KX_ALGO:
+ return (union MHD_SessionInfo)
con->tls_session->security_parameters.kx_algorithm;
+ case MHD_INFO_CREDENTIALS_TYPE:
+ return (union MHD_SessionInfo) con->tls_session->key->cred->algorithm;
+ case MHD_INFO_MAC_ALGO:
+ return (union MHD_SessionInfo)
con->tls_session->security_parameters.read_mac_algorithm;
+ case MHD_INFO_COMPRESSION_METHOD:
+ return (union MHD_SessionInfo)
con->tls_session->security_parameters.read_compression_algorithm;
+ case MHD_INFO_PROTOCOL:
+ return (union MHD_SessionInfo)
con->tls_session->security_parameters.version;
+ case MHD_INFO_CERT_TYPE:
+ return (union MHD_SessionInfo)
con->tls_session->security_parameters.cert_type;
+ };
}
-gnutls_mac_algorithm_t
-MHDS_get_session_mac (struct MHD_Connection * session)
-{
- return gnutls_mac_get (session->tls_session);
-}
-
-gnutls_compression_method_t
-MHDS_get_session_compression (struct MHD_Connection * session)
-{
- return gnutls_compression_get (session->tls_session);
-}
-
-gnutls_certificate_type_t
-MHDS_get_session_cert_type (struct MHD_Connection * session)
-{
- return gnutls_certificate_type_get (session->tls_session);
-}
-
static ssize_t
MHDS_con_read (struct MHD_Connection *connection)
{
@@ -286,8 +283,8 @@
while (1)
{
#if HAVE_MESSAGES
- MHD_DLOG (connection->daemon, "MHD write: %d, l: %d, f: %s\n",
- connection->state, __LINE__, __FUNCTION__);
+ MHD_DLOG (connection->daemon, "MHD write: %d. f: %s, l: %d\n",
+ connection->state, __FUNCTION__, __LINE__);
#endif
switch (connection->state)
{
Modified: libmicrohttpd/src/daemon/https/https_common.c
===================================================================
--- libmicrohttpd/src/daemon/https/https_common.c 2008-07-14 22:42:32 UTC
(rev 7435)
+++ libmicrohttpd/src/daemon/https/https_common.c 2008-07-16 01:19:39 UTC
(rev 7436)
@@ -22,9 +22,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+
#include <gnutls.h>
#include <extra.h>
-//#include "openpgp.h"
#include <time.h>
#include "https_common.h"
@@ -245,7 +245,7 @@
}
-#ifdef ENABLE_OPENPGP
+#if ENABLE_OPENPGP
void
print_openpgp_info (gnutls_session_t session, const char *hostname)
{
@@ -523,7 +523,7 @@
printf ("X.509\n");
print_x509_info (session, hostname);
break;
-#ifdef ENABLE_OPENPGP
+#if ENABLE_OPENPGP
case GNUTLS_CRT_OPENPGP:
printf ("OpenPGP\n");
print_openpgp_info (session, hostname);
Modified: libmicrohttpd/src/include/microhttpsd.h
===================================================================
--- libmicrohttpd/src/include/microhttpsd.h 2008-07-14 22:42:32 UTC (rev
7435)
+++ libmicrohttpd/src/include/microhttpsd.h 2008-07-16 01:19:39 UTC (rev
7436)
@@ -29,110 +29,130 @@
#include "microhttpd.h"
- typedef enum gnutls_cipher_algorithm
- {
- GNUTLS_CIPHER_UNKNOWN = 0,
- GNUTLS_CIPHER_NULL = 1,
- GNUTLS_CIPHER_ARCFOUR_128,
- GNUTLS_CIPHER_3DES_CBC,
- GNUTLS_CIPHER_AES_128_CBC,
- GNUTLS_CIPHER_AES_256_CBC,
- GNUTLS_CIPHER_ARCFOUR_40,
- GNUTLS_CIPHER_CAMELLIA_128_CBC,
- GNUTLS_CIPHER_CAMELLIA_256_CBC,
- GNUTLS_CIPHER_RC2_40_CBC = 90,
- GNUTLS_CIPHER_DES_CBC
- } gnutls_cipher_algorithm_t;
+typedef enum gnutls_cipher_algorithm
+{
+ GNUTLS_CIPHER_UNKNOWN = 0,
+ GNUTLS_CIPHER_NULL = 1,
+ GNUTLS_CIPHER_ARCFOUR_128,
+ GNUTLS_CIPHER_3DES_CBC,
+ GNUTLS_CIPHER_AES_128_CBC,
+ GNUTLS_CIPHER_AES_256_CBC,
+ GNUTLS_CIPHER_ARCFOUR_40,
+ GNUTLS_CIPHER_CAMELLIA_128_CBC,
+ GNUTLS_CIPHER_CAMELLIA_256_CBC,
+ GNUTLS_CIPHER_RC2_40_CBC = 90,
+ GNUTLS_CIPHER_DES_CBC
+} gnutls_cipher_algorithm_t;
- typedef enum
- {
- GNUTLS_KX_UNKNOWN = 0,
- GNUTLS_KX_RSA = 1,
- GNUTLS_KX_DHE_DSS,
- GNUTLS_KX_DHE_RSA,
- GNUTLS_KX_ANON_DH,
- GNUTLS_KX_SRP,
- GNUTLS_KX_RSA_EXPORT,
- GNUTLS_KX_SRP_RSA,
- GNUTLS_KX_SRP_DSS,
- } gnutls_kx_algorithm_t;
+typedef enum
+{
+ GNUTLS_KX_UNKNOWN = 0,
+ GNUTLS_KX_RSA = 1,
+ GNUTLS_KX_DHE_DSS,
+ GNUTLS_KX_DHE_RSA,
+ GNUTLS_KX_ANON_DH,
+ GNUTLS_KX_SRP,
+ GNUTLS_KX_RSA_EXPORT,
+ GNUTLS_KX_SRP_RSA,
+ GNUTLS_KX_SRP_DSS,
+} gnutls_kx_algorithm_t;
- typedef enum
- {
- GNUTLS_CRD_CERTIFICATE = 1,
- GNUTLS_CRD_ANON,
- GNUTLS_CRD_SRP,
- GNUTLS_CRD_PSK,
- GNUTLS_CRD_IA
- } gnutls_credentials_type_t;
+typedef enum
+{
+ GNUTLS_CRD_CERTIFICATE = 1,
+ GNUTLS_CRD_ANON,
+ GNUTLS_CRD_SRP,
+ GNUTLS_CRD_PSK,
+ GNUTLS_CRD_IA
+} gnutls_credentials_type_t;
- typedef enum
- {
- GNUTLS_MAC_UNKNOWN = 0,
- GNUTLS_MAC_NULL = 1,
- GNUTLS_MAC_MD5,
- GNUTLS_MAC_SHA1,
- GNUTLS_MAC_SHA256,
- //GNUTLS_MAC_SHA384,
- //GNUTLS_MAC_SHA512
- } gnutls_mac_algorithm_t;
+typedef enum
+{
+ GNUTLS_MAC_UNKNOWN = 0,
+ GNUTLS_MAC_NULL = 1,
+ GNUTLS_MAC_MD5,
+ GNUTLS_MAC_SHA1,
+ GNUTLS_MAC_SHA256,
+ //GNUTLS_MAC_SHA384,
+ //GNUTLS_MAC_SHA512
+} gnutls_mac_algorithm_t;
/* The enumerations here should have the same value with
gnutls_mac_algorithm_t.
*/
- typedef enum
- {
- GNUTLS_DIG_NULL = GNUTLS_MAC_NULL,
- GNUTLS_DIG_MD5 = GNUTLS_MAC_MD5,
- GNUTLS_DIG_SHA1 = GNUTLS_MAC_SHA1,
- GNUTLS_DIG_SHA256 = GNUTLS_MAC_SHA256,
- } gnutls_digest_algorithm_t;
+typedef enum
+{
+ GNUTLS_DIG_NULL = GNUTLS_MAC_NULL,
+ GNUTLS_DIG_MD5 = GNUTLS_MAC_MD5,
+ GNUTLS_DIG_SHA1 = GNUTLS_MAC_SHA1,
+ GNUTLS_DIG_SHA256 = GNUTLS_MAC_SHA256,
+} gnutls_digest_algorithm_t;
- typedef enum
- {
- GNUTLS_COMP_UNKNOWN = 0,
- GNUTLS_COMP_NULL = 1,
- GNUTLS_COMP_DEFLATE,
- GNUTLS_COMP_LZO /* only available if gnutls-extra has
- been initialized
- */
- } gnutls_compression_method_t;
+typedef enum
+{
+ GNUTLS_COMP_UNKNOWN = 0,
+ GNUTLS_COMP_NULL = 1,
+ GNUTLS_COMP_DEFLATE,
+ GNUTLS_COMP_LZO /* only available if gnutls-extra has
+ been initialized
+ */
+} gnutls_compression_method_t;
#define GNUTLS_TLS1 GNUTLS_TLS1_0
- typedef enum
- {
- GNUTLS_SSL3 = 1,
- GNUTLS_TLS1_0,
- GNUTLS_TLS1_1,
- GNUTLS_TLS1_2,
- GNUTLS_VERSION_UNKNOWN = 0xff
- } gnutls_protocol_t;
+typedef enum
+{
+ GNUTLS_SSL3 = 1,
+ GNUTLS_TLS1_0,
+ GNUTLS_TLS1_1,
+ GNUTLS_TLS1_2,
+ GNUTLS_VERSION_UNKNOWN = 0xff
+} gnutls_protocol_t;
- typedef enum
- {
- GNUTLS_CRT_UNKNOWN = 0,
- GNUTLS_CRT_X509 = 1,
- GNUTLS_CRT_OPENPGP
- } gnutls_certificate_type_t;
+typedef enum
+{
+ GNUTLS_CRT_UNKNOWN = 0,
+ GNUTLS_CRT_X509 = 1,
+ GNUTLS_CRT_OPENPGP
+} gnutls_certificate_type_t;
- typedef enum
- {
- GNUTLS_PK_UNKNOWN = 0,
- GNUTLS_PK_RSA = 1,
- //GNUTLS_PK_DSA
- } gnutls_pk_algorithm_t;
+typedef enum
+{
+ GNUTLS_PK_UNKNOWN = 0,
+ GNUTLS_PK_RSA = 1,
+ //GNUTLS_PK_DSA
+} gnutls_pk_algorithm_t;
-/* get cipher spec for this connection */
-gnutls_cipher_algorithm_t MHDS_get_session_cipher (struct MHD_Connection *
session );
-gnutls_kx_algorithm_t MHDS_get_session_kx (struct MHD_Connection * session );
-gnutls_mac_algorithm_t MHDS_get_session_mac (struct MHD_Connection * session );
-gnutls_compression_method_t MHDS_get_session_compression (struct
MHD_Connection * session );
-gnutls_certificate_type_t MHDS_get_session_cert_type (struct MHD_Connection *
session );
+union MHD_SessionInfo
+{
+ gnutls_cipher_algorithm_t cipher_algorithm;
+ gnutls_kx_algorithm_t kx_algorithm;
+ gnutls_credentials_type_t credentials_type;
+ gnutls_mac_algorithm_t mac_algorithm;
+ gnutls_compression_method_t compression_method;
+ gnutls_protocol_t protocol;
+ gnutls_certificate_type_t certificate_type;
+ gnutls_pk_algorithm_t pk_algorithm;
+};
+enum MHD_InfoType
+{
+ MHS_INFO_CIPHER_ALGO,
+ MHD_INFO_KX_ALGO,
+ MHD_INFO_CREDENTIALS_TYPE,
+ MHD_INFO_MAC_ALGO,
+ MHD_INFO_COMPRESSION_METHOD,
+ MHD_INFO_PROTOCOL,
+ MHD_INFO_CERT_TYPE,
+};
+
+union MHD_SessionInfo MHD_get_session_info (struct MHD_Connection *con,
+ enum MHD_InfoType infoType);
+
//TODO impl
-size_t MHDS_get_key_size (struct MHD_Daemon * daemon,
gnutls_cipher_algorithm_t algorithm);
-size_t MHDS_get_mac_key_size (struct MHD_Daemon * daemon,
gnutls_mac_algorithm_t algorithm);
+size_t MHDS_get_key_size (struct MHD_Daemon *daemon,
+ gnutls_cipher_algorithm_t algorithm);
+size_t MHDS_get_mac_key_size (struct MHD_Daemon *daemon,
+ gnutls_mac_algorithm_t algorithm);
#endif
-
Modified: libmicrohttpd/src/testcurl/https/mhds_session_info_test.c
===================================================================
--- libmicrohttpd/src/testcurl/https/mhds_session_info_test.c 2008-07-14
22:42:32 UTC (rev 7435)
+++ libmicrohttpd/src/testcurl/https/mhds_session_info_test.c 2008-07-16
01:19:39 UTC (rev 7436)
@@ -75,32 +75,55 @@
int ret;
/* assert actual connection cipher is the one negotiated */
- if (MHDS_get_session_cipher (connection) != GNUTLS_CIPHER_AES_256_CBC)
+ if (MHD_get_session_info (connection,MHS_INFO_CIPHER_ALGO).cipher_algorithm
!= GNUTLS_CIPHER_AES_256_CBC)
{
fprintf (stderr, "Error: requested cipher mismatch. %s\n",
strerror (errno));
return -1;
}
- if (MHDS_get_session_mac (connection) != GNUTLS_MAC_SHA1)
+ if (MHD_get_session_info (connection,MHD_INFO_KX_ALGO).kx_algorithm !=
GNUTLS_KX_RSA)
+ {
+ fprintf (stderr, "Error: requested key exchange mismatch. %s\n",
+ strerror (errno));
+ return -1;
+ }
+
+ if (MHD_get_session_info (connection,MHD_INFO_MAC_ALGO).mac_algorithm !=
GNUTLS_MAC_SHA1)
{
fprintf (stderr, "Error: requested mac algorithm mismatch. %s\n",
strerror (errno));
return -1;
}
- if (MHDS_get_session_compression (connection) != GNUTLS_COMP_NULL)
+
+ if (MHD_get_session_info
(connection,MHD_INFO_COMPRESSION_METHOD).compression_method != GNUTLS_COMP_NULL)
{
fprintf (stderr, "Error: requested compression mismatch. %s\n",
strerror (errno));
return -1;
}
- if (MHDS_get_session_cert_type (connection) != GNUTLS_CRT_X509)
+
+ if (MHD_get_session_info (connection,MHD_INFO_PROTOCOL).protocol !=
GNUTLS_SSL3)
+ {
+ fprintf (stderr, "Error: requested compression mismatch. %s\n",
+ strerror (errno));
+ return -1;
+ }
+
+ if (MHD_get_session_info (connection,MHD_INFO_CERT_TYPE).certificate_type !=
GNUTLS_CRT_X509)
{
fprintf (stderr, "Error: requested certificate mismatch. %s\n",
strerror (errno));
return -1;
}
+ if (MHD_get_session_info
(connection,MHD_INFO_CREDENTIALS_TYPE).credentials_type !=
GNUTLS_CRD_CERTIFICATE)
+ {
+ fprintf (stderr, "Error: requested certificate mismatch. %s\n",
+ strerror (errno));
+ return -1;
+ }
+
response = MHD_create_response_from_data (strlen (EMPTY_PAGE),
(void *) EMPTY_PAGE,
MHD_NO, MHD_NO);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r7436 - in libmicrohttpd/src: daemon daemon/https include testcurl/https,
gnunet <=