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(quit)
21 silc_schedule_stop(schedule);
24 SILC_TASK_CALLBACK(sign)
26 silc_pkcs_sign(accprv, data, data_len, TRUE, hash, sign_compl, NULL);
28 silc_schedule_task_add_timeout(schedule, sign, NULL, 0, 70000);
31 int main(int argc, char **argv)
33 SilcBool success = FALSE;
34 SilcAccelerator softacc;
36 if (argc > 1 && !strcmp(argv[1], "-d")) {
39 silc_log_debug_hexdump(TRUE);
40 silc_log_set_debug_string("*acc*");
43 silc_crypto_init(NULL);
44 if (!silc_hash_alloc("sha1", &hash))
47 if (!silc_create_key_pair("rsa", 2048, "pubkey.pub", "privkey.prv", NULL,
48 "", &public_key, &private_key, FALSE))
51 schedule = silc_schedule_init(0, NULL, NULL);
53 softacc = silc_acc_find("softacc");
57 if (!silc_acc_init(softacc, schedule, "min_threads", 2, "max_threads",
61 accpub = silc_acc_public_key(softacc, public_key);
64 accprv = silc_acc_private_key(softacc, private_key);
68 if (silc_acc_get_public_key(softacc, accpub) != public_key)
70 if (silc_acc_get_private_key(softacc, accprv) != private_key)
73 silc_schedule_task_add_timeout(schedule, sign, NULL, 0, 1);
74 silc_schedule_task_add_timeout(schedule, quit, NULL, 15, 0);
75 silc_schedule(schedule);
77 silc_acc_uninit(softacc);
78 silc_schedule_uninit(schedule);
84 SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
85 fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");