]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
added preliminary support for AES (rijndael)
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Sun, 12 Nov 2000 15:39:00 +0000 (15:39 +0000)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sun, 12 Nov 2000 15:39:00 +0000 (15:39 +0000)
lib/gnutls.h
lib/gnutls_algorithms.c
lib/gnutls_cipher_int.c
lib/gnutls_int.h

index 6053dfbdcdf1dc951436bee465bc91b57d8c5c18..d0b25f60593123b631dd7ed5b90a153ed07ad5b1 100644 (file)
@@ -20,7 +20,7 @@
 
 enum ContentType { GNUTLS_APPLICATION_DATA=23 };
 typedef enum ContentType ContentType;
-enum BulkCipherAlgorithm { GNUTLS_NULL, GNUTLS_ARCFOUR=1, GNUTLS_DES=3, GNUTLS_3DES = 4 };
+enum BulkCipherAlgorithm { GNUTLS_NULL, GNUTLS_ARCFOUR=1, GNUTLS_DES=3, GNUTLS_3DES = 4, GNUTLS_AES };
 typedef enum BulkCipherAlgorithm BulkCipherAlgorithm;
 enum KXAlgorithm { GNUTLS_KX_RSA, GNUTLS_KX_DHE_DSS, GNUTLS_KX_DHE_RSA, GNUTLS_KX_DH_DSS, GNUTLS_KX_DH_RSA, GNUTLS_KX_ANON_DH };
 typedef enum KXAlgorithm KXAlgorithm;
