Um arquivo PKCS #12 é uma estrutura PFX: conteúdos seguros autenticados (authenticated safe) com bags (keyBag, pkcs8ShroudedKeyBag, certBag, crlBag, secretBag) que trazem nomes amigáveis e IDs de chave locais, além de um MAC de integridade derivado da senha. A RFC 9579 (2024) acrescenta o PBMAC1, que substitui a derivação legada da chave do MAC, específica do PKCS #12, pelo PBKDF2.
Os algoritmos padrão decidem a compatibilidade. O pkcs12 -export do OpenSSL 3.6.5 grava AES-256-CBC com PBKDF2 (2.048 iterações) tanto para os certificados quanto para as chaves e um MAC HMAC-SHA-256; com -legacy, grava RC2-40 para os certificados, 3DES para a chave e um MAC HMAC-SHA-1, que as versões mais antigas do Windows, do macOS e do Java exigem. O Java usa PKCS #12 como tipo de keystore padrão desde o JDK 9.
Erros como “mac verify failure” geralmente indicam uma senha errada, e “unsupported algorithm RC2-40-CBC” indica um arquivo legado aberto sem o provedor legado do OpenSSL. O inspetor de PFX lista os bags e os algoritmos localmente, sem exportar a chave.