summaryrefslogtreecommitdiffstats
path: root/tests/digests.c
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2010-11-11 00:45:30 +0100
committerMiloslav Trmač <mitr@redhat.com>2010-11-11 00:45:30 +0100
commit52c69fc0152b6d63644bbdab8aa5b07892255436 (patch)
tree5d9d842ee5712e5258483d7f67bc025ae22ac010 /tests/digests.c
parent278a10d4af56af2af8fcb4aa81f492db6109ef58 (diff)
downloadncrypto-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.c20
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;
}