Suppress metadata decryption

This commit is contained in:
Yury Delendik 2012-05-27 18:03:04 -05:00
parent 40b9be137f
commit 413e5357b9
2 changed files with 11 additions and 2 deletions

View File

@ -546,8 +546,10 @@ var CipherTransformFactory = (function CipherTransformFactoryClosure() {
var userPassword = stringToBytes(dict.get('U'));
var flags = dict.get('P');
var revision = dict.get('R');
var encryptMetadata =
var encryptMetadata = algorithm == 4 && // meaningful when V is 4
dict.get('EncryptMetadata') !== false; // makes true as default value
this.encryptMetadata = encryptMetadata;
var fileIdBytes = stringToBytes(fileId);
var passwordBytes;
if (password)

View File

@ -132,7 +132,14 @@ var Catalog = (function CatalogClosure() {
Catalog.prototype = {
get metadata() {
var stream = this.catDict.get('Metadata');
var streamRef = this.catDict.getRaw('Metadata');
if (!isRef(streamRef))
return shadow(this, 'metadata', null);
var encryptMetadata = !this.xref.encrypt ? false :
this.xref.encrypt.encryptMetadata;
var stream = this.xref.fetch(streamRef, !encryptMetadata);
var metadata;
if (stream && isDict(stream.dict)) {
var type = stream.dict.get('Type');