Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0
    • Fix Version/s: 4.0
    • Component/s: Core/Parsing
    • Labels:
      None
    • Environment:
      Java 1.5, 1.6
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.)

      Description

      When I was working on PDF-130, I was running the tagging on the calgary transit 2004 PDF, using Java 1.5, and it worked just fine. When I switched to using Java 1.6, I got an exception related to loading Bouncy Castle.

      This might be due to changes to the reflection code that I made for PDF-127, where I changed the SecurityManager reflection code to not happen in the constructor, but instead happen statically. That change should be investigated.

      Also, I noticed that Java 1.6 includes a Sun JCE provider, whereas Java 1.5 does not. This could indicate a conflict between BouncyCastle and the Sun JCE provider. Possibly a newer version of BouncyCastle may address any conflict.

      We should see if BouncyCastle is even necessary with Java 1.6. Potentially we may need it for its RC4 implementation.

        Activity

        Hide
        Mark Collette added a comment -

        Actually, Sun's 1.5 JVM and up include a JCE provider, and it even has RC4 support. So BouncyCastle might not be necessary anymore.
        http://java.sun.com/j2se/1.5.0/docs/guide/security/jce/JCERefGuide.html#SupportRSAEncryption

        I'll need to check-out the Mac JVM and see about its JCE provider.

        Show
        Mark Collette added a comment - Actually, Sun's 1.5 JVM and up include a JCE provider, and it even has RC4 support. So BouncyCastle might not be necessary anymore. http://java.sun.com/j2se/1.5.0/docs/guide/security/jce/JCERefGuide.html#SupportRSAEncryption I'll need to check-out the Mac JVM and see about its JCE provider.
        Hide
        Mark Collette added a comment -

        It looks like the original problem was due to IDE classpath issues.

        But, I did investigate the actual need for BouncyCastle, now that we're only running on Java 1.5+, and found that with the Sun 1.5 and 1.6 JVMs on Windows, and the Mac 1.5 JVM on OS X 10.5, they already have functioning JCE providers that give us RC4, so it's not necessary anymore.

        With BouncyCastle not necessary any more, I've changed the code to not exception when it's not found. It will still log a warning for now. In the future that might change to being a fine log level.

        Should update any docs that mention library dependencies.

        Subversion 20315
        icepdf\core\src\org\icepdf\core\pobjects\security\SecurityManager.java

        Show
        Mark Collette added a comment - It looks like the original problem was due to IDE classpath issues. But, I did investigate the actual need for BouncyCastle, now that we're only running on Java 1.5+, and found that with the Sun 1.5 and 1.6 JVMs on Windows, and the Mac 1.5 JVM on OS X 10.5, they already have functioning JCE providers that give us RC4, so it's not necessary anymore. With BouncyCastle not necessary any more, I've changed the code to not exception when it's not found. It will still log a warning for now. In the future that might change to being a fine log level. Should update any docs that mention library dependencies. Subversion 20315 icepdf\core\src\org\icepdf\core\pobjects\security\SecurityManager.java
        Hide
        Patrick Corless added a comment -

        Removing the bouncy castle jars from the build scripts. Mark can you make sure that the securityManager's warning is more specific to the bouncy castle provider stead of the generic warning message.

        Show
        Patrick Corless added a comment - Removing the bouncy castle jars from the build scripts. Mark can you make sure that the securityManager's warning is more specific to the bouncy castle provider stead of the generic warning message.
        Hide
        Mark Collette added a comment -

        Reworded the messages to be more specific to bouncy castle, and to emphasise that it is optional, while lowering the log level as well.

        Subversion 20360

        Show
        Mark Collette added a comment - Reworded the messages to be more specific to bouncy castle, and to emphasise that it is optional, while lowering the log level as well. Subversion 20360
        Hide
        Patrick Corless added a comment -

        Removed the bouncy jars from the bundles as well as the the wiki pages. The jars can still be used but the JDK comes with the needed crypto implementations.

        Show
        Patrick Corless added a comment - Removed the bouncy jars from the bundles as well as the the wiki pages. The jars can still be used but the JDK comes with the needed crypto implementations.

          People

          • Assignee:
            Patrick Corless
            Reporter:
            Mark Collette
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: