private void CheckSignatures()
        {
            if (_image.Length < ImageMarkup.HeaderLength)
            {
                throw new IncorrectSignatureException("Header is not present");
            }

            var dataLength = 2 * _bitConverter.ReadInt(_image, ImageMarkup.DataLengthOffset);

            if (_image.Length < dataLength + ImageMarkup.HeaderLength)
            {
                throw new IncorrectSignatureException("Data length is bigger than file size");
            }

            Checksum = _bitConverter.ReadInt(_image, ImageMarkup.CheckSumOffset);
            var actualChecksum = _checkSumCalculator.Calculate(_image, ImageMarkup.HeaderLength, dataLength);

            if (actualChecksum != Checksum || actualChecksum % 256 != ImageMarkup.ChecksumLittleByte)
            {
                throw new IncorrectSignatureException("Checksum fault");
            }

            if (_image.Length < ImageMarkup.CopyrightString.Count + ImageMarkup.CopyrightOffset)
            {
                throw new IncorrectSignatureException("Copyright is not present");
            }

            for (var i = 0; i < ImageMarkup.CopyrightString.Count; ++i)
            {
                if (_image[ImageMarkup.CopyrightOffset + i] == ImageMarkup.CopyrightString[i])
                {
                    continue;
                }

                if (i == ImageMarkup.CopyrightString.Count - 2 && _image[ImageMarkup.CopyrightOffset + i] == 0)
                {
                    //Image was already patched
                    break;
                }

                throw new IncorrectSignatureException("Can't find copyright string");
            }
        }