C++にて Boost を使って SHA1 ハッシュを計算する

C言語にて Openssl を使って SHA1 ハッシュを計算する
の続きです

Boost はC++用のソフトウェアライブラリです。

Boost にはハッシュ関数として
sha1, md5 が用意されている。

wikipedia: Boost C++ライブラリ

ハッシュ関数の使い方は、下記を参考にした。

C++ boostを使用してSHA-1 ハッシュ値の計算 メモ

hash_data_t
get_sha1_hash( const void *data, const std::size_t byte_count )
{
  boost::uuids::detail::sha1 sha1;
  sha1.process_bytes( data, byte_count );
  unsigned int digest[5];
  sha1.get_digest( digest );
  const boost::uint8_t *p_digest = reinterpret_cast<const boost::uint8_t *>( digest );
  hash_data_t hash_data;
  for( int i = 0; i < 5; ++i )
  {
    hash_data[ i * 4 ]     = p_digest[ i * 4 + 3 ];
    hash_data[ i * 4 + 1 ] = p_digest[ i * 4 + 2 ];
    hash_data[ i * 4 + 2 ] = p_digest[ i * 4 + 1 ];
    hash_data[ i * 4 + 3 ] = p_digest[ i * 4 ];
  }
  return hash_data;
}

サンプルコードを Github に公開した。 https://github.com/ohwada/MAC_cpp_Samples/tree/master/boost/uuid