gnutls-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU gnutls branch, master, updated. gnutls_3_0_13-28-g177755f


From: Nikos Mavrogiannopoulos
Subject: [SCM] GNU gnutls branch, master, updated. gnutls_3_0_13-28-g177755f
Date: Tue, 21 Feb 2012 17:56:03 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU gnutls".

http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=177755f804c0a1fa3efcebe1504e95aab786e814

The branch, master has been updated
       via  177755f804c0a1fa3efcebe1504e95aab786e814 (commit)
       via  864be199082e2eb7fd291d7d6443971081edf74c (commit)
       via  48d453468b5995da66d3ef55b2f94f41485c8831 (commit)
       via  2d3a7b8f20fcc912ea81125f9af370cddbb82b62 (commit)
      from  f9ae61d13e0915a303b6a69c8729bc6fc7b44088 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 177755f804c0a1fa3efcebe1504e95aab786e814
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Tue Feb 21 19:01:01 2012 +0100

    updates for cryptodev. Require the COP_FLAG_RESET.

commit 864be199082e2eb7fd291d7d6443971081edf74c
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Tue Feb 21 19:00:15 2012 +0100

    added error reporting

commit 48d453468b5995da66d3ef55b2f94f41485c8831
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Tue Feb 21 09:17:50 2012 +0100

    properly deinitialize session.

commit 2d3a7b8f20fcc912ea81125f9af370cddbb82b62
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Tue Feb 21 09:12:42 2012 +0100

    added (dead) code to test the _hmac_fast.

-----------------------------------------------------------------------

Summary of changes:
 lib/accelerated/cryptodev.c |  120 +++++++++++++++++++-----------------------
 tests/gc.c                  |    9 +++
 tests/mini-loss-time.c      |   13 ++++-
 tests/pskself.c             |   18 +++++++
 tests/slow/cipher-test.c    |   12 ++++
 5 files changed, 104 insertions(+), 68 deletions(-)

diff --git a/lib/accelerated/cryptodev.c b/lib/accelerated/cryptodev.c
index 4e0f7ac..ce0af1b 100644
--- a/lib/accelerated/cryptodev.c
+++ b/lib/accelerated/cryptodev.c
@@ -49,7 +49,6 @@ struct cryptodev_ctx
   struct session_op sess;
   struct crypt_op cryp;
   uint8_t iv[EALG_MAX_BLOCK_LEN];
-  unsigned int hash_reset;
   int cfd;
 };
 
