From 661ce3d1a431dd6b7512487b7e1f0e6ce6354552 Mon Sep 17 00:00:00 2001 From: Love Hornquist Astrand Date: Tue, 1 Jun 2010 15:07:07 -0700 Subject: [PATCH] add more generate --- lib/hcrypto/engine.c | 60 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/lib/hcrypto/engine.c b/lib/hcrypto/engine.c index ea3603b95..3abddadbe 100644 --- a/lib/hcrypto/engine.c +++ b/lib/hcrypto/engine.c @@ -56,6 +56,23 @@ struct hc_engine { const RAND_METHOD *rand; }; +ENGINE * +ENGINE_new(void) +{ + ENGINE *engine; + + engine = calloc(1, sizeof(*engine)); + engine->references = 1; + + return engine; +} + +int +ENGINE_free(ENGINE *engine) +{ +} + + int ENGINE_finish(ENGINE *engine) { @@ -195,10 +212,8 @@ add_engine(ENGINE *engine) ENGINE **d, *dup; dup = ENGINE_by_id(engine->id); - if (dup) { - ENGINE_finish(dup); + if (dup) return 0; - } d = realloc(engines, (num_engines + 1) * sizeof(*engines)); if (d == NULL) @@ -215,7 +230,7 @@ ENGINE_load_builtin_engines(void) ENGINE *engine; int ret; - engine = calloc(1, sizeof(*engine)); + engine = ENGINE_new(); if (engine == NULL) return; @@ -228,6 +243,43 @@ ENGINE_load_builtin_engines(void) ret = add_engine(engine); if (ret != 1) ENGINE_finish(engine); + + /* + * TFM + */ + + engine = ENGINE_new(); + if (engine == NULL) + return; + + ENGINE_set_id(engine, "tfm"); + ENGINE_set_name(engine, + "Heimdal crypto tfm engine version " PACKAGE_VERSION); + ENGINE_set_RSA(engine, RSA_tfm_method()); + ENGINE_set_DH(engine, DH_tfm_method()); + + ret = add_engine(engine); + if (ret != 1) + ENGINE_finish(engine); + + /* + * imath + */ + + engine = ENGINE_new(); + if (engine == NULL) + return; + + ENGINE_set_id(engine, "imath"); + ENGINE_set_name(engine, + "Heimdal crypto imath engine version " PACKAGE_VERSION); + ENGINE_set_RSA(engine, RSA_imath_method()); + ENGINE_set_DH(engine, DH_imath_method()); + + ret = add_engine(engine); + if (ret != 1) + ENGINE_finish(engine); + } ENGINE *