OpenStory.Cryptography.RollingIv.TryGetLength C# (CSharp) Method

TryGetLength() public method

Attempts to extract the length of a packet from its header.
When overriding this method in a derived class, do not call the base implementation.
/// Thrown if is . /// /// Thrown if has less than 4 elements. ///
public TryGetLength ( byte header, int &length ) : bool
header byte The header byte array to process.
length int A variable to hold the result.
return bool
        public bool TryGetLength(byte[] header, out int length)
        {
            Guard.NotNull(() => header, header);

            if (header.Length < 4)
            {
                var message = string.Format(CommonStrings.SegmentTooShort, 4);
                throw new ArgumentException(message, "header");
            }

            if (ValidateHeaderInternal(header, this.iv, this.versionMask))
            {
                length = ((header[1] ^ header[3]) << 8) | (header[0] ^ header[2]);
                return true;
            }
            else
            {
                length = default(int);
                return false;
            }
        }