index c8741cd89b4c919c6eec12b8ae9b06f3b6df3355..663853d8827e6c38b078ab4b4abc4e6bde06bdf9 100644 (file)
@@ -38,6 +38,7 @@ typedef struct gnutls_cipher_entry gnutls_cipher_entry;
 
 static gnutls_cipher_entry algorithms[] = {
        GNUTLS_CIPHER_ENTRY(GNUTLS_3DES, 8, 24, 1, 8, -1),
+       GNUTLS_CIPHER_ENTRY(GNUTLS_AES, 16, 16, 1, 16, -1),
 #ifdef USE_MCRYPT
        GNUTLS_CIPHER_ENTRY(GNUTLS_DES, 8, 8, 1, 8, -1),
        GNUTLS_CIPHER_ENTRY(GNUTLS_ARCFOUR, 1, 16, 0, 0, -1),
@@ -147,6 +148,13 @@ typedef struct {
 #define GNUTLS_DHE_DSS_WITH_DES_CBC_SHA { 0x00, 0x12 }
 #define GNUTLS_DHE_RSA_WITH_DES_CBC_SHA { 0x00, 0x15 }
 
+#define GNUTLS_RSA_WITH_AES_128_CBC_SHA { 0xFF, 0x2F }
+#define GNUTLS_DH_DSS_WITH_AES_128_CBC_SHA { 0xFF, 0x30 }
+#define GNUTLS_DH_RSA_WITH_AES_128_CBC_SHA { 0xFF, 0x31 }
+#define GNUTLS_DHE_DSS_WITH_AES_128_CBC_SHA { 0xFF, 0x32 }
+#define GNUTLS_DHE_RSA_WITH_AES_128_CBC_SHA { 0xFF, 0x33 }
+                      
+                      
 static gnutls_cipher_suite_entry cs_algorithms[] = {
        GNUTLS_CIPHER_SUITE_ENTRY(GNUTLS_DH_anon_WITH_ARCFOUR_MD5,   GNUTLS_ARCFOUR, GNUTLS_KX_ANON_DH, GNUTLS_MAC_MD5),
        GNUTLS_CIPHER_SUITE_ENTRY(GNUTLS_DH_anon_WITH_3DES_EDE_CBC_SHA, GNUTLS_3DES, GNUTLS_KX_ANON_DH, GNUTLS_MAC_SHA),
@@ -162,6 +170,11 @@ static gnutls_cipher_suite_entry cs_algorithms[] = {
        GNUTLS_CIPHER_SUITE_ENTRY( GNUTLS_RSA_WITH_ARCFOUR_MD5,         GNUTLS_ARCFOUR, GNUTLS_KX_RSA,  GNUTLS_MAC_MD5),
        GNUTLS_CIPHER_SUITE_ENTRY( GNUTLS_RSA_WITH_3DES_EDE_CBC_SHA,    GNUTLS_3DES, GNUTLS_KX_RSA,     GNUTLS_MAC_SHA),
        GNUTLS_CIPHER_SUITE_ENTRY( GNUTLS_RSA_WITH_DES_CBC_SHA,         GNUTLS_DES,  GNUTLS_KX_RSA,     GNUTLS_MAC_SHA),
+       GNUTLS_CIPHER_SUITE_ENTRY( GNUTLS_RSA_WITH_AES_128_CBC_SHA,     GNUTLS_AES,  GNUTLS_KX_RSA,     GNUTLS_MAC_SHA),
+       GNUTLS_CIPHER_SUITE_ENTRY( GNUTLS_DH_DSS_WITH_AES_128_CBC_SHA,  GNUTLS_AES,  GNUTLS_KX_DH_DSS,  GNUTLS_MAC_SHA),
+       GNUTLS_CIPHER_SUITE_ENTRY( GNUTLS_DH_RSA_WITH_AES_128_CBC_SHA,  GNUTLS_AES,  GNUTLS_KX_DH_RSA,  GNUTLS_MAC_SHA),
+       GNUTLS_CIPHER_SUITE_ENTRY( GNUTLS_DHE_DSS_WITH_AES_128_CBC_SHA, GNUTLS_AES,  GNUTLS_KX_DHE_DSS, GNUTLS_MAC_SHA),
+       GNUTLS_CIPHER_SUITE_ENTRY( GNUTLS_DHE_RSA_WITH_AES_128_CBC_SHA, GNUTLS_AES,  GNUTLS_KX_DHE_RSA, GNUTLS_MAC_SHA),
        {0}
 };
 
index c0bcce6e1ff3c59eb89b79f6ec43b748eb2e229f..547b9b65ea273db36a44e914bc80610e79ce37c8 100644 (file)
@@ -36,6 +36,13 @@ GNUTLS_CIPHER_HANDLE ret;
                ret = mcrypt_module_open( "des", NULL, "cbc", NULL);
 #else
                ret = GNUTLS_CIPHER_FAILED;
+#endif
+               break;
+       case GNUTLS_AES:
+#ifdef USE_MCRYPT
+               ret = mcrypt_module_open( "rijndael-128", NULL, "cbc", NULL);
+#else
+               ret = gcry_cipher_open(GCRY_CIPHER_RIJNDAEL, GCRY_CIPHER_MODE_CBC, 0);
 #endif
                break;
        case GNUTLS_3DES:
index a161f18da61b9cd5490131de0773de4d5a49abd3..b5b5c6e0094abfaeb8f0cef7f2642f1bc7f18e46 100644 (file)
@@ -82,7 +82,7 @@ typedef struct {
 
 /* STATE */
 enum ConnectionEnd { GNUTLS_SERVER, GNUTLS_CLIENT };
-enum BulkCipherAlgorithm { GNUTLS_NULL, GNUTLS_ARCFOUR=1, GNUTLS_DES=3, GNUTLS_3DES = 4 };
+enum BulkCipherAlgorithm { GNUTLS_NULL, GNUTLS_ARCFOUR=1, GNUTLS_DES=3, GNUTLS_3DES = 4, GNUTLS_AES };
 enum KXAlgorithm { GNUTLS_KX_RSA, GNUTLS_KX_DHE_DSS, GNUTLS_KX_DHE_RSA, GNUTLS_KX_DH_DSS, GNUTLS_KX_DH_RSA, GNUTLS_KX_ANON_DH };
 enum KeyExchangeAlgorithm { GNUTLS_RSA, GNUTLS_DIFFIE_HELLMAN };
 enum CipherType { CIPHER_STREAM, CIPHER_BLOCK };