PKCS #12 ファイルは PFX 構造です。フレンドリ名とローカル鍵 ID が付いたバッグ(keyBag、pkcs8ShroudedKeyBag、certBag、crlBag、secretBag)を格納する認証された SafeContents と、パスワードから導出される完全性のための MAC で構成されます。RFC 9579(2024年)は PBMAC1 を追加し、PKCS #12 固有の旧来の MAC 鍵導出を PBKDF2 に置き換えています。
互換性を左右するのは、アルゴリズムのデフォルト設定です。OpenSSL 3.6.5 の pkcs12 -export は、証明書と鍵の両方に PBKDF2(反復回数 2,048 回)を使った AES-256-CBC を、MAC に HMAC-SHA-256 を使って書き出します。-legacy を指定すると、証明書に RC2-40、鍵に 3DES、MAC に HMAC-SHA-1 を使って書き出し、古いバージョンの Windows、macOS、Java ではこちらが必要です。Java は JDK 9 以降、PKCS #12 をデフォルトのキーストアタイプとしています。
「mac verify failure」のようなエラーは通常パスワードの誤りを意味し、「unsupported algorithm RC2-40-CBC」は、旧形式のファイルを OpenSSL のレガシープロバイダーなしで開いたことを意味します。PFX インスペクターは、鍵をエクスポートせずに、バッグとアルゴリズムをローカルで一覧表示します。