W języku C # podpisz plik xml z certyfikatem x.509 i sprawdź podpis

Próbuję podpisać plik XML przy użyciu certyfikatu x.509, mogę użyć klucza prywatnego do podpisania dokumentu, a następnie użyć metody CheckSignature (ma przeciążenie, które odbiera certyfikat jako parametr), aby zweryfikować podpis.

Problem polega na tym, że użytkownik, który zatwierdza podpis, musi mieć certyfikat, moim problemem jest, jeśli użytkownik ma certyfikat, ma dostęp do klucza prywatnego i, jak rozumiem, jest to prywatne i powinno być dostępne tylko dla użytkownika kto podpisuje.

czego mi brakuje?

Dzięki za pomoc.

questionAnswers(3)

yourAnswerToTheQuestion