1 /* Software accelerator tests */
6 SilcPublicKey public_key, accpub;
7 SilcPrivateKey private_key, accprv;
9 unsigned char data[] = "Single block msg";
13 void sign_compl(SilcBool success, const unsigned char *signature,
14 SilcUInt32 signature_len, void *context)
16 SILC_LOG_DEBUG(("Sign compl %s", success ? "Ok" : "failed"));
19 SILC_TASK_CALLBACK(stats)
21 silc_stack_stats(silc_crypto_stack());
22 silc_schedule_task_add_timeout(schedule, stats, NULL, 1, 1);
25 SILC_TASK_CALLBACK(quit)
27 silc_schedule_stop(schedule);
30 SILC_TASK_CALLBACK(sign)
32 silc_pkcs_sign(accprv, data, data_len, TRUE, hash, NULL, sign_compl, NULL);
34 silc_schedule_task_add_timeout(schedule, sign, NULL, 0, 60000);
37 int main(int argc, char **argv)
39 SilcBool success = FALSE;
40 SilcAccelerator softacc;
42 if (argc > 1 && !strcmp(argv[1], "-d")) {
45 silc_log_debug_hexdump(TRUE);
46 silc_log_set_debug_string("*acc*");
49 silc_crypto_init(NULL);
50 if (!silc_hash_alloc("sha1", &hash))
53 if (!silc_create_key_pair("rsa", 2048, "pubkey.pub", "privkey.prv", NULL,
54 "", &public_key, &private_key, FALSE))
57 schedule = silc_schedule_init(0, NULL, NULL);
59 softacc = silc_acc_find("softacc");
63 if (!silc_acc_init(softacc, schedule, "min_threads", 2, "max_threads",
67 accpub = silc_acc_public_key(softacc, public_key);
70 accprv = silc_acc_private_key(softacc, private_key);
74 if (silc_acc_get_public_key(softacc, accpub) != public_key)
76 if (silc_acc_get_private_key(softacc, accprv) != private_key)
79 silc_schedule_task_add_timeout(schedule, sign, NULL, 0, 1);
80 silc_schedule_task_add_timeout(schedule, stats, NULL, 1, 1);
81 silc_schedule_task_add_timeout(schedule, quit, NULL, 19, 0);
82 silc_schedule(schedule);
84 silc_acc_uninit(softacc);
85 silc_schedule_uninit(schedule);
91 SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
92 fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");