Нет, Cryptographic Next Generation API - это API сравнительно низкого уровня, который не содержит высокоуровневые протоколы, такие как CMS (PKCS # 7 - это стандарт, определяющий CMS).
CMS упоминается в длиннойСписок протоколов, которые он поддерживает:
Одним из ключевых ценностных предложений КПГ является криптографическая ловкость, которую иногда называют криптографическим агностицизмом.Однако для того, чтобы сделать эту возможность ценной, требовалось преобразование реализации протоколов, таких как протокол Secure Sockets Layer (SSL) или безопасность транспортного уровня (TLS), CMS (S / MIME), IPsec, Kerberos и т. Д., В CNG.На уровне CNG необходимо было обеспечить подстановку и обнаруживаемость для всех типов алгоритмов (симметричные, асимметричные, хеш-функции), генерации случайных чисел и других вспомогательных функций.Изменения на уровне протокола более значительны, потому что во многих случаях API-интерфейсам протоколов требовалось добавить выбор алгоритма и другие параметры гибкости, которые ранее не существовали.
Так что здесь говорится о гибкости библиотеки CNGтак что реализация протоколов более высокого уровня может использовать API CNG.Так, например, речь идет о преобразовании реализации CMS поверх старого CryptoAPI в реализацию, использующую API .NET CNG.
Я действительно думаю, что это не совсем ясно, как это написано,Тот факт, что API все еще содержит несколько констант, необходимых для реализации CMS, не помогает.
Результат преобразования / переноса, конечно, можно найти здесь , который- довольно глупо - объединяет все функциональные возможности стандартов PKCS в одном пространстве имен.Вероятно, вас в основном интересуют классы EnvelopedCMS
(для шифрования) и SignedCMS
и все, что их окружает.