void misc_tests(void) { uint8_t digest[VB2_SHA512_DIGEST_SIZE]; struct vb2_digest_context dc; /* Crypto algorithm to hash algorithm mapping */ TEST_EQ(vb2_crypto_to_hash(VB2_ALG_RSA1024_SHA1), VB2_HASH_SHA1, "Crypto map to SHA1"); TEST_EQ(vb2_crypto_to_hash(VB2_ALG_RSA2048_SHA256), VB2_HASH_SHA256, "Crypto map to SHA256"); TEST_EQ(vb2_crypto_to_hash(VB2_ALG_RSA4096_SHA256), VB2_HASH_SHA256, "Crypto map to SHA256 2"); TEST_EQ(vb2_crypto_to_hash(VB2_ALG_RSA8192_SHA512), VB2_HASH_SHA512, "Crypto map to SHA512"); TEST_EQ(vb2_crypto_to_hash(VB2_ALG_COUNT), VB2_HASH_INVALID, "Crypto map to invalid"); TEST_EQ(vb2_digest_size(VB2_HASH_INVALID), 0, "digest size invalid alg"); TEST_EQ(vb2_digest((uint8_t *)oneblock_msg, strlen(oneblock_msg), VB2_HASH_INVALID, digest, sizeof(digest)), VB2_ERROR_SHA_INIT_ALGORITHM, "vb2_digest() invalid alg"); /* Test bad algorithm inside extend and finalize */ vb2_digest_init(&dc, VB2_HASH_SHA256); dc.hash_alg = VB2_HASH_INVALID; TEST_EQ(vb2_digest_extend(&dc, digest, sizeof(digest)), VB2_ERROR_SHA_EXTEND_ALGORITHM, "vb2_digest_extend() invalid alg"); TEST_EQ(vb2_digest_finalize(&dc, digest, sizeof(digest)), VB2_ERROR_SHA_FINALIZE_ALGORITHM, "vb2_digest_finalize() invalid alg"); }
/** * Convert an old-style RSA public key struct to a new one. * * The new one does not allocate memory, so you must keep the old one around * until you're done with the new one. * * @param k2 Destination new key * @param key Source old key */ void vb2_public_key_to_vb2(struct vb2_public_key *k2, const struct RSAPublicKey *key) { k2->arrsize = key->len; k2->n0inv = key->n0inv; k2->n = key->n; k2->rr = key->rr; k2->sig_alg = vb2_crypto_to_signature(key->algorithm); k2->hash_alg = vb2_crypto_to_hash(key->algorithm); }
int vb2_unpack_key(struct vb2_public_key *key, const uint8_t *buf, uint32_t size) { const struct vb2_packed_key *k = (const struct vb2_packed_key *)buf; key->arrsize = 0; key->hash_alg = vb2_crypto_to_hash(k->algorithm); return mock_unpack_key_retval; }