]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Declare groups corresponding to GOST curves
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Tue, 29 Aug 2017 08:09:31 +0000 (11:09 +0300)
committerDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Thu, 7 Nov 2019 15:41:28 +0000 (18:41 +0300)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
devel/libgnutls-latest-x86_64.abi
lib/algorithms/groups.c
lib/includes/gnutls/gnutls.h.in

index b2c058d71dc534f94c23e5a0adeed9f32a1db364..af21b7d548f3ce4850ab4375bd679c3c445b098d 100644 (file)
       <enumerator name='GNUTLS_GROUP_SECP384R1' value='3'/>
       <enumerator name='GNUTLS_GROUP_SECP521R1' value='4'/>
       <enumerator name='GNUTLS_GROUP_X25519' value='6'/>
+      <enumerator name='GNUTLS_GROUP_GC256A' value='16'/>
+      <enumerator name='GNUTLS_GROUP_GC256B' value='17'/>
+      <enumerator name='GNUTLS_GROUP_GC256C' value='18'/>
+      <enumerator name='GNUTLS_GROUP_GC256D' value='19'/>
+      <enumerator name='GNUTLS_GROUP_GC512A' value='13'/>
+      <enumerator name='GNUTLS_GROUP_GC512B' value='14'/>
+      <enumerator name='GNUTLS_GROUP_GC512C' value='15'/>
       <enumerator name='GNUTLS_GROUP_FFDHE2048' value='256'/>
       <enumerator name='GNUTLS_GROUP_FFDHE3072' value='257'/>
       <enumerator name='GNUTLS_GROUP_FFDHE4096' value='258'/>
index 1f82bf678ab51c9ae22ca4062ce2f74779fd08cc..6e1326666a586a4951587d2b2c6804f5a550fb2e 100644 (file)
@@ -73,6 +73,58 @@ static const gnutls_group_entry_st supported_groups[] = {
         .tls_id = 29,
         .pk = GNUTLS_PK_ECDH_X25519
        },
+#ifdef ENABLE_GOST
+       /* draft-smyshlyaev-tls12-gost-suites-06, Section 6 */
+       {
+        .name = "GC256A",
+        .id = GNUTLS_GROUP_GC256A,
+        .curve = GNUTLS_ECC_CURVE_GOST256A,
+        .pk = GNUTLS_PK_GOST_12_256,
+        .tls_id = 34,
+       },
+       {
+        .name = "GC256B",
+        .id = GNUTLS_GROUP_GC256B,
+        .curve = GNUTLS_ECC_CURVE_GOST256B,
+        .pk = GNUTLS_PK_GOST_12_256,
+        .tls_id = 35,
+       },
+       {
+        .name = "GC256C",
+        .id = GNUTLS_GROUP_GC256C,
+        .curve = GNUTLS_ECC_CURVE_GOST256C,
+        .pk = GNUTLS_PK_GOST_12_256,
+        .tls_id = 36,
+       },
+       {
+        .name = "GC256D",
+        .id = GNUTLS_GROUP_GC256D,
+        .curve = GNUTLS_ECC_CURVE_GOST256D,
+        .pk = GNUTLS_PK_GOST_12_256,
+        .tls_id = 37,
+       },
+       {
+        .name = "GC512A",
+        .id = GNUTLS_GROUP_GC512A,
+        .curve = GNUTLS_ECC_CURVE_GOST512A,
+        .pk = GNUTLS_PK_GOST_12_512,
+        .tls_id = 38,
+       },
+       {
+        .name = "GC512B",
+        .id = GNUTLS_GROUP_GC512B,
+        .curve = GNUTLS_ECC_CURVE_GOST512B,
+        .pk = GNUTLS_PK_GOST_12_512,
+        .tls_id = 39,
+       },
+       {
+        .name = "GC512C",
+        .id = GNUTLS_GROUP_GC512C,
+        .curve = GNUTLS_ECC_CURVE_GOST512C,
+        .pk = GNUTLS_PK_GOST_12_512,
+        .tls_id = 40,
+       },
+#endif
 #ifdef ENABLE_DHE
        {
         .name = "FFDHE2048",
index f4bbbce3060a492e627d07933b87399b72096c87..cfd84d6e2da15a87fca292b813e818ef02b05956 100644 (file)
@@ -1027,6 +1027,13 @@ typedef enum {
  * @GNUTLS_GROUP_SECP384R1: the SECP384R1 curve group
  * @GNUTLS_GROUP_SECP521R1: the SECP521R1 curve group
  * @GNUTLS_GROUP_X25519: the X25519 curve group
+ * @GNUTLS_GROUP_GC256A: the GOST R 34.10 TC26 256 A curve group
+ * @GNUTLS_GROUP_GC256B: the GOST R 34.10 TC26 256 B curve group
+ * @GNUTLS_GROUP_GC256C: the GOST R 34.10 TC26 256 C curve group
+ * @GNUTLS_GROUP_GC256D: the GOST R 34.10 TC26 256 D curve group
+ * @GNUTLS_GROUP_GC512A: the GOST R 34.10 TC26 512 A curve group
+ * @GNUTLS_GROUP_GC512B: the GOST R 34.10 TC26 512 B curve group
+ * @GNUTLS_GROUP_GC512C: the GOST R 34.10 TC26 512 C curve group
  * @GNUTLS_GROUP_FFDHE2048: the FFDHE2048 group
  * @GNUTLS_GROUP_FFDHE3072: the FFDHE3072 group
  * @GNUTLS_GROUP_FFDHE4096: the FFDHE4096 group
@@ -1046,6 +1053,14 @@ typedef enum {
        GNUTLS_GROUP_SECP521R1 = GNUTLS_ECC_CURVE_SECP521R1,
        GNUTLS_GROUP_X25519 = GNUTLS_ECC_CURVE_X25519,
 
+       GNUTLS_GROUP_GC256A = GNUTLS_ECC_CURVE_GOST256A,
+       GNUTLS_GROUP_GC256B = GNUTLS_ECC_CURVE_GOST256B,
+       GNUTLS_GROUP_GC256C = GNUTLS_ECC_CURVE_GOST256C,
+       GNUTLS_GROUP_GC256D = GNUTLS_ECC_CURVE_GOST256D,
+       GNUTLS_GROUP_GC512A = GNUTLS_ECC_CURVE_GOST512A,
+       GNUTLS_GROUP_GC512B = GNUTLS_ECC_CURVE_GOST512B,
+       GNUTLS_GROUP_GC512C = GNUTLS_ECC_CURVE_GOST512C,
+
        GNUTLS_GROUP_FFDHE2048 = 256,
        GNUTLS_GROUP_FFDHE3072,
        GNUTLS_GROUP_FFDHE4096,