From ecd2c2a5f5b6fc0d714984dcc3215a957dcb4e03 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Tue, 10 Jul 2007 13:31:57 +0000 Subject: [PATCH] Fixed debug messages. Fixed softacc uninit. --- lib/silcacc/silcacc.h | 28 ++++++++++++++-------------- lib/silcacc/silcacc_pkcs.c | 6 ++++-- lib/silcacc/softacc.c | 6 +++++- lib/silcacc/tests/test_softacc.c | 13 ++++++++++--- 4 files changed, 33 insertions(+), 20 deletions(-) diff --git a/lib/silcacc/silcacc.h b/lib/silcacc/silcacc.h index e438bc8c..ea97437a 100644 --- a/lib/silcacc/silcacc.h +++ b/lib/silcacc/silcacc.h @@ -90,6 +90,20 @@ SilcBool silc_acc_register(const SilcAccelerator acc); ***/ void silc_acc_unregister(SilcAccelerator acc); +/****f* silcacc/SilcAccAPI/silc_acc_find + * + * SYNOPSIS + * + * SilcAccelerator silc_acc_find(const char *name); + * + * DESCRIPTION + * + * Find accelerator by its name indicated by `name'. Returns the + * accelerator context or NULL if such accelerator is not registered. + * + ***/ +SilcAccelerator silc_acc_find(const char *name); + /****f* silcacc/SilcAccAPI/silc_acc_init * * SYNOPSIS @@ -142,20 +156,6 @@ SilcBool silc_acc_uninit(SilcAccelerator acc); ***/ SilcDList silc_acc_get_supported(void); -/****f* silcacc/SilcAccAPI/silc_acc_find - * - * SYNOPSIS - * - * SilcAccelerator silc_acc_find(const char *name); - * - * DESCRIPTION - * - * Find accelerator by its name indicated by `name'. Returns the - * accelerator context or NULL if such accelerator is not registered. - * - ***/ -SilcAccelerator silc_acc_find(const char *name); - /****f* silcacc/SilcAccAPI/silc_acc_get_name * * SYNOPSIS diff --git a/lib/silcacc/silcacc_pkcs.c b/lib/silcacc/silcacc_pkcs.c index d9474be8..c7920a29 100644 --- a/lib/silcacc/silcacc_pkcs.c +++ b/lib/silcacc/silcacc_pkcs.c @@ -199,6 +199,8 @@ SILC_PKCS_PRIVATE_KEY_BITLEN(silc_acc_pkcs_private_key_bitlen) prv->accelerated->private_key); } +/* Accelerator routines follow */ + SILC_PKCS_PUBLIC_KEY_FREE(silc_acc_pkcs_public_key_free) { SilcAcceleratorPublicKey pub = public_key; @@ -292,7 +294,7 @@ SilcPublicKey silc_acc_public_key(SilcAccelerator acc, } if (alg) { SILC_LOG_DEBUG(("Accelerator %s does not support %s/%s acceleration", - alg->name, alg->scheme)); + acc->name, alg->name, alg->scheme)); return NULL; } @@ -375,7 +377,7 @@ SilcPrivateKey silc_acc_private_key(SilcAccelerator acc, } if (alg) { SILC_LOG_DEBUG(("Accelerator %s does not support %s/%s acceleration", - alg->name, alg->scheme)); + acc->name, alg->name, alg->scheme)); return NULL; } diff --git a/lib/silcacc/softacc.c b/lib/silcacc/softacc.c index 89c1adaf..4f5b3fe0 100644 --- a/lib/silcacc/softacc.c +++ b/lib/silcacc/softacc.c @@ -165,6 +165,7 @@ SilcBool silc_softacc_init(SilcSchedule schedule, va_list va) sa->tp = silc_thread_pool_alloc(NULL, min_threads, max_threads, TRUE); if (!sa->tp) { silc_free(sa); + sa = NULL; return FALSE; } @@ -233,6 +234,7 @@ SILC_TASK_CALLBACK(silc_softacc_completion) out: silc_sfree(stack, e->src); silc_sfree(stack, e->data); + silc_sfree(stack, e->result_data); silc_sfree(stack, e); silc_stack_free(stack); } @@ -245,7 +247,7 @@ void silc_softacc_data_cb(SilcBool success, const unsigned char *data, SilcSoftaccExec e = context; SilcStack stack = e->stack; - /* Pop e->src and e->data from memory */ + /* Pop e->src */ silc_stack_pop(stack); if (success) @@ -261,7 +263,9 @@ void silc_softacc_verify_cb(SilcBool success, void *context) SilcSoftaccExec e = context; SilcStack stack = e->stack; + /* Pop e->src and e->data from memory */ silc_stack_pop(stack); + e->result = success; } diff --git a/lib/silcacc/tests/test_softacc.c b/lib/silcacc/tests/test_softacc.c index 066fd2a4..08da67ef 100644 --- a/lib/silcacc/tests/test_softacc.c +++ b/lib/silcacc/tests/test_softacc.c @@ -8,7 +8,7 @@ SilcPrivateKey private_key, accprv; SilcHash hash; unsigned char data[] = "Single block msg"; int data_len = 16; -int s = 100; +int s = 200; void sign_compl(SilcBool success, const unsigned char *signature, SilcUInt32 signature_len, void *context) @@ -16,6 +16,12 @@ void sign_compl(SilcBool success, const unsigned char *signature, SILC_LOG_DEBUG(("Sign compl %s", success ? "Ok" : "failed")); } +SILC_TASK_CALLBACK(stats) +{ + silc_stack_stats(silc_crypto_stack()); + silc_schedule_task_add_timeout(schedule, stats, NULL, 1, 1); +} + SILC_TASK_CALLBACK(quit) { silc_schedule_stop(schedule); @@ -25,7 +31,7 @@ SILC_TASK_CALLBACK(sign) { silc_pkcs_sign(accprv, data, data_len, TRUE, hash, sign_compl, NULL); if (--s > 0) - silc_schedule_task_add_timeout(schedule, sign, NULL, 0, 70000); + silc_schedule_task_add_timeout(schedule, sign, NULL, 0, 60000); } int main(int argc, char **argv) @@ -71,7 +77,8 @@ int main(int argc, char **argv) goto err; silc_schedule_task_add_timeout(schedule, sign, NULL, 0, 1); - silc_schedule_task_add_timeout(schedule, quit, NULL, 15, 0); + silc_schedule_task_add_timeout(schedule, stats, NULL, 1, 1); + silc_schedule_task_add_timeout(schedule, quit, NULL, 19, 0); silc_schedule(schedule); silc_acc_uninit(softacc); -- 2.24.0