diff --git a/src/SharpCompress/Compressors/Xz/XZHeader.cs b/src/SharpCompress/Compressors/Xz/XZHeader.cs index a5ed8c4ac..9a0b70d62 100644 --- a/src/SharpCompress/Compressors/Xz/XZHeader.cs +++ b/src/SharpCompress/Compressors/Xz/XZHeader.cs @@ -11,7 +11,7 @@ public class XZHeader private readonly byte[] MagicHeader = { 0xFD, 0x37, 0x7A, 0x58, 0x5a, 0x00 }; public CheckType BlockCheckType { get; private set; } - public int BlockCheckSize => ((((int)BlockCheckType) + 2) / 3) * 4; + public int BlockCheckSize => 4 << ((((int)BlockCheckType + 2) / 3) - 1); public XZHeader(BinaryReader reader) => _reader = reader; diff --git a/src/SharpCompress/Compressors/Xz/XZStream.cs b/src/SharpCompress/Compressors/Xz/XZStream.cs index 26d3dcb2e..8971e9f58 100644 --- a/src/SharpCompress/Compressors/Xz/XZStream.cs +++ b/src/SharpCompress/Compressors/Xz/XZStream.cs @@ -25,13 +25,10 @@ private void AssertBlockCheckTypeIsSupported() switch (Header.BlockCheckType) { case CheckType.NONE: - break; case CheckType.CRC32: - break; case CheckType.CRC64: - break; case CheckType.SHA256: - throw new NotImplementedException(); + break; default: throw new NotSupportedException("Check Type unknown to this version of decoder."); }