diff --git a/src/libstrongswan/plugins/gcrypt/gcrypt_crypter.c b/src/libstrongswan/plugins/gcrypt/gcrypt_crypter.c index 4bee5b704..da6bb9145 100644 --- a/src/libstrongswan/plugins/gcrypt/gcrypt_crypter.c +++ b/src/libstrongswan/plugins/gcrypt/gcrypt_crypter.c @@ -198,7 +198,9 @@ gcrypt_crypter_t *gcrypt_crypter_create(encryption_algorithm_t algo, gcrypt_alg = GCRY_CIPHER_BLOWFISH; break; case ENCR_AES_CTR: - mode = GCRY_CIPHER_MODE_CTR; + case ENCR_AES_ECB: + mode = (algo == ENCR_AES_CTR) ? GCRY_CIPHER_MODE_CTR : + GCRY_CIPHER_MODE_ECB; /* fall */ case ENCR_AES_CBC: switch (key_size) diff --git a/src/libstrongswan/plugins/gcrypt/gcrypt_plugin.c b/src/libstrongswan/plugins/gcrypt/gcrypt_plugin.c index 6946e4576..848568f45 100644 --- a/src/libstrongswan/plugins/gcrypt/gcrypt_plugin.c +++ b/src/libstrongswan/plugins/gcrypt/gcrypt_plugin.c @@ -70,6 +70,9 @@ METHOD(plugin_t, get_features, int, PLUGIN_PROVIDE(CRYPTER, ENCR_AES_CBC, 16), PLUGIN_PROVIDE(CRYPTER, ENCR_AES_CBC, 24), PLUGIN_PROVIDE(CRYPTER, ENCR_AES_CBC, 32), + PLUGIN_PROVIDE(CRYPTER, ENCR_AES_ECB, 16), + PLUGIN_PROVIDE(CRYPTER, ENCR_AES_ECB, 24), + PLUGIN_PROVIDE(CRYPTER, ENCR_AES_ECB, 32), /* gcrypt only supports 128 bit blowfish */ PLUGIN_PROVIDE(CRYPTER, ENCR_BLOWFISH, 16), #ifdef HAVE_GCRY_CIPHER_CAMELLIA