diff --git a/src/SharpCompress/Readers/Arj/ArjReader.cs b/src/SharpCompress/Readers/Arj/ArjReader.cs index 1cd240cae..439fb22c4 100644 --- a/src/SharpCompress/Readers/Arj/ArjReader.cs +++ b/src/SharpCompress/Readers/Arj/ArjReader.cs @@ -60,6 +60,12 @@ protected override IEnumerable GetEntries(Stream stream) "Multi volumes are currently not supported" ); } + if (mainHeader?.IsGabled == true) + { + throw new CryptographicException( + "Password protected archives are currently not supported" + ); + } if (_volume == null) { diff --git a/tests/SharpCompress.Test/Arj/ArjReaderTests.cs b/tests/SharpCompress.Test/Arj/ArjReaderTests.cs index 5295076c0..ac31454b5 100644 --- a/tests/SharpCompress.Test/Arj/ArjReaderTests.cs +++ b/tests/SharpCompress.Test/Arj/ArjReaderTests.cs @@ -25,6 +25,12 @@ public ArjReaderTests() [Fact] public void Arj_Method4_Read() => Read("Arj.method4.arj"); + [Fact] + public void Arj_Encrypted_Read() + { + var exception = Assert.Throws(() => Read("Arj.encrypted.arj")); + } + [Fact] public void Arj_Multi_Reader() { diff --git a/tests/TestArchives/Archives/Arj.encrypted.arj b/tests/TestArchives/Archives/Arj.encrypted.arj new file mode 100644 index 000000000..682c509f1 Binary files /dev/null and b/tests/TestArchives/Archives/Arj.encrypted.arj differ