ファイルのハッシュ合計を計算する単純な GUI アプリケーションを開発しています。ハッシュ サム アルゴリズムに CommonCrypto ライブラリを使用します。したがって、たとえばSHA1またはMD5ハッシュを計算するために使用するコードは、上記のライブラリから使用する要素 (定数、関数、および構造体) を除いて、まったく同じです。もちろん、定数を値や関数ポインタとして受け入れる、より一般的なコードを書くこともできますが、ハッシュの種類ごとに異なるカスタム構造体をどうすればよいでしょうか?
たとえば、MD5 ハッシュを計算すると、次のようになります。
CC_MD5_CTX md5;
CC_MD5_Init(&md5);
SHA1 ハッシュを計算すると、次のようになります。
CC_SHA1_CTX sha1;
CC_SHA1_Init(&sha1);
CC_HASH_CTX をパラメーターとして取るだけの 1 つのコードに変換するにはどうすればよいですか?
PS: アプリケーションは Mac 用の Objective C で書かれていますが、特にこの質問は Mac に固有のものではないと思うので、C でタグ付けしました。