]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
gcrypt: Support of AES-CFB encryption
authorAndreas Steffen <andreas.steffen@strongswan.org>
Mon, 6 Dec 2021 12:43:45 +0000 (13:43 +0100)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Mon, 6 Dec 2021 12:43:45 +0000 (13:43 +0100)
src/libstrongswan/plugins/gcrypt/gcrypt_crypter.c
src/libstrongswan/plugins/gcrypt/gcrypt_plugin.c

index da6bb9145aff4c9aaf300959430812986c2c25ab..26dd9d1c5201eabcbeebfa390ff94e32d0b86054 100644 (file)
@@ -219,6 +219,24 @@ gcrypt_crypter_t *gcrypt_crypter_create(encryption_algorithm_t algo,
                                        return NULL;
                        }
                        break;
+               case ENCR_AES_CFB:
+                       mode = GCRY_CIPHER_MODE_CFB;
+                       switch (key_size)
+                       {
+                               case 0:
+                               case 16:
+                                       gcrypt_alg = GCRY_CIPHER_AES128;
+                                       break;
+                               case 24:
+                                       gcrypt_alg = GCRY_CIPHER_AES192;
+                                       break;
+                               case 32:
+                                       gcrypt_alg = GCRY_CIPHER_AES256;
+                                       break;
+                               default:
+                                       return NULL;
+                       }
+                       break;
                case ENCR_CAMELLIA_CTR:
                        mode = GCRY_CIPHER_MODE_CTR;
                        /* fall */
index fc4d9467d72d8a7438ed3c83e047fd365c058249..bbf14af3dbbc6da3b39d6e87993508366d9e6d5a 100644 (file)
@@ -73,6 +73,9 @@ METHOD(plugin_t, get_features, int,
                        PLUGIN_PROVIDE(CRYPTER, ENCR_AES_ECB, 16),
                        PLUGIN_PROVIDE(CRYPTER, ENCR_AES_ECB, 24),
                        PLUGIN_PROVIDE(CRYPTER, ENCR_AES_ECB, 32),
+                       PLUGIN_PROVIDE(CRYPTER, ENCR_AES_CFB, 16),
+                       PLUGIN_PROVIDE(CRYPTER, ENCR_AES_CFB, 24),
+                       PLUGIN_PROVIDE(CRYPTER, ENCR_AES_CFB, 32),
                        /* gcrypt only supports 128 bit blowfish */
                        PLUGIN_PROVIDE(CRYPTER, ENCR_BLOWFISH, 16),
 #ifdef HAVE_GCRY_CIPHER_CAMELLIA