Иногда назад я читал статью об использовании асимметричных ключей, таких как открытый и закрытый ключи, для безопасной отправки данных. Я понял, что сервер имеет 1 ключ (закрытый ключ), который он использует для шифрования данных, а все клиенты используют второй ключ. (открытый ключ), чтобы его расшифровать.
Как мне ожидать получения ключа и как с ним работать?
Если я получу сертификат с сервера, не будет ли он содержать как открытый, так и закрытый ключи ?!
X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
var cert = GetCertificate(certStore);
var privatekey= cert.PrivateKey;
var publicKey= cert.PublicKey;
Можно ли удалить закрытый ключ из сертификата? Как? и как я могу понять, есть ли у сертификата закрытый ключ?