Эти классы .Net должны быть оболочкой крипто API.
В крипто API есть два типа ключей. Crypto API - это оболочка для PKCS # 11. Когда вы генерируете пару ключей с помощью поставщика услуг криптографии Microsoft, вы получаете ключи AT_EXCHANGE и AT_SIGNATURE. Каждый ключ генерируется на основе некоторых атрибутов, определенных в PKCS # 11 standard ..
AT_EXCHANGE ключи Атрибуты:
wrap / unwrap = true
подписать / подтвердить = верно
encrypt / decrypt = false
Ключи AT_SIGNATURE Атрибуты:
wrap / unwrap = false
подписать / подтвердить = верно
encrypt / decrypt = false
Таким образом, в основном, когда вы обмениваетесь данными, вы, по сути, выполняете функцию обертывания / разворачивания. Это то, что Microsoft называет это как AT_EXCHANGE. Это в основном используется для обмена секретными / симметричными ключами и не используется для обмена огромными объемами данных.
Так что вам нужно вернуться и выяснить, какой ключ вы выбрали, чтобы ЛИБО подписать / обернуть данные.