protected internal virtual void SetStandardHandlerDicEntries(PdfDictionary encryptionDictionary, byte[] userKey
                                                              , byte[] ownerKey)
 {
     encryptionDictionary.Put(PdfName.Filter, PdfName.Standard);
     encryptionDictionary.Put(PdfName.O, new PdfLiteral(StreamUtil.CreateEscapedString(ownerKey)));
     encryptionDictionary.Put(PdfName.U, new PdfLiteral(StreamUtil.CreateEscapedString(userKey)));
     encryptionDictionary.Put(PdfName.P, new PdfNumber(permissions));
 }
Exemple #2
0
        private void SetAES256DicEntries(PdfDictionary encryptionDictionary, byte[] oeKey, byte[] ueKey, byte[] aes256Perms
                                         , bool encryptMetadata, bool embeddedFilesOnly)
        {
            int vAes256     = 5;
            int rAes256     = 5;
            int rAes256Pdf2 = 6;

            encryptionDictionary.Put(PdfName.OE, new PdfLiteral(StreamUtil.CreateEscapedString(oeKey)));
            encryptionDictionary.Put(PdfName.UE, new PdfLiteral(StreamUtil.CreateEscapedString(ueKey)));
            encryptionDictionary.Put(PdfName.Perms, new PdfLiteral(StreamUtil.CreateEscapedString(aes256Perms)));
            encryptionDictionary.Put(PdfName.R, new PdfNumber(isPdf2 ? rAes256Pdf2 : rAes256));
            encryptionDictionary.Put(PdfName.V, new PdfNumber(vAes256));
            PdfDictionary stdcf = new PdfDictionary();

            stdcf.Put(PdfName.Length, new PdfNumber(32));
            if (!encryptMetadata)
            {
                encryptionDictionary.Put(PdfName.EncryptMetadata, PdfBoolean.FALSE);
            }
            if (embeddedFilesOnly)
            {
                stdcf.Put(PdfName.AuthEvent, PdfName.EFOpen);
                encryptionDictionary.Put(PdfName.EFF, PdfName.StdCF);
                encryptionDictionary.Put(PdfName.StrF, PdfName.Identity);
                encryptionDictionary.Put(PdfName.StmF, PdfName.Identity);
            }
            else
            {
                stdcf.Put(PdfName.AuthEvent, PdfName.DocOpen);
                encryptionDictionary.Put(PdfName.StrF, PdfName.StdCF);
                encryptionDictionary.Put(PdfName.StmF, PdfName.StdCF);
            }
            stdcf.Put(PdfName.CFM, PdfName.AESV3);
            PdfDictionary cf = new PdfDictionary();

            cf.Put(PdfName.StdCF, stdcf);
            encryptionDictionary.Put(PdfName.CF, cf);
        }
Exemple #3
0
        private PdfArray GetEncodedRecipients()
        {
            PdfArray EncodedRecipients = new PdfArray();

            byte[] cms;
            for (int i = 0; i < recipients.Count; i++)
            {
                try {
                    cms = GetEncodedRecipient(i);
                    EncodedRecipients.Add(new PdfLiteral(StreamUtil.CreateEscapedString(cms)));
                }
                catch (GeneralSecurityException) {
                    EncodedRecipients = null;
                    // break was added while porting to itext7
                    break;
                }
                catch (System.IO.IOException) {
                    EncodedRecipients = null;
                    // break was added while porting to itext7
                    break;
                }
            }
            return(EncodedRecipients);
        }