code: public void setEncryption(byte userPassword[], byte ownerPassword[], int permissions, boolean strength128Bits) throws DocumentException {
          if (stamper.isAppend())
              throw new DocumentException("Append mode does not support changing the encryption status.");
          if (stamper.isContentWritten())
              throw new DocumentException("Content was already written to the output.");
          stamper.setEncryption(userPassword, ownerPassword, permissions, strength128Bits ? PdfWriter.STANDARD_ENCRYPTION_128 : PdfWriter.STANDARD_ENCRYPTION_40);
      }
docs: Sets the encryption options for this document. The userPassword and the
  ownerPassword can be null or have zero length. In this case the ownerPassword
  is replaced by a random string. The open permissions for the document can be
  AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations,
  AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting.
  The permissions can be combined by ORing them.
  @param userPassword the user password. Can be null or empty
  @param ownerPassword the owner password. Can be null or empty
  @param permissions the user permissions
  @param strength128Bits <code>true</code> for 128 bit key length, <code>false</code> for 40 bit key length
  @throws DocumentException if anything was already written to the output