xref: /aosp_15_r20/external/fsverity-utils/programs/test_hash_algs.c (revision b13c0e4024008a1f948ee8189745cb3371f4ac04)
1*b13c0e40SEric Biggers // SPDX-License-Identifier: MIT
2*b13c0e40SEric Biggers /*
3*b13c0e40SEric Biggers  * Test the hash algorithm-related libfsverity APIs.
4*b13c0e40SEric Biggers  *
5*b13c0e40SEric Biggers  * Copyright 2020 Google LLC
6*b13c0e40SEric Biggers  *
7*b13c0e40SEric Biggers  * Use of this source code is governed by an MIT-style
8*b13c0e40SEric Biggers  * license that can be found in the LICENSE file or at
9*b13c0e40SEric Biggers  * https://opensource.org/licenses/MIT.
10*b13c0e40SEric Biggers  */
11*b13c0e40SEric Biggers 
12*b13c0e40SEric Biggers #include "utils.h"
13*b13c0e40SEric Biggers 
14*b13c0e40SEric Biggers #define SHA256_DIGEST_SIZE 32
15*b13c0e40SEric Biggers #define SHA512_DIGEST_SIZE 64
16*b13c0e40SEric Biggers 
main(void)17*b13c0e40SEric Biggers int main(void)
18*b13c0e40SEric Biggers {
19*b13c0e40SEric Biggers 	install_libfsverity_error_handler();
20*b13c0e40SEric Biggers 
21*b13c0e40SEric Biggers 	ASSERT(libfsverity_get_digest_size(0) == -1);
22*b13c0e40SEric Biggers 	ASSERT(libfsverity_get_hash_name(0) == NULL);
23*b13c0e40SEric Biggers 	ASSERT(libfsverity_find_hash_alg_by_name("bad") == 0);
24*b13c0e40SEric Biggers 	ASSERT(libfsverity_find_hash_alg_by_name(NULL) == 0);
25*b13c0e40SEric Biggers 
26*b13c0e40SEric Biggers 	ASSERT(libfsverity_get_digest_size(100) == -1);
27*b13c0e40SEric Biggers 	ASSERT(libfsverity_get_hash_name(100) == NULL);
28*b13c0e40SEric Biggers 
29*b13c0e40SEric Biggers 	ASSERT(libfsverity_get_digest_size(FS_VERITY_HASH_ALG_SHA256) ==
30*b13c0e40SEric Biggers 	       SHA256_DIGEST_SIZE);
31*b13c0e40SEric Biggers 	ASSERT(!strcmp("sha256",
32*b13c0e40SEric Biggers 		       libfsverity_get_hash_name(FS_VERITY_HASH_ALG_SHA256)));
33*b13c0e40SEric Biggers 	ASSERT(libfsverity_find_hash_alg_by_name("sha256") ==
34*b13c0e40SEric Biggers 	       FS_VERITY_HASH_ALG_SHA256);
35*b13c0e40SEric Biggers 
36*b13c0e40SEric Biggers 	ASSERT(libfsverity_get_digest_size(FS_VERITY_HASH_ALG_SHA512) ==
37*b13c0e40SEric Biggers 	       SHA512_DIGEST_SIZE);
38*b13c0e40SEric Biggers 	ASSERT(!strcmp("sha512",
39*b13c0e40SEric Biggers 		       libfsverity_get_hash_name(FS_VERITY_HASH_ALG_SHA512)));
40*b13c0e40SEric Biggers 	ASSERT(libfsverity_find_hash_alg_by_name("sha512") ==
41*b13c0e40SEric Biggers 	       FS_VERITY_HASH_ALG_SHA512);
42*b13c0e40SEric Biggers 
43*b13c0e40SEric Biggers 	printf("test_hash_algs passed\n");
44*b13c0e40SEric Biggers 	return 0;
45*b13c0e40SEric Biggers }
46