diff --git a/3d-viewer/3d_cache/3d_cache.cpp b/3d-viewer/3d_cache/3d_cache.cpp index 33c04d0..1abc22c 100644 --- a/3d-viewer/3d_cache/3d_cache.cpp +++ b/3d-viewer/3d_cache/3d_cache.cpp @@ -345,7 +345,7 @@ SCENEGRAPH* S3D_CACHE::checkCache( const wxString& aFileName, S3D_CACHE_ENTRY** } -bool S3D_CACHE::getSHA1( const wxString& aFileName, unsigned char* aSHA1Sum ) +bool S3D_CACHE::getSHA1( const wxString& aFileName, unsigned char (&aSHA1Sum)[20] ) { if( aFileName.empty() ) { @@ -380,22 +380,7 @@ bool S3D_CACHE::getSHA1( const wxString& aFileName, unsigned char* aSHA1Sum ) dblock.process_bytes( block, bsize ); fclose( fp ); - unsigned int digest[5]; - dblock.get_digest( digest ); - - // ensure MSB order - for( int i = 0; i < 5; ++i ) - { - int idx = i << 2; - unsigned int tmp = digest[i]; - aSHA1Sum[idx+3] = tmp & 0xff; - tmp >>= 8; - aSHA1Sum[idx+2] = tmp & 0xff; - tmp >>= 8; - aSHA1Sum[idx+1] = tmp & 0xff; - tmp >>= 8; - aSHA1Sum[idx] = tmp & 0xff; - } + dblock.get_digest( aSHA1Sum ); return true; } @@ -696,4 +681,4 @@ void S3D_CACHE::CleanCacheDir( int aNumDaysOld ) } } } -} \ No newline at end of file +} diff --git a/3d-viewer/3d_cache/3d_cache.h b/3d-viewer/3d_cache/3d_cache.h index 4abc62e..fd5076e 100644 --- a/3d-viewer/3d_cache/3d_cache.h +++ b/3d-viewer/3d_cache/3d_cache.h @@ -156,7 +156,7 @@ private: * @param aSHA1Sum a 20 byte character array to hold the SHA1 hash. * @return true on success, otherwise false. */ - bool getSHA1( const wxString& aFileName, unsigned char* aSHA1Sum ); + bool getSHA1( const wxString& aFileName, unsigned char (&aSHA1Sum)[20] ); // load scene data from a cache file bool loadCacheData( S3D_CACHE_ENTRY* aCacheItem );