diff options
author | Miloslav Trmač <mitr@redhat.com> | 2010-11-11 00:45:30 +0100 |
---|---|---|
committer | Miloslav Trmač <mitr@redhat.com> | 2010-11-11 00:45:30 +0100 |
commit | 52c69fc0152b6d63644bbdab8aa5b07892255436 (patch) | |
tree | 5d9d842ee5712e5258483d7f67bc025ae22ac010 /tests/digests.c | |
parent | 278a10d4af56af2af8fcb4aa81f492db6109ef58 (diff) | |
download | ncrypto-52c69fc0152b6d63644bbdab8aa5b07892255436.tar.gz ncrypto-52c69fc0152b6d63644bbdab8aa5b07892255436.tar.xz ncrypto-52c69fc0152b6d63644bbdab8aa5b07892255436.zip |
Add tests of handling very large data at once
Diffstat (limited to 'tests/digests.c')
-rw-r--r-- | tests/digests.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/digests.c b/tests/digests.c index d8ca31c..19e54cd 100644 --- a/tests/digests.c +++ b/tests/digests.c @@ -96,12 +96,15 @@ static const struct tv tvs[] = #undef TV }; +#define LARGE_SIZE (10 * 1024 * 1024) + int main (void) { struct ncr_digest_session *sess; uint8_t dest[256]; size_t i, j, dest_size; + void *large; CK_RV res; for (i = 0; i < G_N_ELEMENTS (tvs); i++) @@ -199,5 +202,22 @@ main (void) assert (res == CKR_OK); } + res = ncr_digest_alloc (&sess, CKM_SHA256); + assert (res == CKR_OK); + res = ncr_digest_init (sess); + assert (res == CKR_OK); + + large = g_malloc0 (LARGE_SIZE); + dest_size = sizeof (dest); + res = ncr_digest (sess, dest, &dest_size, large, LARGE_SIZE); + assert (res == CKR_OK); + assert (dest_size == 32); + assert (memcmp (dest, "\xE5\xB8\x44\xCC\x57\xF5\x70\x94\xEA\x45\x85\xE2\x35\xF3\x6C\x78\xC1\xCD\x22\x22\x62\xBB\x89\xD5\x3C\x94\xDC\xB4\xD6\xB3\xE5\x5D", 32) + == 0); + g_free(large); + + res = ncr_digest_free (sess); + assert (res == CKR_OK); + return EXIT_SUCCESS; } |