@@ -118,11 +117,11 @@ cryptodev_encrypt (void *_ctx, const void *plain, size_t 
plainsize,
                    void *encr, size_t encrsize)
 {
   struct cryptodev_ctx *ctx = _ctx;
-
   ctx->cryp.len = plainsize;
   ctx->cryp.src = (void *) plain;
   ctx->cryp.dst = encr;
   ctx->cryp.op = COP_ENCRYPT;
+
   if (ioctl (ctx->cfd, CIOCCRYPT, &ctx->cryp))
     {
       gnutls_assert ();
@@ -285,14 +284,14 @@ _gnutls_cryptodev_init (void)
 void
 _gnutls_cryptodev_deinit (void)
 {
-  close (cryptodev_fd);
+  if (cryptodev_fd != -1) close (cryptodev_fd);
 }
 
 /* MAC and digest stuff */
 
 /* if we are using linux /dev/crypto
  */
-#if defined COP_FLAG_UPDATE
+#if defined(COP_FLAG_UPDATE) && defined(COP_FLAG_RESET)
 
 static const int gnutls_mac_map[] = {
   [GNUTLS_MAC_MD5] = CRYPTO_MD5_HMAC,
@@ -351,14 +350,8 @@ cryptodev_mac_hash (void *_ctx, const void *text, size_t 
textsize)
   ctx->cryp.src = (void *) text;
   ctx->cryp.dst = NULL;
   ctx->cryp.op = COP_ENCRYPT;
+  ctx->cryp.flags = COP_FLAG_UPDATE;
   
-  if (ctx->hash_reset == 0)
-    ctx->cryp.flags = COP_FLAG_UPDATE;
-  else
-    {
-      ctx->cryp.flags = 0;
-      ctx->hash_reset = 0;
-    }
   if (ioctl (ctx->cfd, CIOCCRYPT, &ctx->cryp))
     {
       gnutls_assert ();
@@ -371,11 +364,13 @@ static int
 cryptodev_mac_output (void *_ctx, void *digest, size_t digestsize)
 {
   struct cryptodev_ctx *ctx = _ctx;
+
   ctx->cryp.len = 0;
   ctx->cryp.src = NULL;
   ctx->cryp.mac = digest;
   ctx->cryp.op = COP_ENCRYPT;
   ctx->cryp.flags = COP_FLAG_FINAL;
+
   if (ioctl (ctx->cfd, CIOCCRYPT, &ctx->cryp))
     {
       gnutls_assert ();
@@ -390,46 +385,46 @@ cryptodev_mac_reset (void *_ctx)
 {
   struct cryptodev_ctx *ctx = _ctx;
 
-  ctx->hash_reset = 1;
+  ctx->cryp.len = 0;
+  ctx->cryp.src = NULL;
+  ctx->cryp.dst = NULL;
+  ctx->cryp.op = COP_ENCRYPT;
+  ctx->cryp.flags = COP_FLAG_RESET;
+  
+  ioctl (ctx->cfd, CIOCCRYPT, &ctx->cryp);
 }
 
 static int
 cryptodev_mac_fast (gnutls_mac_algorithm_t algo,
-                        const void *key, size_t key_size, const void *text,
-                        size_t text_size, void *digest)
+                    const void *key, size_t key_size, const void *text,
+                    size_t text_size, void *digest)
 {
-int mac = gnutls_mac_map[algo];
-struct session_op sess; 
-struct crypt_op cryp;
+struct cryptodev_ctx ctx;
 int ret;
 
-  memset(&sess, 0, sizeof(sess));
-  memset(&cryp, 0, sizeof(cryp));
+  memset(&ctx, 0, sizeof(ctx));
+  ctx.cfd = cryptodev_fd;
+  ctx.sess.mac = gnutls_mac_map[algo];
 
-  sess.mac = mac;
-  sess.mackey = (void*)key;
-  sess.mackeylen = key_size;
+  ctx.sess.mackeylen = key_size;
+  ctx.sess.mackey = (void*)key;
 
-  if (ioctl (cryptodev_fd, CIOCGSESSION, &sess))
-    {
-      gnutls_assert ();
-      return GNUTLS_E_CRYPTODEV_IOCTL_ERROR;
-    }
-  cryp.ses = sess.ses;
-  cryp.len = text_size;
-  cryp.src = (void *) text;
-  cryp.dst = NULL;
-  cryp.mac = digest;
-  cryp.op = COP_ENCRYPT;
+  if (ioctl (ctx.cfd, CIOCGSESSION, &ctx.sess))
+    return gnutls_assert_val(GNUTLS_E_CRYPTODEV_IOCTL_ERROR);
 
-  ret = ioctl (cryptodev_fd, CIOCCRYPT, &cryp);
-  ioctl (cryptodev_fd, CIOCFSESSION, &sess.ses);
+  ctx.cryp.ses = ctx.sess.ses;
 
-  if (ret)
-    {
-      gnutls_assert ();
-      return GNUTLS_E_CRYPTODEV_IOCTL_ERROR;
-    }
+  ctx.cryp.len = text_size;
+  ctx.cryp.src = (void *) text;
+  ctx.cryp.dst = NULL;
+  ctx.cryp.op = COP_ENCRYPT;
+  ctx.cryp.mac = digest;
+  
+  ret = ioctl (ctx.cfd, CIOCCRYPT, &ctx.cryp);
+
+  ioctl (cryptodev_fd, CIOCFSESSION, &ctx.sess.ses);
+  if (ret != 0)
+    return gnutls_assert_val(GNUTLS_E_CRYPTODEV_IOCTL_ERROR);
   
   return 0;
 }
@@ -494,35 +489,29 @@ cryptodev_digest_fast (gnutls_digest_algorithm_t algo,
                        const void *text, size_t text_size, 
                        void *digest)
 {
-int dig = gnutls_digest_map[algo];
-struct session_op sess; 
-struct crypt_op cryp;
+struct cryptodev_ctx ctx;
 int ret;
 
-  memset(&sess, 0, sizeof(sess));
-  memset(&cryp, 0, sizeof(cryp));
-  sess.mac = dig;
+  memset(&ctx, 0, sizeof(ctx));
+  ctx.cfd = cryptodev_fd;
+  ctx.sess.mac = gnutls_digest_map[algo];
 
-  if (ioctl (cryptodev_fd, CIOCGSESSION, &sess))
-    {
-      gnutls_assert ();
-      return GNUTLS_E_CRYPTODEV_IOCTL_ERROR;
-    }
-  cryp.ses = sess.ses;
-  cryp.len = text_size;
-  cryp.src = (void *) text;
-  cryp.dst = NULL;
-  cryp.mac = digest;
-  cryp.op = COP_ENCRYPT;
-
-  ret = ioctl (cryptodev_fd, CIOCCRYPT, &cryp);
-  ioctl (cryptodev_fd, CIOCFSESSION, &sess.ses);
+  if (ioctl (ctx.cfd, CIOCGSESSION, &ctx.sess))
+    return gnutls_assert_val(GNUTLS_E_CRYPTODEV_IOCTL_ERROR);
+
+  ctx.cryp.ses = ctx.sess.ses;
+
+  ctx.cryp.len = text_size;
+  ctx.cryp.src = (void *) text;
+  ctx.cryp.dst = NULL;
+  ctx.cryp.op = COP_ENCRYPT;
+  ctx.cryp.mac = digest;
   
-  if (ret)
-    {
-      gnutls_assert ();
-      return GNUTLS_E_CRYPTODEV_IOCTL_ERROR;
-    }
+  ret = ioctl (ctx.cfd, CIOCCRYPT, &ctx.cryp);
+  
+  ioctl (cryptodev_fd, CIOCFSESSION, &ctx.sess.ses);
+  if (ret != 0)
+    return gnutls_assert_val(GNUTLS_E_CRYPTODEV_IOCTL_ERROR);
   
   return 0;
 }
@@ -588,7 +577,6 @@ register_mac_digest (int cfd)
           gnutls_assert ();
           return ret;
         }
-
     }
 
   memset (&sess, 0, sizeof (sess));
diff --git a/tests/gc.c b/tests/gc.c
index 5058592..2cc0694 100644
--- a/tests/gc.c
+++ b/tests/gc.c
@@ -32,6 +32,12 @@
 #include "../lib/x509/pbkdf2-sha1.h"
 #include "../lib/debug.h"
 
+static void
+tls_log_func (int level, const char *str)
+{
+  fprintf (stderr, "|<%d>| %s", level, str);
+}
+
 void
 doit (void)
 {
@@ -40,6 +46,9 @@ doit (void)
 
   /* XXX: We need this to fix secure memory. */
   gnutls_global_init ();
+  gnutls_global_set_log_function (tls_log_func);
+  if (debug)
+    gnutls_global_set_log_level (4711);
 
   err =
     _gnutls_hmac_fast (GNUTLS_MAC_MD5, "keykeykey", 9, "abcdefgh", 8, digest);
diff --git a/tests/mini-loss-time.c b/tests/mini-loss-time.c
index cc01dcd..303e89b 100644
--- a/tests/mini-loss-time.c
+++ b/tests/mini-loss-time.c
@@ -162,6 +162,9 @@ client (int fd, int packet)
       ret = gnutls_handshake (session);
     }
   while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+  
+  gnutls_deinit(session);
+  gnutls_global_deinit();
 
   if (ret < 0)
     {
@@ -231,10 +234,12 @@ int ret;
       ret = gnutls_handshake (session);
     }
   while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+  gnutls_deinit (session);
+  gnutls_global_deinit();
+
   if (ret < 0)
     {
-      close (fd);
-      gnutls_deinit (session);
       return;
     }
 }
@@ -266,12 +271,16 @@ static void start (int server_packet, int client_packet)
   if (child)
     {
       /* parent */
+      close(fd[1]);
       server (fd[0], server_packet);
+      close(fd[0]);
       kill(child, SIGTERM);
     }
   else 
     {
+      close(fd[0]);
       client (fd[1], client_packet);
+      close(fd[1]);
       exit(0);
     }
 }
diff --git a/tests/pskself.c b/tests/pskself.c
index f4c058b..f6eed94 100644
--- a/tests/pskself.c
+++ b/tests/pskself.c
@@ -46,6 +46,14 @@
 /* A very basic TLS client, with PSK authentication.
  */
 
+const char* side = "";
+
+static void
+tls_log_func (int level, const char *str)
+{
+  fprintf (stderr, "%s|<%d>| %s", side, level, str);
+}
+
 #define MAX_BUF 1024
 #define MSG "Hello TLS"
 
@@ -60,6 +68,11 @@ client (void)
   const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
 
   gnutls_global_init ();
+  gnutls_global_set_log_function (tls_log_func);
+  if (debug)
+    gnutls_global_set_log_level (4711);
+    
+  side = "client";
 
   gnutls_psk_allocate_client_credentials (&pskcred);
   gnutls_psk_set_client_credentials (pskcred, "test", &key,
@@ -237,6 +250,11 @@ server (void)
   /* this must be called once in the program
    */
   gnutls_global_init ();
+  gnutls_global_set_log_function (tls_log_func);
+  if (debug)
+    gnutls_global_set_log_level (4711);
+    
+  side = "server";
 
   gnutls_psk_allocate_server_credentials (&server_pskcred);
   gnutls_psk_set_server_credentials_function (server_pskcred, pskfunc);
diff --git a/tests/slow/cipher-test.c b/tests/slow/cipher-test.c
index c39d2d8..c51a3a4 100644
--- a/tests/slow/cipher-test.c
+++ b/tests/slow/cipher-test.c
@@ -493,7 +493,18 @@ test_hash (void)
           /* import key */
           if (hash_vectors[i].key != NULL)
             {
+#if 0
+                ret = gnutls_hmac_fast(hash_vectors[i].algorithm, 
hash_vectors[i].key, hash_vectors[i].key_size,
+                      hash_vectors[i].plaintext, 
hash_vectors[i].plaintext_size, data);
+                if (ret < 0)
+                  {
+                      fprintf (stderr, "Error: %s:%d\n", __func__,
+                               __LINE__);
+                      return 1;
+                  }
+#else
                 gnutls_hmac_hd_t hd;
+
                 ret = gnutls_hmac_init( &hd, hash_vectors[i].algorithm, 
hash_vectors[i].key, hash_vectors[i].key_size);
                 if (ret < 0)
                   {
@@ -520,6 +531,7 @@ test_hash (void)
 
                 gnutls_hmac_output(hd, data);
                 gnutls_hmac_deinit(hd, NULL);
+#endif
 
                 data_size =
                     gnutls_hmac_get_len (hash_vectors[i].algorithm);


hooks/post-receive
-- 
GNU gnutls



reply via email to

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