Добрый день!
Цитата:Поясните разницу между X509Certificate и X509Certificate2 ?
Достаточно полный ответ можно найти
здесь.
Если кратко, то класс X509Certificate2 является развитием класса X509Certificate, в нём добавлены дополнительные свойства (из спецификаций X509 версии V2 и V3), а также возможность явного обращения к ключу.
В своём коде используйте X509Certificate2.
Цитата:Если я не прав пусть старшие товарищи меня поправят.
Это правильная последовательность, она подходит для большинства случаев.
Цитата:На сколько я понимаю параметр Key, это как раз закрытые ключи?
Да, верно.
Цитата:Есть ли другие методы для подписания например документа ms word или просто строки?
Мне нужно подписывать строку.
С вероятностью близкой к 1 Вам подойдёт класс SignedCms (см. этот
пример).
Формат подписи CMS является универсальным и распознаётся большинством систем и ПО, работающих с криптографией.
Данный формат представляет собой контейнер, который содержит подпись документа, может содержать сам подписанный документ и сертификат ключа проверки электронной подписи, так что проверяющей стороне легко найти все данные, необходимые для проверки подписи.
В указанном выше примере использования SignedCms параметр bytesToHash представляет собой массив байтов, который можно получить из строки, например, с помощью методов из пространства имён System.Text.Encoding.
SignedCms предполагает, что на подпись идёт именно произвольный массив байтов (это могут быть байты документа docx или любого другого), это делает данный формат не привязанным к формату подписываемых данных.
Существует множество других форматов подписи. Вот некоторые из них:
1. Подпись документов MS Office - в этом случае подпись встраивается в сам документ, проверить её можно, открыв документ в соответствующем редакторе или с помощью специализированных библиотек для работы с Office документами.
2. Подпись документов PDF - специальный формат, предназначенный для встраивания подписи внутрь PDF документа, проверить её можно в программе Acrobat Reader или с использованием специальных библиотек для работы с PDF документами.
Все эти подписи можно создать только с использованием сторонних специализированных библиотек или сервисов.