finish initial support for rc4 encryption with blank user password

This commit is contained in:
Eliot Jones
2019-05-06 15:41:29 +01:00
parent 27928cd3a3
commit bad57763a1
15 changed files with 166 additions and 125 deletions

View File

@@ -4,7 +4,6 @@
using System.Collections.Generic;
using CidFonts;
using CompactFontFormat;
using Encryption;
using Exceptions;
using Filters;
using Geometry;
@@ -23,21 +22,18 @@
private readonly TrueTypeFontParser trueTypeFontParser;
private readonly CompactFontFormatParser compactFontFormatParser;
private readonly IFilterProvider filterProvider;
private readonly IEncryptionHandler encryptionHandler;
private readonly IPdfTokenScanner pdfScanner;
public CidFontFactory(IPdfTokenScanner pdfScanner, FontDescriptorFactory descriptorFactory,
TrueTypeFontParser trueTypeFontParser,
CompactFontFormatParser compactFontFormatParser,
IFilterProvider filterProvider,
IEncryptionHandler encryptionHandler)
IFilterProvider filterProvider)
{
this.pdfScanner = pdfScanner;
this.descriptorFactory = descriptorFactory;
this.trueTypeFontParser = trueTypeFontParser;
this.compactFontFormatParser = compactFontFormatParser;
this.filterProvider = filterProvider;
this.encryptionHandler = encryptionHandler;
}
public ICidFont Generate(DictionaryToken dictionary, bool isLenientParsing)
@@ -109,7 +105,7 @@
return null;
}
var fontFile = fontFileStream.Decode(filterProvider, encryptionHandler);
var fontFile = fontFileStream.Decode(filterProvider);
switch (descriptor.FontFile.FileType)
{
@@ -130,7 +126,7 @@
if (subtypeName == NameToken.CidFontType0C)
{
var bytes = str.Decode(filterProvider, encryptionHandler);
var bytes = str.Decode(filterProvider);
var font = compactFontFormatParser.Parse(new CompactFontFormatData(bytes));
return font;
}
@@ -302,7 +298,7 @@
var stream = DirectObjectFinder.Get<StreamToken>(entry, pdfScanner);
var bytes = stream.Decode(filterProvider, encryptionHandler);
var bytes = stream.Decode(filterProvider);
return new CharacterIdentifierToGlyphIndexMap(bytes);
}