7z encrypted filename exception with no password matches rar behaviour.

This commit is contained in:
Craig
2022-05-04 01:35:58 +01:00
parent 61c01ce9b0
commit e424094fdf
3 changed files with 23 additions and 1 deletions

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
@@ -20,6 +20,11 @@ namespace SharpCompress.Compressors.LZMA
public AesDecoderStream(Stream input, byte[] info, IPasswordProvider pass, long limit)
{
if (pass.CryptoGetTextPassword() == null)
{
throw new SharpCompress.Common.CryptographicException("Encrypted 7Zip archive has no password specified.");
}
mStream = input;
mLimit = limit;

View File

@@ -17,12 +17,24 @@ namespace SharpCompress.Test.Rar
ReadRarPassword("Rar.encrypted_filesAndHeader.rar", "test");
}
[Fact]
public void Rar_EncryptedFileAndHeader_NoPasswordExceptionTest()
{
Assert.Throws(typeof(CryptographicException), () => ReadRarPassword("Rar.encrypted_filesAndHeader.rar", null));
}
/*[Fact]
public void Rar5_EncryptedFileAndHeader_Archive()
{
ReadRarPassword("Rar5.encrypted_filesAndHeader.rar", "test");
}*/
[Fact]
public void Rar5_EncryptedFileAndHeader_NoPasswordExceptionTest()
{
Assert.Throws(typeof(CryptographicException), () => ReadRarPassword("Rar5.encrypted_filesAndHeader.rar", null));
}
[Fact]
public void Rar_EncryptedFileOnly_Archive()
{

View File

@@ -41,6 +41,11 @@ namespace SharpCompress.Test.SevenZip
ArchiveFileRead("7Zip.LZMA.Aes.7z", new ReaderOptions() { Password = "testpassword" });
}
[Fact]
public void SevenZipArchive_LZMAAES_NoPasswordExceptionTest()
{
Assert.Throws(typeof(CryptographicException), () => ArchiveFileRead("7Zip.LZMA.Aes.7z", new ReaderOptions() { Password = null })); //was failing with ArgumentNullException not CryptographicException like rar
}
[Fact]
public void SevenZipArchive_PPMd_StreamRead()
{
ArchiveStreamRead("7Zip.PPMd.7z");