Здравствуйте. Не могу найти информацию, как получить Master Secret из компонентов: Client Random, Server Random, PreMasterSecret . Это всё есть в byte[]. Пожалуйста, подскажите как вычислить MasterSecret в C#. Желательно с кодами на C#
Это зависит от выбранного набора шифров (cipher suite), и от того, включено ли расширение Extended Master Secret. Лучше посмотрите исходники, как все работает. Для C# есть реализация TLS от BouncyCastle.
В меня есть своя учебная реализация TLS, конкретный метод вычисления Master Secret здесь: https://github.com/Zergatul/ZergatulLib/blob/master/Zergatul/Network/Tls/CipherSuiteBuilder.cs#L67
// включено ли расширение
if (SecurityParameters.ExtendedMasterSecret)
{
// Hash может быть SHA256 или SHA384 в зависимости от Cipher Suite
// HandshakeData - все переданные байты в сообщениях
var sessionHash = Hash(SecurityParameters.HandshakeData.ToArray());
// PseudoRandomFunction - стандартная функция для TLS 1.2 описана в RFC 5246
SecurityParameters.MasterSecret = PseudoRandomFunction(
KeyExchange.PreMasterSecret,
"extended master secret",
sessionHash,
48);
}
else
{
SecurityParameters.MasterSecret = PseudoRandomFunction(
KeyExchange.PreMasterSecret,
"master secret",
ByteArray.Concat(SecurityParameters.ClientRandom, SecurityParameters.ServerRandom),
48);
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Никак не получается сделать рабочий кодЕсть у меня два экземпляра структуры, и нужно, чтобы исполнялся цикл do while до тех пор, пока counter не будет...
Загуглил самый простой клиент-сервер на сокетах C#Проверил работоспособность кода
Возникла проблема с синхронизацией потоковОбщая схема упрощенно в следующем
Пишу клиент серверное приложение, в котором передаются файлы по сетиСобственно, само приложение работает хорошо, задачи выполняет, но когда...