コード例 #1
0
ファイル: Message.cs プロジェクト: mugmickey/UCR-1
 public void Decrypt()
 {
     try
     {
         if (m_vType == 10101)
         {
             byte[] cipherText = m_vData;
             Client.CPublicKey = cipherText.Take(32).ToArray();
             Client.CSharedKey = Client.CPublicKey;
             Client.CRNonce    = Client.GenerateSessionKey();
             byte[] nonce = GenericHash.Hash(Client.CPublicKey.Concat(Key.Crypto.PublicKey).ToArray(), null, 24);
             cipherText = cipherText.Skip(32).ToArray();
             var PlainText = PublicKeyBox.Open(cipherText, nonce, Key.Crypto.PrivateKey, Client.CPublicKey);
             Client.CSessionKey = PlainText.Take(24).ToArray();
             Client.CSNonce     = PlainText.Skip(24).Take(24).ToArray();
             SetData(PlainText.Skip(24).Skip(24).ToArray());
         }
         else
         {
             Client.CSNonce = Utilities.Increment(Utilities.Increment(Client.CSNonce));
             SetData(SecretBox.Open(new byte[16].Concat(m_vData).ToArray(), Client.CSNonce, Client.CSharedKey));
         }
     }
     catch (Exception ex)
     {
         Client.CState = 0;
         return;
     }
 }
コード例 #2
0
ファイル: SessionSuccess.cs プロジェクト: mugmickey/UCR-1
 public SessionSuccess(Client client, SessionRequest cka) : base(client)
 {
     SetMessageType(20100);
     SessionKey = Client.GenerateSessionKey();
 }