summaryrefslogtreecommitdiff
path: root/tests/vb2_rsa_padding_tests.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2014-06-05 13:32:11 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-06-07 01:37:21 +0000
commitb9be53640efdee92b1b42e60adda274563236301 (patch)
treef8f2f5ef809c7a0d163334f9e2675b016fae3ca4 /tests/vb2_rsa_padding_tests.c
parentb64f097891e697eaf3b2794baae934f8b4d82d14 (diff)
downloadvboot-b9be53640efdee92b1b42e60adda274563236301.tar.gz
Error codes reported by the crypto and storage APIs are now very specific, and tests verify the proper errors are reported. More specific error codes coming to other files next, but I don't want this CL to get too long. This also changes test_common.c so TEST_EQ() reports mismatched values in both decimal and hex, and adds TEST_SUCC() to test for a successful return value. BUG=chromium:370082 BRANCH=none TEST=make clean && VBOOT2=1 COV=1 make Change-Id: I255c8e5769284fbc286b9d94631b19677a71cdd0 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/202778 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'tests/vb2_rsa_padding_tests.c')
-rw-r--r--tests/vb2_rsa_padding_tests.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/tests/vb2_rsa_padding_tests.c b/tests/vb2_rsa_padding_tests.c
index 233f7298..f1b7aa43 100644
--- a/tests/vb2_rsa_padding_tests.c
+++ b/tests/vb2_rsa_padding_tests.c
@@ -51,8 +51,8 @@ static void test_signatures(const struct vb2_public_key *key)
/* The first test signature is valid. */
Memcpy(sig, signatures[0], sizeof(sig));
- TEST_EQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
- 0, "RSA Padding Test valid sig");
+ TEST_SUCC(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
+ "RSA Padding Test valid sig");
/* All other signatures should fail verification. */
unexpected_success = 0;
@@ -79,37 +79,40 @@ static void test_verify_digest(struct vb2_public_key *key) {
vb2_workbuf_init(&wb, workbuf, sizeof(workbuf));
Memcpy(sig, signatures[0], sizeof(sig));
- TEST_EQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
- 0, "vb2_verify_digest() good");
+ TEST_SUCC(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
+ "vb2_verify_digest() good");
Memcpy(sig, signatures[0], sizeof(sig));
vb2_workbuf_init(&wb, workbuf, sizeof(sig) * 3 - 1);
- TEST_NEQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
- 0, "vb2_verify_digest() small workbuf");
+ TEST_EQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
+ VB2_ERROR_RSA_VERIFY_WORKBUF,
+ "vb2_verify_digest() small workbuf");
vb2_workbuf_init(&wb, workbuf, sizeof(workbuf));
key->algorithm += VB2_ALG_COUNT;
Memcpy(sig, signatures[0], sizeof(sig));
- TEST_NEQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
- 0, "vb2_verify_digest() bad key alg");
+ TEST_EQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
+ VB2_ERROR_RSA_VERIFY_ALGORITHM,
+ "vb2_verify_digest() bad key alg");
key->algorithm -= VB2_ALG_COUNT;
key->arrsize *= 2;
Memcpy(sig, signatures[0], sizeof(sig));
- TEST_NEQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
- 0, "vb2_verify_digest() bad key len");
+ TEST_EQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
+ VB2_ERROR_RSA_VERIFY_SIG_LEN,
+ "vb2_verify_digest() bad sig len");
key->arrsize /= 2;
/* Corrupt the signature near start and end */
Memcpy(sig, signatures[0], sizeof(sig));
sig[3] ^= 0x42;
- TEST_NEQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
- 0, "vb2_verify_digest() bad sig");
+ TEST_EQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
+ VB2_ERROR_RSA_PADDING, "vb2_verify_digest() bad sig");
Memcpy(sig, signatures[0], sizeof(sig));
sig[RSA1024NUMBYTES - 3] ^= 0x56;
- TEST_NEQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
- 0, "vb2_verify_digest() bad sig end");
+ TEST_EQ(vb2_verify_digest(key, sig, test_message_sha1_hash, &wb),
+ VB2_ERROR_RSA_PADDING, "vb2_verify_digest() bad sig end");
}
int main(int argc, char *argv[])