gnunet-svn
[Top][All Lists]
Advanced

[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);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]