Files
mars-matrixssl/crypto/test/cryptoOpen.c
Janne Johansson d0a51a7e43 MatrixSSL 4.0.0
2018-09-13 12:17:26 +03:00

56 lines
1.3 KiB
C

#include "osdep_stdio.h"
#include "crypto/cryptoApi.h"
int main(void)
{
psSha256_t md;
int i;
unsigned char out[32 + 2];
unsigned char txt[3] = { 'a', 'b', 'c' };
const unsigned char expect[32 + 2] =
{
0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea, 0x41, 0x41, 0x40, 0xde,
0x5d, 0xae, 0x22, 0x23, 0xb0, 0x03, 0x61, 0xa3, 0x96, 0x17, 0x7a, 0x9c,
0xb4, 0x10, 0xff, 0x61, 0xf2, 0x00, 0x15, 0xad,
0xfe, 0xfe /* bytes unmodified. */
};
unsigned char sum;
psRes_t res;
Memset(out, 0xfe, 32 + 2);
/* Try opening cryptographic library. */
res = psCryptoOpen(PSCRYPTO_CONFIG);
if (res == PS_SELFTEST_FAILED)
{
Fprintf(stdout, "Library initialization failed: Self-test failure\n");
return 2;
}
else if (res < PS_SUCCESS)
{
Fprintf(stdout, "Library initialization failed\n");
return 2;
}
/* Things appear ok. Ensure they are: */
psSha256PreInit(&md); /* Pre-init before first use. */
psSha256Init(&md);
psSha256Update(&md, txt, 3);
psSha256Final(&md, out);
sum = 0;
for(i = 0; i < 32 + 2; i++)
{
sum |= out[i] ^ expect[i];
}
if (sum != 0)
{
Fprintf(stderr, "Library is broken.\n");
return 3;
}
Fprintf(stderr, "Successful init.\n");
return 0;
}