@@ -13,7 +13,7 @@ void test_core_sha1__cleanup(void)
1313 cl_fixture_cleanup (FIXTURE_DIR );
1414}
1515
16- static int sha1_file (git_oid * out , const char * filename )
16+ static int sha1_file (unsigned char * out , const char * filename )
1717{
1818 git_hash_ctx ctx ;
1919 char buf [2048 ];
@@ -31,34 +31,40 @@ static int sha1_file(git_oid *out, const char *filename)
3131 cl_assert_equal_i (0 , read_len );
3232 p_close (fd );
3333
34- ret = git_hash_final (out -> id , & ctx );
34+ ret = git_hash_final (out , & ctx );
3535 git_hash_ctx_cleanup (& ctx );
3636
3737 return ret ;
3838}
3939
4040void test_core_sha1__sum (void )
4141{
42- git_oid oid , expected ;
42+ unsigned char expected [GIT_HASH_SHA1_SIZE ] = {
43+ 0x4e , 0x72 , 0x67 , 0x9e , 0x3e , 0xa4 , 0xd0 , 0x4e , 0x0c , 0x64 ,
44+ 0x2f , 0x02 , 0x9e , 0x61 , 0xeb , 0x80 , 0x56 , 0xc7 , 0xed , 0x94
45+ };
46+ unsigned char actual [GIT_HASH_SHA1_SIZE ];
4347
44- cl_git_pass (sha1_file (& oid , FIXTURE_DIR "/hello_c" ));
45- git_oid_fromstr (& expected , "4e72679e3ea4d04e0c642f029e61eb8056c7ed94" );
46- cl_assert_equal_oid (& expected , & oid );
48+ cl_git_pass (sha1_file (actual , FIXTURE_DIR "/hello_c" ));
49+ cl_assert_equal_i (0 , memcmp (expected , actual , GIT_HASH_SHA1_SIZE ));
4750}
4851
4952/* test that sha1 collision detection works when enabled */
5053void test_core_sha1__detect_collision_attack (void )
5154{
52- git_oid oid , expected ;
55+ unsigned char actual [GIT_HASH_SHA1_SIZE ];
56+ unsigned char expected [GIT_HASH_SHA1_SIZE ] = {
57+ 0x38 , 0x76 , 0x2c , 0xf7 , 0xf5 , 0x59 , 0x34 , 0xb3 , 0x4d , 0x17 ,
58+ 0x9a , 0xe6 , 0xa4 , 0xc8 , 0x0c , 0xad , 0xcc , 0xbb , 0x7f , 0x0a
59+ };
5360
5461#ifdef GIT_SHA1_COLLISIONDETECT
5562 GIT_UNUSED (& expected );
56- cl_git_fail (sha1_file (& oid , FIXTURE_DIR "/shattered-1.pdf" ));
63+ cl_git_fail (sha1_file (actual , FIXTURE_DIR "/shattered-1.pdf" ));
5764 cl_assert_equal_s ("SHA1 collision attack detected" , git_error_last ()-> message );
5865#else
59- cl_git_pass (sha1_file (& oid , FIXTURE_DIR "/shattered-1.pdf" ));
60- git_oid_fromstr (& expected , "38762cf7f55934b34d179ae6a4c80cadccbb7f0a" );
61- cl_assert_equal_oid (& expected , & oid );
66+ cl_git_pass (sha1_file (actual , FIXTURE_DIR "/shattered-1.pdf" ));
67+ cl_assert_equal_i (0 , memcmp (expected , actual , GIT_HASH_SHA1_SIZE ));
6268#endif
6369}
6470
0 commit comments