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_5-12-gd739844


From: Nikos Mavrogiannopoulos
Subject: [SCM] GNU gnutls branch, master, updated. gnutls_3_0_5-12-gd739844
Date: Tue, 01 Nov 2011 08:06:09 +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=d739844f39240b360eebfb1ddd3597e8da961e23

The branch, master has been updated
       via  d739844f39240b360eebfb1ddd3597e8da961e23 (commit)
      from  657d9334635a1c4c08fc6e003e3378062f58aa6d (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 d739844f39240b360eebfb1ddd3597e8da961e23
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Tue Nov 1 09:05:00 2011 +0100

    Added 3072 and 4096-bit groups from RFC5054.

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

Summary of changes:
 lib/auth/srp.c                  |  120 +++++++++++++++++++++++++++++++++++++++
 lib/auth/srp_passwd.c           |    7 ++-
 lib/includes/gnutls/gnutls.h.in |    6 ++
 lib/libgnutls.map               |    4 +
 src/prime.c                     |   14 ++++-
 src/srptool.c                   |   17 +++++-
 6 files changed, 164 insertions(+), 4 deletions(-)

diff --git a/lib/auth/srp.c b/lib/auth/srp.c
index 068682c..fd616d4 100644
--- a/lib/auth/srp.c
+++ b/lib/auth/srp.c
@@ -460,6 +460,7 @@ static const unsigned char srp_params_1024[] = {
 };
 
 static const unsigned char srp_generator = 0x02;
+static const unsigned char srp3072_generator = 0x05;
 
 const gnutls_datum_t gnutls_srp_1024_group_prime = {
   (void *) srp_params_1024, sizeof (srp_params_1024)
@@ -542,6 +543,113 @@ const gnutls_datum_t gnutls_srp_2048_group_generator = {
   (void *) &srp_generator, sizeof (srp_generator)
 };
 
+static const unsigned char srp_params_3072[] = {
+  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9,
+  0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6,
+  0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, 0x29, 0x02, 0x4E,
+  0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6,
+  0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E,
+  0x34, 0x04, 0xDD, 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A,
+  0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14,
+  0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
+  0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4,
+  0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF,
+  0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, 0xEE, 0x38, 0x6B,
+  0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
+  0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC,
+  0xE4, 0x5B, 0x3D, 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63,
+  0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3,
+  0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F,
+  0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C,
+  0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5,
+  0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, 0x67, 0x0C, 0x35,
+  0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
+  0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E,
+  0x36, 0xCE, 0x3B, 0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E,
+  0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2,
+  0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9,
+  0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39,
+  0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2,
+  0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, 0x15, 0x72, 0x8E,
+  0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
+  0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF,
+  0x1C, 0xBA, 0x64, 0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB,
+  0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C,
+  0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7,
+  0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E,
+  0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 
+  0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B, 0xF1, 0x2F, 0xFA, 
+  0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73,
+  0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17,
+  0x7B, 0x20, 0x0C, 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 
+  0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 
+  0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
+  0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B,
+  0x82, 0xD1, 0x20, 0xA9, 0x3A, 0xD2, 0xCA, 0xFF, 0xFF, 
+  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+const gnutls_datum_t gnutls_srp_3072_group_generator = {
+  (void *) &srp3072_generator, sizeof (srp3072_generator)
+};
+
+const gnutls_datum_t gnutls_srp_3072_group_prime = {
+  (void *) srp_params_3072, sizeof (srp_params_3072)
+};
+
+static const unsigned char srp_params_4096[] = {
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2, 
+0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, 
+0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE, 0xA6, 
+0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, 
+0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D, 
+0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, 
+0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
+0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, 
+0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11, 
+0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, 
+0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48, 0x36, 
+0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, 
+0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56, 
+0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
+0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08, 
+0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B,
+0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83, 0xA2, 
+0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, 
+0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C, 
+0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, 
+0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17, 0x0D,
+0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64, 
+0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71, 0x57, 
+0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7, 
+0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94, 0xE0, 
+0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B, 
+0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02, 0x73, 
+0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C,
+0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0, 
+0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31, 
+0x43, 0xDB, 0x5, 0xBFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20, 
+0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7, 
+0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, 0x99, 0xC3, 0x27, 0x18, 
+0x6A, 0xF4, 0xE2, 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA, 
+0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2, 0xDB,
+0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6, 
+0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99, 0xB2, 0x96, 0x4F, 
+0xA0, 0x90, 0xC3, 0xA2, 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED, 
+0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, 0xB8, 0x1B, 0xDD, 0x76, 
+0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9, 
+0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC, 
+0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+const gnutls_datum_t gnutls_srp_4096_group_generator = {
+  (void *) &srp3072_generator, sizeof (srp3072_generator)
+};
+
+const gnutls_datum_t gnutls_srp_4096_group_prime = {
+  (void *) srp_params_4096, sizeof (srp_params_4096)
+};
 
 /* Check if G and N are parameters from the SRP draft.
  */
@@ -549,6 +657,18 @@ static int
 check_g_n (const opaque * g, size_t n_g, const opaque * n, size_t n_n)
 {
 
+  if ((n_n == sizeof (srp_params_3072) &&
+      memcmp (srp_params_3072, n, n_n) == 0) ||
+      (n_n == sizeof (srp_params_4096) &&
+      memcmp (srp_params_4096, n, n_n) == 0))
+    {
+      if (n_g != 1 || g[0] != srp3072_generator)
+        {
+          return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+        }
+      return 0;
+    }
+
   if (n_g != 1 || g[0] != srp_generator)
     {
       gnutls_assert ();
diff --git a/lib/auth/srp_passwd.c b/lib/auth/srp_passwd.c
index 9b1df7e..7ced101 100644
--- a/lib/auth/srp_passwd.c
+++ b/lib/auth/srp_passwd.c
@@ -454,12 +454,15 @@ _gnutls_srp_entry_free (SRP_PWD_ENTRY * entry)
   _gnutls_free_datum (&entry->v);
   _gnutls_free_datum (&entry->salt);
 
-  if (entry->g.data != gnutls_srp_1024_group_generator.data)
+  if ((entry->g.data != gnutls_srp_1024_group_generator.data)
+     && (entry->g.data != gnutls_srp_3072_group_generator.data))
     _gnutls_free_datum (&entry->g);
 
   if (entry->n.data != gnutls_srp_1024_group_prime.data &&
       entry->n.data != gnutls_srp_1536_group_prime.data &&
-      entry->n.data != gnutls_srp_2048_group_prime.data)
+      entry->n.data != gnutls_srp_2048_group_prime.data &&
+      entry->n.data != gnutls_srp_3072_group_prime.data &&
+      entry->n.data != gnutls_srp_4096_group_prime.data)
     _gnutls_free_datum (&entry->n);
 
   gnutls_free (entry->username);
diff --git a/lib/includes/gnutls/gnutls.h.in b/lib/includes/gnutls/gnutls.h.in
index fefb698..77dd47e 100644
--- a/lib/includes/gnutls/gnutls.h.in
+++ b/lib/includes/gnutls/gnutls.h.in
@@ -1314,6 +1314,12 @@ gnutls_ecc_curve_t gnutls_ecc_curve_get(gnutls_session_t 
session);
 /* The static parameters defined in draft-ietf-tls-srp-05
  * Those should be used as input to gnutls_srp_verifier().
  */
+  extern const gnutls_datum_t gnutls_srp_4096_group_prime;
+  extern const gnutls_datum_t gnutls_srp_4096_group_generator;
+
+  extern const gnutls_datum_t gnutls_srp_3072_group_prime;
+  extern const gnutls_datum_t gnutls_srp_3072_group_generator;
+
   extern const gnutls_datum_t gnutls_srp_2048_group_prime;
   extern const gnutls_datum_t gnutls_srp_2048_group_generator;
 
diff --git a/lib/libgnutls.map b/lib/libgnutls.map
index 4d3ba84..40de726 100644
--- a/lib/libgnutls.map
+++ b/lib/libgnutls.map
@@ -720,6 +720,10 @@ GNUTLS_3_0_0 {
        gnutls_x509_crt_get_authority_info_access;
        gnutls_privkey_import_ext;
        gnutls_certificate_set_key;
+        gnutls_srp_3072_group_generator;
+        gnutls_srp_3072_group_prime;
+        gnutls_srp_4096_group_generator;
+        gnutls_srp_4096_group_prime;
 } GNUTLS_2_12;
 
 GNUTLS_PRIVATE {
diff --git a/src/prime.c b/src/prime.c
index f53b31e..1113375 100644
--- a/src/prime.c
+++ b/src/prime.c
@@ -92,12 +92,24 @@ generate_prime (int how, common_info_st * info)
           g = gnutls_srp_1536_group_generator;
           bits = 1536;
         }
-      else
+      else if (bits <= 2048)
         {
           p = gnutls_srp_2048_group_prime;
           g = gnutls_srp_2048_group_generator;
           bits = 2048;
         }
+      else if (bits <=3072)
+        {
+          p = gnutls_srp_3072_group_prime;
+          g = gnutls_srp_3072_group_generator;
+          bits = 3072;
+        }
+      else
+        {
+          p = gnutls_srp_4096_group_prime;
+          g = gnutls_srp_4096_group_generator;
+          bits = 4096;
+        }
 
       ret = gnutls_dh_params_import_raw (dh_params, &p, &g);
       if (ret < 0)
diff --git a/src/srptool.c b/src/srptool.c
index 5dea76e..d52509a 100644
--- a/src/srptool.c
+++ b/src/srptool.c
@@ -105,11 +105,26 @@ generate_create_conf (char *tpasswd_conf)
           n = gnutls_srp_1536_group_prime;
           g = gnutls_srp_1536_group_generator;
         }
-      else
+      else if (index == 3)
         {
           n = gnutls_srp_2048_group_prime;
           g = gnutls_srp_2048_group_generator;
         }
+      else if (index == 4)
+        {
+          n = gnutls_srp_3072_group_prime;
+          g = gnutls_srp_3072_group_generator;
+        }
+      else if (index == 5)
+        {
+          n = gnutls_srp_4096_group_prime;
+          g = gnutls_srp_4096_group_generator;
+        }
+      else
+        {
+          fprintf(stderr, "Unknown index: %d\n", index);
+          return -1;
+        }
 
       printf ("\nGroup %d, of %d bits:\n", index, n.size * 8);
       print_num ("Generator", &g);


hooks/post-receive
-- 
GNU gnutls



reply via email to

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