37TEST_CASE(
"sha256 NIST abc vector",
"[crypto_provider]")
39 static const uint8_t input[] = {
'a',
'b',
'c' };
43 0xbaU, 0x78U, 0x16U, 0xbfU, 0x8fU, 0x01U, 0xcfU, 0xeaU,
44 0x41U, 0x41U, 0x40U, 0xdeU, 0x5dU, 0xaeU, 0x2eU, 0xc7U,
45 0x3dU, 0x38U, 0x0fU, 0xb0U, 0x0bU, 0xbbU, 0x35U, 0xe2U,
46 0xb9U, 0xf2U, 0x7dU, 0x3cU, 0x0eU, 0xaeU, 0xd7U, 0xc3U
52 printf(
"[sha256 via provider] ");
54 printf(
"%02x",
static_cast<unsigned int>(out[i]));
65TEST_CASE(
"sha512 NIST abc vector",
"[crypto_provider]")
67 static const uint8_t input[] = {
'a',
'b',
'c' };
69 0xddU, 0xafU, 0x35U, 0xa1U, 0x93U, 0x61U, 0x7aU, 0xbaU,
70 0xccU, 0x41U, 0x73U, 0x49U, 0xaeU, 0x20U, 0x41U, 0x31U,
71 0x12U, 0xe6U, 0xfaU, 0x4eU, 0x89U, 0xa9U, 0x7eU, 0xa2U,
72 0x0aU, 0x9eU, 0xeeU, 0xe6U, 0x4bU, 0x55U, 0xd3U, 0x9aU,
73 0x21U, 0x92U, 0x99U, 0x2aU, 0x27U, 0x4fU, 0xc1U, 0xa8U,
74 0x36U, 0xbaU, 0x3cU, 0x23U, 0xa3U, 0xfeU, 0xebU, 0xbdU,
75 0x45U, 0x4dU, 0x44U, 0x23U, 0x64U, 0x3cU, 0xe8U, 0x0eU,
76 0x2aU, 0x9aU, 0xc9U, 0x4fU, 0xa5U, 0x4cU, 0xa4U, 0x9fU
89TEST_CASE(
"aesCbcEncrypt NIST SP800-38A F.2.1 one block",
"[crypto_provider]")
92 0x2bU, 0x7eU, 0x15U, 0x16U, 0x28U, 0xaeU, 0xd2U, 0xa6U,
93 0xabU, 0xf7U, 0x15U, 0x88U, 0x09U, 0xcfU, 0x4fU, 0x3cU
96 0x6bU, 0xc1U, 0xbeU, 0xe2U, 0x2eU, 0x40U, 0x9fU, 0x96U,
97 0xe9U, 0x3dU, 0x7eU, 0x11U, 0x73U, 0x93U, 0x17U, 0x2aU
100 0x76U, 0x49U, 0xabU, 0xacU, 0x81U, 0x19U, 0xb2U, 0x46U,
101 0xceU, 0xe9U, 0x8eU, 0x9bU, 0x12U, 0xe9U, 0x19U, 0x7dU
104 0x00U, 0x01U, 0x02U, 0x03U, 0x04U, 0x05U, 0x06U, 0x07U,
105 0x08U, 0x09U, 0x0aU, 0x0bU, 0x0cU, 0x0dU, 0x0eU, 0x0fU
111 static_cast<uint16_t
>(
sizeof(plaintext)),
114 static_cast<uint8_t
>(
sizeof(key)),
126TEST_CASE(
"aesCbcDecrypt NIST SP800-38A F.2.2 one block",
"[crypto_provider]")
129 0x2bU, 0x7eU, 0x15U, 0x16U, 0x28U, 0xaeU, 0xd2U, 0xa6U,
130 0xabU, 0xf7U, 0x15U, 0x88U, 0x09U, 0xcfU, 0x4fU, 0x3cU
133 0x76U, 0x49U, 0xabU, 0xacU, 0x81U, 0x19U, 0xb2U, 0x46U,
134 0xceU, 0xe9U, 0x8eU, 0x9bU, 0x12U, 0xe9U, 0x19U, 0x7dU
137 0x6bU, 0xc1U, 0xbeU, 0xe2U, 0x2eU, 0x40U, 0x9fU, 0x96U,
138 0xe9U, 0x3dU, 0x7eU, 0x11U, 0x73U, 0x93U, 0x17U, 0x2aU
141 0x00U, 0x01U, 0x02U, 0x03U, 0x04U, 0x05U, 0x06U, 0x07U,
142 0x08U, 0x09U, 0x0aU, 0x0bU, 0x0cU, 0x0dU, 0x0eU, 0x0fU
148 static_cast<uint16_t
>(
sizeof(ciphertext)),
151 static_cast<uint8_t
>(
sizeof(key)),
165TEST_CASE(
"aesCbc bit-padding round-trip",
"[crypto_provider]")
168 0x2bU, 0x7eU, 0x15U, 0x16U, 0x28U, 0xaeU, 0xd2U, 0xa6U,
169 0xabU, 0xf7U, 0x15U, 0x88U, 0x09U, 0xcfU, 0x4fU, 0x3cU
176 0x00U, 0x01U, 0x02U, 0x03U, 0x04U, 0x05U, 0x06U, 0x07U,
177 0x08U, 0x09U, 0x0aU, 0x0bU, 0x0cU, 0x0dU, 0x0eU, 0x0fU
180 0x00U, 0x01U, 0x02U, 0x03U, 0x04U, 0x05U, 0x06U, 0x07U,
181 0x08U, 0x09U, 0x0aU, 0x0bU, 0x0cU, 0x0dU, 0x0eU, 0x0fU
188 static_cast<uint16_t
>(
sizeof(plaintext)),
191 static_cast<uint8_t
>(
sizeof(key)),
203 static_cast<uint8_t
>(
sizeof(key)),
215TEST_CASE(
"ecdh shared secret symmetry secp256r1",
"[crypto_provider]")
224 CW_Curve curve = CW_CURVE_SECP256R1;
226 bool okA =
s_provider.makeKey(pubA, privA, curve);
227 bool okB =
s_provider.makeKey(pubB, privB, curve);
229 TEST_ASSERT_TRUE(okA);
230 TEST_ASSERT_TRUE(okB);
232 bool ecdhA =
s_provider.ecdh(pubB, privA, secretA, curve);
233 bool ecdhB =
s_provider.ecdh(pubA, privB, secretB, curve);
235 TEST_ASSERT_TRUE(ecdhA);
236 TEST_ASSERT_TRUE(ecdhB);