Показать сообщение отдельно
Непрочитано 22.03.2014, 18:02   #6
Пользователь

Автор темы (Топик Стартер) Re: Строим эмулятор B&S emulator from scratch

Цитата:
Сообщение от Dolwin Посмотреть сообщение
А что за аргумент checkHash в методе public void OnAuthKeyData(byte[] exchangeKey, string checkHash, int serial)? Как он генерируется?

В роуте /Auth/KeyData я получают 2массива каких то.
По первому - я генерирую ключики:
Код:
handler.getKeyExchange().generateKey( AbstractKeyExchange.Mode.SERVER, exchangeKey );
      String hash = handler.getKeyExchange().getAuthentication();
Дальше не до проверить хеш с checkHash
Но вот что за checkHash я так и не понял

От клиент приходит вторым массивом какой то ключ 32 байта
То это далеко не текст..
Помогите плиз)
checkhash идет от пакета CM_AUTH_KEYDATA

CM_AUTH_KEYDATA:
Свернуть ↑Развернуть ↓


Ключ который приходит в 32 байтах считываем путем: byte[] hash = br.ReadBytes(br.ReadInt32());

И затем переводим в base64 string checkHash = Convert.ToBase64String(hash);

получая значение checkHash

Желательно в этой теме не обсуждать строительство эмулятора, лучше писать уже в существующих темах, чтобы данная тема была максимально чистой и понятной.
luna9966 вне форума Ответить с цитированием