Legacy notice!

iText 5 is the previous major version of iText's leading PDF SDK. iText 5 has been EOL, and is no longer developed. Switch your project to iText 7, integrating the latest developments.
Check related iText 7 content!

I want to encrypt my PDF but there seems to be an error.

Here is the code:

PdfReader reader = new PdfReader("my.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("new.pdf"));
stamper.setEncryption("reader_password".getBytes(), "permission_password".getBytes(),
    PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING, PdfWriter.STANDARD_ENCRYPTION_128);
stamper.close();
Here's the error I get:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable

Posted on StackOverflow on May 19, 2014 by wizclark99

When you look at the POM file for iText, you see the following dependencies:

org.bouncycastlebcprov-jdk15on1.49jarcompiletrueorg.bouncycastlebcpkix-jdk15on1.49jarcompiletrue

This means that you need the bcprov and the bcpkix jars version 1.49 from Bouncycastle.

If you are not using iText 5.5.x, please check the POM file as older version of iText might require older versions of BouncyCastle.