コード例 #1
0
        public static Encryption CreateServerGame(GameEncryptionType type, uint seed)
        {
            IEncryptor encryptor;
            IDecryptor decryptor;

            switch (type)
            {
            case GameEncryptionType.None:
                encryptor = new Huffman();
                decryptor = new NoEncryption();
                break;

            case GameEncryptionType.Old:     // Blowfish
                encryptor = new Huffman();
                decryptor = new BlowfishEncryption();
                break;

            case GameEncryptionType.Rare:      // Blowfish + Twofish
                encryptor = new Huffman();
                decryptor = new BlowfishTwofishEncryption(seed);
                break;

            case GameEncryptionType.New:     // Twofish + MD5
                encryptor = new HuffmanMD5Encryption(seed);
                decryptor = new TwofishEncryption(seed);
                break;

            default:
                throw new Exception("Internal error.");
            }

            return(new Encryption(encryptor, decryptor));
        }
コード例 #2
0
ファイル: Encryption.cs プロジェクト: greeduomacro/phoenix
        public static Encryption CreateClientGame(GameEncryptionType type, uint seed)
        {
            IEncryptor encryptor;
            IDecryptor decryptor;

            switch (type)
            {
                case GameEncryptionType.None:
                    encryptor = new NoEncryption();
                    decryptor = new Huffman();
                    break;

                case GameEncryptionType.Old: // Blowfish
                    encryptor = new BlowfishEncryption();
                    decryptor = new Huffman();
                    break;

                case GameEncryptionType.Rare:  // Blowfish + Twofish
                    encryptor = new BlowfishTwofishEncryption(seed);
                    decryptor = new Huffman();
                    break;

                case GameEncryptionType.New: // Twofish + MD5
                    encryptor = new TwofishEncryption(seed);
                    decryptor = new HuffmanMD5Encryption(seed);
                    break;

                default:
                    throw new Exception("Internal error.");
            }

            return new Encryption(encryptor, decryptor);
        }
コード例 #3
0
ファイル: GameSocket.cs プロジェクト: byterj/phoenix
        private GameEncryptionType GetServerEncryption(GameEncryptionType clientEncryption)
        {
            int v = Int32.Parse(Core.LaunchData.ServerEncryption);

            switch (v)
            {
            case 0:
                return(GameEncryptionType.None);

            case 1:
                return(clientEncryption);

            case 2:
                return(GameEncryptionType.Old);

            case 3:
                return(GameEncryptionType.Rare);

            case 4:
                return(GameEncryptionType.New);

            default:
                Trace.WriteLine("server game encryption. Using same as client.", "Communication");
                return(CommunicationManager.ClientEncryption);
            }
        }
コード例 #4
0
        public static EncryptionVersion FromGame(GameEncryptionType game)
        {
            switch (game)
            {
            case GameEncryptionType.None:
                return(new EncryptionVersion());

            case GameEncryptionType.Old:
                return(new EncryptionVersion(1, 26, 4));

            case GameEncryptionType.Rare:
                return(new EncryptionVersion(2, 0, 0));

            case GameEncryptionType.New:
                return(new EncryptionVersion(2, 0, 4));

            default:
                throw new Exception("Internal error.");
            }
        }
コード例 #5
0
ファイル: GameSocket.cs プロジェクト: greeduomacro/phoenix
 private GameEncryptionType GetServerEncryption(GameEncryptionType clientEncryption)
 {
     int v = Int32.Parse(Core.LaunchData.ServerEncryption);
     switch (v)
     {
         case 0:
             return GameEncryptionType.None;
         case 1:
             return clientEncryption;
         case 2:
             return GameEncryptionType.Old;
         case 3:
             return GameEncryptionType.Rare;
         case 4:
             return GameEncryptionType.New;
         default:
             Trace.WriteLine("server game encryption. Using same as client.", "Communication");
             return CommunicationManager.ClientEncryption;
     }
 }