整合性を保証するために特定のメッセージでHMACを使用する必要がありますが、ハッシュアルゴリズムへの入力として与えられるキーの要件を理解できません。
特に、Javaでこれを行う必要があります。また、SHA256でHMACを使用したいので、HMAC RFCに従って、少なくとも32バイトのキーが必要です。当面は(テスト用)SecureRandom( "NativePRNG")、a Java暗号学的に強力な乱数ジェネレータの実装)でキーを生成しています。これでキーは十分ですか?
キーは、ハッシュ出力と同じサイズにする必要があります。あなたのケースではSHA-256を使用しているので、256ビットのキー(あなたが言及している32バイトに等しい)を使用するべきです。
HMACアルゴリズムは非常に柔軟なので、任意のサイズのキーを使用できます。ただし、128ビットのキーのみを使用する場合は、256ビットのハッシュを使用しても意味がありません。 MD5のような128ビットのハッシュを使用することもできます。
JavaのSecureRandomは、この目的でキーを生成するのに非常に適しています。