(C#) System.Security.Cryptography.CryptographicException: “Плохие данные. ”

310
24 января 2018, 12:58

Здравствуйте. Я пишу свой TLS сервер, но возникла такая проблема, я пытаюсь расшифровать сообщение Finished (Encrypted Handshake Message) приватным ключём сертификата, но выдается исключение :

System.Security.Cryptography.CryptographicException: "Плохие данные."

Код:

internal static X509Certificate2 ServerCert = new X509Certificate2("SRVCert.pfx","******");
internal static X509Certificate2 CA_Cert = new X509Certificate2("CA.crt");
internal static RSA PublicKey = (RSA)ServerCert.PublicKey.Key;
internal static RSA PrivateKey = (RSA)ServerCert.PrivateKey;

ServerCert содержит также приватный ключ. Сертификат и сертификат CA отправляется клиенту.

Ниже сообщение Finished (HEX):

16030100301c7dd49c1290dd83774e38465a81e7d98fdf5b962881323b4348bb0e312dd9c5260656fe230afe8e69f61c712f5567e2

Пожалуйста подскажите, что я делаю не так

Answer 1

Сообщение Finished шифруется блочным шифром с динамически вычисляемым ключом. Сертификаты не принимают участия на этом этапе.

Процедура вычисления динамических ключей для TLS 1.2 описана в RFC 5246 глава 6.3: https://tools.ietf.org/html/rfc5246#section-6.3

READ ALSO
Unity3D: как обратиться к gameobjects, которые содержатся в <List>

Unity3D: как обратиться к gameobjects, которые содержатся в <List>

У меня есть элемент который служит для хранения gameobject'ов , мне нужно обратиться ко всем этим gameobject'ам для дальнейшей работы сразу со всеми...

219
Сравнение пробела типа string

Сравнение пробела типа string

Каким образом в C# можно сравнить символ строки, обращаясь по индексу в цикле с пробелом? Как я понял, обращение по индексу к строке - возвращает...

238
Нахождение ближайшей точки Google Maps API

Нахождение ближайшей точки Google Maps API

Подскажите: у меня есть 8 точек на карте я хочу найти ближайшую точку от нажатия мышиВот код

274
Чего нельзя написать на C#? [требует правки]

Чего нельзя написать на C#? [требует правки]

То, что C# довольно универсальный язык и так понятноЭто веб, геймдев , мобильная разработка, десктоп приложения, само собой

225