Skip to content

0x5000 NETENGINEMSG_HANDSHAKE_REQ

DummkopfOfHachtenduden edited this page Sep 3, 2021 · 1 revision

KeySender (Server) -> KeyRecipient (Client):

1   byte    byOption  // EncodingOption
if(option & EncodingOption.Encryption)
{
    8   ulong   qwInsecureBlowfishKey
}
if(option & EncodingOption.ErrorDetection)
{
    4   uint    dwSequenceSeed
    4   uint    dwChecksumSeed
}
if(option & EncodingOption.KeyExchange)
{
    //SenderInfo
    8   ulong   qwInitialBlowfishKey
    4   uint    dwGenerator
    4   uint    dwPrime
    4   uint    dwSenderPublic
}
if(option & EncodingOption.KeyValidation) // this must be standalone
{    
    8   ulong  dwSenderSignature    //ServerSignature
}
enum EncodingOption : byte
{    
    None = 1 << 0,
    Encryption = 1 << 1,
    ErrorDetection = 1 << 2,
    KeyExchange = 1 << 3,
    KeyValidation = 1 << 4,
}

KeyRecipient (Client) -> KeySender (Server):

//RecipientInfo
4   uint   dwRecipientPublic
8   ulong  qwRecipientSignature

Related pages

Clone this wiki locally