int main() { test_trim(); test_toupper_tolower(); test_compare_icase(); test_sstream(); test_prefix_suffix(); test_replace(); test_split_ws(); test_split(); test_join(); test_contains(); test_extract_between(); test_random(); test_hexdump(); test_base64(); test_uri_decode(); test_levenshtein(); #if HAVE_OPENSSL test_crypto_digest(); #endif return 0; }
int main( int, char ** ) { std::cout << "rskey tests ..." << std::endl; ezpwd::asserter assert; test_base32( assert ); test_base64( assert ); test_base16( assert ); test_rskey_simple( assert ); // 8 bytes --> 13 base-32 symbols + 2 parity test_rskey<2>( assert, u8vec_t { 0x00, 0x01, 0x02, 0x03, 0xFF, 0xFE, 0xFD, 0xFC }, "000G4-0YYYU-XYQWE" ); // 12 bytes --> 20 base-32 symbols + 5 parity test_rskey<5>( assert, u8vec_t { 0x00, 0x01, 0x02, 0x03, 0xFF, 0xFE, 0xFD, 0xFC, 0x7e, 0x7f, 0x08, 0x81 }, "000G4-0YYYU-XYQYK-Y120G-T8P84" ); if ( assert.failures ) std::cout << __FILE__ << " fails " << assert.failures << " tests" << std::endl; else std::cout << " ...all tests passed." << std::endl; return assert.failures ? 1 : 0; }
int main(void) { assert(R_Type_BytesAllocated == 0); test_set_get(); test_append_bytes(); test_int_float_string(); test_getSubString(); test_setHex(); test_json_formatting(); test_shift(); test_trim(); test_split(); test_base64(); test_puts(); test_is_same(); assert(R_Type_BytesAllocated == 0); printf("Pass\n"); }
int serve_b64test(struct http_request *req) { int i; u_int32_t len; struct kore_buf *res; u_int8_t *data; res = kore_buf_create(1024); for (i = 0; b64tests[i] != NULL; i++) test_base64((u_int8_t *)b64tests[i], strlen(b64tests[i]), res); data = kore_buf_release(res, &len); http_response_header(req, "content-type", "text/plain"); http_response(req, 200, data, len); kore_mem_free(data); return (KORE_RESULT_OK); }
int main() #endif { do { int y, x; for(y = 0; y < 16; ++y){ printf("{"); for(x = 0; x < 16; ++x){ printf("%d, ", (2 * ( y / 8 ) + ( x / 8 ))); } printf("}\n"); } /* Print copyright information */ printf("Doubango Project\nCopyright (C) 2009 Mamadou Diop \n\n"); #if RUN_TEST_LISTS || RUN_TEST_ALL /* linked lists */ test_basic_list(); printf("\n\n"); test_complex_list(); printf("\n\n"); test_filtered_list(); printf("\n\n"); #endif #if RUN_TEST_HEAP || RUN_TEST_ALL /* heap */ test_heap(); printf("\n\n"); #endif #if RUN_TEST_STRINGS || RUN_TEST_ALL /* strings */ test_strings(); printf("\n\n"); #endif #if RUN_TEST_URL || RUN_TEST_ALL /* url */ test_url(); printf("\n\n"); #endif #if RUN_TEST_THREADS || RUN_TEST_ALL /* threads */ test_threads(); printf("\n\n"); #endif #if RUN_TEST_MUTEX || RUN_TEST_ALL /* mutex */ test_mutex(); printf("\n\n"); #endif #if RUN_TEST_CONDWAIT || RUN_TEST_ALL /* condwait */ test_condwait(); printf("\n\n"); #endif #if RUN_TEST_SEMAPHORE || RUN_TEST_ALL /* semaphore */ test_semaphore(); printf("\n\n"); #endif #if RUN_TEST_SAFEOBJECT || RUN_TEST_ALL /* safe object */ //test_safeobject(); printf("\n\n"); #endif #if RUN_TEST_OBJECT || RUN_TEST_ALL /* object */ //test_object(); printf("\n\n"); #endif #if RUN_TEST_PARAMS || RUN_TEST_ALL /* parameters */ test_params(); printf("\n\n"); #endif #if RUN_TEST_OPTIONS || RUN_TEST_ALL /* options */ test_options(); printf("\n\n"); #endif #if RUN_TEST_TIMER || RUN_TEST_ALL /* timer */ test_timer(); printf("\n\n"); #endif #if RUN_TEST_RUNNABLE || RUN_TEST_ALL /* test runnable. */ test_runnable(); printf("\n\n"); #endif #if RUN_TEST_BUFFER || RUN_TEST_ALL /* test buffer */ test_buffer(); #endif #if RUN_TEST_MD5 || RUN_TEST_ALL /* test md5 and hmac_md5 */ test_md5(); test_hmac_md5(); #endif #if RUN_TEST_SHA1 || RUN_TEST_ALL /* test sha1 and hmac_sha-1 */ test_sha1(); test_hmac_sha1(); #endif #if RUN_TEST_BASE64 || RUN_TEST_ALL /* test base64 encoding/decoding */ test_base64(); #endif #if RUN_TEST_UUID || RUN_TEST_ALL /* test fake UUID (version5) */ test_uuid(); #endif #if RUN_TEST_FSM || RUN_TEST_ALL /* test FSM */ test_fsm(); #endif } while(LOOP); getchar(); return 0; }
int main (void) { int client_id = 1851; char client_key[] = { 0xa0, 0x15, 0x5b, 0x36, 0xde, 0xc8, 0x65, 0xe8, 0x59, 0x19, 0x1f, 0x7d, 0xae, 0xfa, 0xbc, 0x77, 0xa4, 0x59, 0xd4, 0x33 }; char *client_hexkey = "a0155b36dec865e859191f7daefabc77a459d433"; char *client_b64key = "oBVbNt7IZehZGR99rvq8d6RZ1DM="; ykclient_t *ykc; int ret; curl_global_init(CURL_GLOBAL_ALL); TEST(("init self")); ret = ykclient_init (&ykc); printf ("ykclient_init (%d): %s\n", ret, ykclient_strerror (ret)); assert(ret == YKCLIENT_OK); TEST(("null client_id, expect REPLAYED_OTP")); ykclient_set_verify_signature(ykc, 0); ykclient_set_client (ykc, client_id, 0, NULL); #ifndef TEST_WITHOUT_INTERNET ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert(ret == YKCLIENT_REPLAYED_OTP); #else printf ("Test SKIPPED\n"); #endif TEST(("client_id set(20), correct client_key, expect REPLAYED_OTP")); ykclient_set_client (ykc, client_id, 20, client_key); #ifndef TEST_WITHOUT_INTERNET ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_REPLAYED_OTP); #else printf ("Test SKIPPED\n"); #endif TEST(("wrong client_id set(10), correct client_key, expect BAD_SIGNATURE")); ykclient_set_client (ykc, client_id, 10, client_key); #ifndef TEST_WITHOUT_INTERNET ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_BAD_SIGNATURE); #else printf ("Test SKIPPED\n"); #endif TEST(("invalid client_id set(a), correct client_key, expect HEX_DECODE_ERROR")); ret = ykclient_set_client_hex (ykc, client_id, "a"); printf ("ykclient_set_client_hex (%d): %s\n", ret, ykclient_strerror (ret)); assert (ret == YKCLIENT_HEX_DECODE_ERROR); TEST(("invalid client_id set(xx), correct client_key, expect HEX_DECODE_ERROR")); ret = ykclient_set_client_hex (ykc, client_id, "xx"); printf ("ykclient_set_client_hex (%d): %s\n", ret, ykclient_strerror (ret)); assert (ret == YKCLIENT_HEX_DECODE_ERROR); TEST(("hex client_id set, correct client_key, expect OK")); ret = ykclient_set_client_hex (ykc, client_id, client_hexkey); printf ("ykclient_set_client_hex (%d): %s\n", ret, ykclient_strerror (ret)); assert (ret == YKCLIENT_OK); #ifndef TEST_WITHOUT_INTERNET TEST(("validation request, expect REPLAYED_OTP")); ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_REPLAYED_OTP); #else printf ("Test SKIPPED\n"); #endif TEST(("set deadbeef client_id, expect OK")); ret = ykclient_set_client_hex (ykc, client_id, "deadbeef"); printf ("ykclient_set_client_hex (%d): %s\n", ret, ykclient_strerror (ret)); assert (ret == YKCLIENT_OK); #ifndef TEST_WITHOUT_INTERNET TEST(("validation request, expect BAD_SIGNATURE")); ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_BAD_SIGNATURE); #else printf ("Test SKIPPED\n"); #endif TEST(("b64 set deadbeef client_id, expect OK")); ret = ykclient_set_client_b64 (ykc, client_id, "deadbeef"); printf ("ykclient_set_client_b64 (%d): %s\n", ret, ykclient_strerror (ret)); assert (ret == YKCLIENT_OK); #ifndef TEST_WITHOUT_INTERNET /* When the server dislikes our signature, it will sign the response with a NULL key, so the API call will fail with BAD_SERVER_SIGNATURE even though the server returned status=BAD_SIGNATURE. */ TEST(("validation request, expect BAD_SERVER_SIGNATURE")); ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_BAD_SERVER_SIGNATURE); #else printf ("Test SKIPPED\n"); #endif #ifndef TEST_WITHOUT_INTERNET /* Now, disable our checking of the servers signature to get the error the server returned (server will use 00000 as key when signing this error response). */ TEST(("validation request, expect BAD_SIGNATURE")); ykclient_set_verify_signature (ykc, 0); ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_BAD_SIGNATURE); #else printf ("Test SKIPPED\n"); #endif TEST(("b64 set client_b64key, expect OK")); ret = ykclient_set_client_b64 (ykc, client_id, client_b64key); printf ("ykclient_set_client_b64 (%d): %s\n", ret, ykclient_strerror (ret)); assert (ret == YKCLIENT_OK); #ifndef TEST_WITHOUT_INTERNET TEST(("validation request, expect REPLAYED_OTP")); ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_REPLAYED_OTP); #else printf ("Test SKIPPED\n"); #endif TEST(("set WS 2.0 URL template")); /* Set one URL and run tests with that. */ ykclient_set_url_template (ykc, "http://api.yubico.com/wsapi/2.0/verify?id=%d&otp=%s"); #ifndef TEST_WITHOUT_INTERNET TEST(("validation request, expect REPLAYED_OTP")); ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("yubikey_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_REPLAYED_OTP); #else printf ("Test SKIPPED\n"); #endif ykclient_set_verify_signature(ykc, 1); TEST(("validation request with valid signature, expect REPLAYED_OTP")); // Check a genuine signature. ykclient_set_client (ykc, client_id, 20, client_key); #ifndef TEST_WITHOUT_INTERNET ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_REPLAYED_OTP); #else printf ("Test SKIPPED\n"); #endif TEST(("validation request with bad key, expect YKCLIENT_BAD_SERVER_SIGNATURE")); // Check a genuine signature with a truncated key. ykclient_set_client (ykc, client_id, 10, client_key); #ifndef TEST_WITHOUT_INTERNET ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_BAD_SERVER_SIGNATURE); #else printf ("Test SKIPPED\n"); #endif TEST(("Set and use several V2.0 URLs")); const char *templates[] = { "http://api.yubico.com/wsapi/2.0/verify?id=%d&otp=%s", "http://api2.yubico.com/wsapi/2.0/verify?id=%d&otp=%s", "http://api3.yubico.com/wsapi/2.0/verify?id=%d&otp=%s", "http://api4.yubico.com/wsapi/2.0/verify?id=%d&otp=%s", "http://api5.yubico.com/wsapi/2.0/verify?id=%d&otp=%s", }; ykclient_set_url_templates(ykc, 5, templates); ykclient_set_client (ykc, client_id, 20, client_key); #ifndef TEST_WITHOUT_INTERNET ret = ykclient_request (ykc, "dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh"); printf ("ykclient_request (%d): %s\n", ret, ykclient_strerror (ret)); printf ("used url: %s\n", ykclient_get_last_url (ykc)); assert (ret == YKCLIENT_REPLAYED_OTP); #else printf ("Test SKIPPED\n"); #endif ykclient_done (&ykc); TEST(("strerror 0")); printf ("strerror(0): %s\n", ykclient_strerror (0)); ret = strcmp(ykclient_strerror (0), "Success"); assert (ret == 0); TEST(("strerror BAD_OTP")); printf ("strerror(BAD_OTP): %s\n", ykclient_strerror (YKCLIENT_BAD_OTP)); ret = strcmp(ykclient_strerror (YKCLIENT_BAD_OTP), "Yubikey OTP was bad (BAD_OTP)"); assert (ret == 0); test_v1_validation(client_id, client_b64key); test_base64(); test_hmac(); printf ("All tests passed\n"); curl_global_cleanup(); return 0; }