Файл PKCS #12 — это структура PFX: аутентифицированное содержимое (authenticated safe) с пакетами (keyBag, pkcs8ShroudedKeyBag, certBag, crlBag, secretBag), у которых есть понятные имена (friendly name) и локальные идентификаторы ключей, а также MAC для проверки целостности, вычисленный на основе пароля. RFC 9579 (2024) добавляет PBMAC1, который заменяет устаревший способ вывода ключа MAC, специфичный для PKCS #12, на PBKDF2.
Совместимость определяют алгоритмы по умолчанию. OpenSSL 3.6.5 в режиме pkcs12 -export шифрует и сертификаты, и ключи алгоритмом AES-256-CBC с PBKDF2 (2 048 итераций) и вычисляет MAC на основе HMAC-SHA-256; с флагом -legacy он использует RC2-40 для сертификатов, 3DES для ключа и MAC на основе HMAC-SHA-1, чего требуют старые версии Windows, macOS и Java. В Java PKCS #12 служит типом хранилища ключей по умолчанию начиная с JDK 9.
Ошибка вроде «mac verify failure» обычно означает неверный пароль, а «unsupported algorithm RC2-40-CBC» — что устаревший файл открыли без провайдера legacy в OpenSSL. Инспектор PFX локально показывает пакеты и алгоритмы, не экспортируя ключ.