private static IArchive CreateExtractor(string filename, string password) {
try {
var extractor = SharpCompressExtension.Open(filename, password);
if (extractor.HasAnyEncryptedFiles()) {
throw new PasswordException(password == null ? ToolsStrings.ArchiveInstallator_PasswordIsRequired :
ToolsStrings.ArchiveInstallator_PasswordIsInvalid);
}
return extractor;
} catch (CryptographicException) {
throw new PasswordException(password == null ? ToolsStrings.ArchiveInstallator_PasswordIsRequired :
ToolsStrings.ArchiveInstallator_PasswordIsInvalid);
}
}