diff --git a/Sources/7-Zip/7zCoder.swift b/Sources/7-Zip/7zCoder.swift index 4da245d2..b8f0e047 100644 --- a/Sources/7-Zip/7zCoder.swift +++ b/Sources/7-Zip/7zCoder.swift @@ -13,6 +13,7 @@ class SevenZipCoder { let id: [UInt8] let compressionMethod: CompressionMethod + let isEncryptionMethod: Bool let numInStreams: Int let numOutStreams: Int @@ -31,6 +32,7 @@ class SevenZipCoder { let id = bitReader.bytes(count: idSize) self.id = id compressionMethod = CompressionMethod(id) + isEncryptionMethod = id[0] == 0x06 numInStreams = isComplex ? bitReader.szMbd() : 1 numOutStreams = isComplex ? bitReader.szMbd() : 1 diff --git a/Sources/7-Zip/7zFolder.swift b/Sources/7-Zip/7zFolder.swift index 59ac4ba7..c1f9dc3a 100644 --- a/Sources/7-Zip/7zFolder.swift +++ b/Sources/7-Zip/7zFolder.swift @@ -190,7 +190,7 @@ class SevenZipFolder { try decoder.decode() decodedData = Data(bytes: decoder.out) default: - if coder.id[0] == 0x06 { + if coder.isEncryptionMethod { throw SevenZipError.encryptionNotSupported } else { throw SevenZipError.compressionNotSupported