From: Dariusz Michaluk Date: Wed, 14 Sep 2016 11:48:19 +0000 (+0200) Subject: YACA: Add sign/digest API call order tests. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=df065fef39eb955cd71cc8fe3609a6b435125001;p=platform%2Fcore%2Ftest%2Fsecurity-tests.git YACA: Add sign/digest API call order tests. Change-Id: Ia15c903ec1492da61ea6b079ce0cabb8951969b2 --- diff --git a/src/yaca/yaca-test-digest.cpp b/src/yaca/yaca-test-digest.cpp index 0e28fc08..f472dd65 100644 --- a/src/yaca/yaca-test-digest.cpp +++ b/src/yaca/yaca-test-digest.cpp @@ -149,6 +149,18 @@ RUNNER_TEST(T2040_yaca_digest_get_output_length_invalid_param, YacaTest) YACA_INVALID_PARAM(yaca_context_get_output_length(ctx_ptr.get(), 42, &out_len)); } +RUNNER_TEST(T2045_yaca_digest_call_order_invalid_param) +{ + char output[512]; + size_t out_len; + CtxPtr ctx = digest_init(YACA_DIGEST_SHA512); + + YACA_SUCCESS(yaca_digest_update(ctx.get(), DATA.data(), DATA.size())); + YACA_SUCCESS(yaca_digest_finalize(ctx.get(), output, &out_len)); + + YACA_INVALID_PARAM(yaca_digest_update(ctx.get(), DATA.data(), DATA.size())); +} + RUNNER_TEST(T2050_yaca_digest_get_output_length, YacaTest) { digest_length_test(YACA_DIGEST_MD5, 128); diff --git a/src/yaca/yaca-test-sign.cpp b/src/yaca/yaca-test-sign.cpp index 0a8d77b1..a5bea1e9 100644 --- a/src/yaca/yaca-test-sign.cpp +++ b/src/yaca/yaca-test-sign.cpp @@ -170,6 +170,22 @@ RUNNER_TEST(T6090_yaca_sign_get_output_length_invalid_param) YACA_INVALID_PARAM(yaca_context_get_output_length(ctx.get(), 0, nullptr)); } +RUNNER_TEST(T6095_yaca_sign_verify_call_order_invalid_param) +{ + KeyPtr key = generate_key(YACA_KEY_TYPE_RSA_PRIV, YACA_KEY_LENGTH_1024BIT); + KeyPtr key_pub = extract_public_key(key); + CtxPtr ctx_sgn = sign_init(YACA_DIGEST_SHA1, key); + CtxPtr ctx_vrf = verify_init(YACA_DIGEST_SHA1, key_pub); + size_t output_len = get_output_length(ctx_sgn); + Buffer output(output_len); + + YACA_SUCCESS(yaca_sign_finalize(ctx_sgn.get(), output.data(), &output_len)); + YACA_SUCCESS(yaca_verify_finalize(ctx_vrf.get(), output.data(), output_len)); + + YACA_INVALID_PARAM(yaca_sign_update(ctx_sgn.get(), output.data(), output_len)); + YACA_INVALID_PARAM(yaca_verify_update(ctx_vrf.get(), output.data(), output_len)); +} + RUNNER_TEST(T6100_yaca_sign_set_property_invalid_param) { KeyPtr key = generate_key(YACA_KEY_TYPE_RSA_PRIV, YACA_KEY_LENGTH_512BIT); @@ -215,6 +231,19 @@ RUNNER_TEST(T6100_yaca_sign_set_property_invalid_param) static_cast(&padding), sizeof(yaca_padding_e))); + ctx_sgn = sign_init(YACA_DIGEST_SHA256, key); + size_t output_len = get_output_length(ctx_sgn); + Buffer output(output_len); + YACA_SUCCESS(yaca_sign_finalize(ctx_sgn.get(), output.data(), &output_len)); + YACA_INVALID_PARAM(yaca_context_set_property(ctx_sgn.get(), YACA_PROPERTY_PADDING, + static_cast(&padding), + sizeof(yaca_padding_e))); + + ctx_vrf = verify_init(YACA_DIGEST_SHA256, key_pub); + YACA_SUCCESS(yaca_verify_finalize(ctx_vrf.get(), output.data(), output_len)); + YACA_INVALID_PARAM(yaca_context_set_property(ctx_vrf.get(), YACA_PROPERTY_PADDING, + static_cast(&padding), + sizeof(yaca_padding_e))); } RUNNER_TEST(T6120_yaca_sign_get_output_length) @@ -495,7 +524,8 @@ RUNNER_TEST(T6180_yaca_sign_verify_padding_test_vectors, YacaTest) CtxPtr ctx = sign_init(algo, key_prv); size_t output_len = get_output_length(ctx); YACA_SUCCESS(yaca_context_set_property(ctx.get(), YACA_PROPERTY_PADDING, - static_cast(&padding), sizeof(padding))); + static_cast(&padding), + sizeof(yaca_padding_e))); if (input.size() > 0) { for (size_t i = 0; i < repeats; i++) @@ -510,7 +540,8 @@ RUNNER_TEST(T6180_yaca_sign_verify_padding_test_vectors, YacaTest) ctx = verify_init(algo, key_pub); YACA_SUCCESS(yaca_context_set_property(ctx.get(), YACA_PROPERTY_PADDING, - static_cast(&padding), sizeof(padding))); + static_cast(&padding), + sizeof(yaca_padding_e))); if (input.size() > 0) for (size_t i = 0; i < repeats; i++)