diff options
Diffstat (limited to 'Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps')
-rw-r--r-- | Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps index b6f2bfce556..9e6c1c0f074 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2020 Artifex Software, Inc. +% Copyright (C) 2001-2021 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -481,15 +481,33 @@ systemdict /check_r6_password .forceundef % Even if StmF and StrF are Identity, if the StdCF is missing AuthEvent % or it is DocOpen, we require the password. Check for that. 1 index /CF .knownget { - /StdCF .knownget { - /AuthEvent .knownget { - /DocOpen eq - or + oforce dup type /dicttype eq { + /StdCF .knownget { + oforce dup type /dicttype eq { + /AuthEvent .knownget { + oforce dup type /nametype eq { + /DocOpen eq + or + }{ + ( **** Error: AuthEvent has wrong type.\n) pdfformaterror + ( Cannot decrypt PDF file.\n) pdfformaterror + /pdf_process_Encrypt cvx /invalidfileaccess signalerror + } ifelse + } { + pop true % no AuthEvent, default is DocOpen, require password + } ifelse + }{ + ( **** Error: StdCF has wrong type.\n) pdfformaterror + ( Cannot decrypt PDF file.\n) pdfformaterror + /pdf_process_Encrypt cvx /invalidfileaccess signalerror + } ifelse } { - pop true % no AuthEvent, default is DocOpen, require password + pop true % no StdCF, require password } ifelse - } { - pop true % no StdCF, require password + }{ + ( **** Error: CF has wrong type.\n) pdfformaterror + ( Cannot decrypt PDF file.\n) pdfformaterror + /pdf_process_Encrypt cvx /invalidfileaccess signalerror } ifelse } { pop true % no CF, require password |