diff options
Diffstat (limited to 'src/libstrongswan/plugins/ntru/ntru_plugin.c')
-rw-r--r-- | src/libstrongswan/plugins/ntru/ntru_plugin.c | 75 |
1 files changed, 5 insertions, 70 deletions
diff --git a/src/libstrongswan/plugins/ntru/ntru_plugin.c b/src/libstrongswan/plugins/ntru/ntru_plugin.c index 2f066ce76..5b720dd48 100644 --- a/src/libstrongswan/plugins/ntru/ntru_plugin.c +++ b/src/libstrongswan/plugins/ntru/ntru_plugin.c @@ -17,64 +17,9 @@ #include "ntru_ke.h" #include <library.h> -#include <utils/debug.h> typedef struct private_ntru_plugin_t private_ntru_plugin_t; -rng_t *rng; - -bool ntru_plugin_get_entropy(ENTROPY_CMD cmd, uint8_t *out) -{ - switch (cmd) - { - case INIT: - return TRUE; - case GET_NUM_BYTES_PER_BYTE_OF_ENTROPY: - /* Here we return the number of bytes needed from the entropy - * source to obtain 8 bits of entropy. Maximum is 8. - */ - if (!out) - { - return FALSE; - } - *out = 1; /* this is a perfectly random source */ - return TRUE; - case GET_BYTE_OF_ENTROPY: - if (!out) - { - return FALSE; - } - if (!rng || !rng->get_bytes(rng, 1, out)) - { - return FALSE; - } - return TRUE; - default: - return FALSE; - } -} - -/** - * Create/Destroy True Random Generator - */ -static bool create_random(private_ntru_plugin_t *this, - plugin_feature_t *feature, bool reg, void *data) -{ - if (reg) - { - rng = lib->crypto->create_rng(lib->crypto, RNG_TRUE); - if (!rng) - { - return FALSE; - } - } - else - { - rng->destroy(rng); - } - return TRUE; -} - /** * private data of ntru_plugin */ @@ -95,27 +40,18 @@ METHOD(plugin_t, get_name, char*, METHOD(plugin_t, get_features, int, private_ntru_plugin_t *this, plugin_feature_t *features[]) { - int count = 0; - - static plugin_feature_t f_ke[] = { + static plugin_feature_t f[] = { PLUGIN_REGISTER(DH, ntru_ke_create), PLUGIN_PROVIDE(DH, NTRU_112_BIT), PLUGIN_PROVIDE(DH, NTRU_128_BIT), PLUGIN_PROVIDE(DH, NTRU_192_BIT), PLUGIN_PROVIDE(DH, NTRU_256_BIT), + PLUGIN_DEPENDS(RNG, RNG_TRUE), + PLUGIN_DEPENDS(SIGNER, AUTH_HMAC_SHA2_256_256), }; - static plugin_feature_t f_rng[] = { - PLUGIN_CALLBACK((plugin_feature_callback_t)create_random, NULL), - PLUGIN_PROVIDE(CUSTOM, "ntru-rng"), - PLUGIN_DEPENDS(RNG, RNG_TRUE), - }; - static plugin_feature_t f[countof(f_ke) + countof(f_rng)] = {}; - - plugin_features_add(f, f_ke, countof(f_ke), &count); - plugin_features_add(f, f_rng, countof(f_rng), &count); - *features = f; - return count; + + return countof(f); } METHOD(plugin_t, destroy, void, @@ -141,6 +77,5 @@ plugin_t *ntru_plugin_create() }, ); - return &this->public.plugin; } |