diff --git a/src/SharpCompress/Readers/Arj/ArjReader.cs b/src/SharpCompress/Readers/Arj/ArjReader.cs index 1cd240ca..439fb22c 100644 --- a/src/SharpCompress/Readers/Arj/ArjReader.cs +++ b/src/SharpCompress/Readers/Arj/ArjReader.cs @@ -60,6 +60,12 @@ namespace SharpCompress.Readers.Arj "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 5295076c..ac31454b 100644 --- a/tests/SharpCompress.Test/Arj/ArjReaderTests.cs +++ b/tests/SharpCompress.Test/Arj/ArjReaderTests.cs @@ -25,6 +25,12 @@ namespace SharpCompress.Test.Arj [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 00000000..682c509f Binary files /dev/null and b/tests/TestArchives/Archives/Arj.encrypted.arj differ