Proofed it. Corrected a few typos and added a link to the PDF Reference. In
a couple more days, I'll read over it again.
Pat
-----Original Message-----
From: J.Pietschmann [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 06, 2003 3:44 PM
To: [EMAIL PROTECTED]
Subject: Re: Encryption
Patrick C. Lankswert wrote:
> If there is anything you need reworked, just let me know.
No problem apart from the surprise.
I wrote up something in pdfencryption.xml, checked in in HEAD (not
the maintenance branch). If you (or someone else) would proofread
it, in order to spare others the trouble...
Again, did anyone try the Mozilla JCE impl?
Any other OSS implementation (besides BouncyCastle) which
includes RC4?
What about commercial stuff?
Peter, Keiron: how is the web site updated? I thought there was a
cron job every few hours?
J.Pietschmann
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]
<?xml version="1.0" standalone="no"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN"
"http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/document-v11.dtd">
<document>
<header>
<title>PDF encryption.</title>
</header>
<body>
<section>
<title>Overview</title>
<p>
FOP supports encryption of PDF output, thanks to Patrick
C. Lankswert. This feature is commonly used to prevent unauthorized
printing, editing and copying text from the document or to forbid
annotations. It is also possible to ask the user for a password in order
to view the contents. Note that there already exist third party
applications which can decrypt an encrypted PDF without effort and allow
the aforementioned operations, therefore the degree of protection is
limited.
</p>
<p>
For further information about features and restrictions regarrding PDFF
encryption, look at the documentation coming with Adobe Acrobat or the
technial documentation on the Adobe web site.
</p>
</section>
<section>
<title>Usage</title>
<p>
Encryption is enabled by supplying an owner password with the
<code>-o</code> option. The owner password can be used to disregard
any restriction imposed on the PDF document. If no owner password has
been supplied but FOP was asked to apply some restrictions, a random
password is used.
</p>
<p>
A user password, supplied with the <code>-u</code> option, will
cause the PDF display software to ask the reader for this password in
order to view the contents of the document. If no user password was
supplied, viewing the content is not restricted.
</p>
<p>
Further restrictions can be imposed by using the
<code>-noprint</code>, <code>-nocopy</code>,
<code>-noedit</code> and <code>-noannotations</code> options,
which disable printing, copy text, editing in Adobe Acrobat and making
annotations, respectively.
</p>
</section>
<section>
<title>Environment</title>
<p>
In order to use PDF encryption, FOP has to be compiled with cryptography
support. Currently, only <link
href="http://java.sun.com/j2se/1.4/docs/guide/security/jce/JCERefGuide.html">JCE</link>
is supported. JCE is part of JDK 1.4. For earlier JDKs, it can be
installed separately, however, the build process currently recognizes
JCE from JDK 1.4.
</p>
<p>
Cryptography support must also be present at run time. In particular, a
provider for the RC4 cipher is needed. Unfortunately, the sample JCE
provider in Sun's JDK 1.4 does <strong>not</strong> provide RC4. If you
get a message saying
</p>
<source>"Cannot find any provider supporting RC4"</source>
<p>
you don't have the needed support.
</p>
<p>
There are several commercial and a few Open Source packages which
provide RC4. A pure Java implementation is produced by <link
href="http://www.bouncycastle.org/">The Legion of the Bouncy
Castle</link>. <link
href="http://www.mozilla.org/projects/security/pki/jss/">Mozilla
JSS</link> is an interface to a native implementation.
</p>
</section>
<section>
<title>Installing a crypto provider</title>
<p>
The pure Java implementation from <link
href="http://www.bouncycastle.org/">Bouncy Castle</link> is easy to
install.
</p>
<ol>
<li>
Download the binary distribution for your JDK version. If you have JDK
1.3 or earlier you must alos download a JCE from the same page.
</li>
<li>
Unpack the distribution. Add the jar file to your classpath. A
convenient way to use the jar on Linux is to simply drop it into the
FOP lib directory, it will be automatically picked up by
<code>fop.sh</code>. If you have JDK 1.3 or earlier don't forget to
install the JCE as well.
</li>
<li>
Open the <code>java.security</code> file and add<br/>
<code>security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider</code>,<br/>
preferably at the end of the block defining the other crypto
providers. For JDK 1.4 this is detailed on <link href="http://java.sun.com/j2se/1.4/docs/guide/security/jce/JCERefGuide.html#InstallProvider">Sun's web site</link>.
</li>
</ol>
</section>
</body>
</document>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]