Un archivo PKCS #12 es una estructura PFX: contenidos seguros autenticados (authenticated safe) que guardan bolsas (keyBag, pkcs8ShroudedKeyBag, certBag, crlBag, secretBag) con nombres descriptivos (friendly names) e identificadores de clave locales, más un MAC de integridad derivado de la contraseña. El RFC 9579 (2024) añade PBMAC1, que sustituye por PBKDF2 la antigua derivación de la clave MAC propia de PKCS #12.
Los algoritmos predeterminados deciden la compatibilidad. pkcs12 -export de OpenSSL 3.6.5 escribe AES-256-CBC con PBKDF2 (2048 iteraciones) tanto para los certificados como para las claves, y un MAC HMAC-SHA-256; con -legacy escribe RC2-40 para los certificados, 3DES para la clave y un MAC HMAC-SHA-1, lo que exigen las versiones antiguas de Windows, macOS y Java. Java usa PKCS #12 como tipo de almacén de claves predeterminado desde JDK 9.
Errores como «mac verify failure» suelen indicar una contraseña incorrecta, y «unsupported algorithm RC2-40-CBC», un archivo antiguo abierto sin el proveedor heredado (legacy) de OpenSSL. El inspector de PFX enumera localmente las bolsas y los algoritmos sin exportar la clave.