reWZ.WZAES.GenerateKeys C# (CSharp) Method

GenerateKeys() private method

private GenerateKeys ( int length ) : void
length int
return void
        private void GenerateKeys(int length)
        {
            _wzKey = GetWZKey(_version, length);
            byte[] asciiKey = new byte[_wzKey.Length];
            byte[] unicodeKey = new byte[_wzKey.Length];
            byte[] asciiEncKey = new byte[_wzKey.Length];
            byte[] unicodeEncKey = new byte[_wzKey.Length];
            unchecked {
                byte mask = 0xAA;
                for (int i = 0; i < _wzKey.Length; ++i, ++mask) {
                    asciiKey[i] = mask;
                    asciiEncKey[i] = (byte) (_wzKey[i] ^ mask);
                }
                ushort umask = 0xAAAA;
                for (int i = 0; i < _wzKey.Length/2; i += 2, ++umask) {
                    unicodeKey[i] = (byte) (umask & 0xFF);
                    unicodeKey[i + 1] = (byte) ((umask & 0xFF00) >> 8);
                    unicodeEncKey[i] = (byte) (_wzKey[i] ^ unicodeKey[i]);
                    unicodeEncKey[i + 1] = (byte) (_wzKey[i + 1] ^ unicodeKey[i + 1]);
                }
            }
            _asciiKey = asciiKey;
            _unicodeKey = unicodeKey;
            _asciiEncKey = asciiEncKey;
            _unicodeEncKey = unicodeEncKey;
        }