pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Hewson <j...@jahewson.com>
Subject Re: Bouncycastle Provider Suddenly Stopped Working wehn I went to PDFBox 2.0
Date Thu, 02 Jul 2015 16:22:13 GMT

> On 1 Jul 2015, at 23:21, Andreas Lehmkühler <andreas@lehmi.de> wrote:
> 
> Hi,
> 
>> Torgeir Veimo <torgeir.veimo@gmail.com> hat am 2. Juli 2015 um 05:54
>> geschrieben:
>> 
>> 
>> I recently had some unexpected bouncy castle issues and didn't realise
>> until I read this that the 2.0.0-SNAPSHOT actually includes the bouncy
>> castle class files! Will the practice be abandoned for release jars?
>> It will definitely cause deployment issues if this practice is kept
>> with the final 2.0.0 release.
> I guess there is a misunderstanding. Only the pdfbox-app jar contains all those
> third party dependencies. That jar is meant to be a standalone jar to be used as
> commandline app.

Now that we've moved the command line tools to the " tools" jar, there's no real
need for the "app" jar. We could simply bundle dependencies into the "tools" jar.

Actually, I'm not even sure hat bundling dependencies is a good idea, because we
have GPL'd dependencies which aren't bundled - so it's not like we end up with a
single jar anyway.

Seems like we could avoid a lot of confusion is way?

-- John

> If you are building your own application you should include the jars of the
> pdfbox subprojects itself, such as
> 
> fontbox
> pdfbox
> 
> and maybe the following as well (if needed)
> 
> xmpbox
> preflight
> 
>> 
>>> On 2 July 2015 at 05:31, Andreas Lehmkuehler <andreas@lehmi.de> wrote:
>>> Hi,
>>> 
>>> 
>>>> Am 01.07.2015 um 20:27 schrieb Evan Williams:
>>>> 
>>>> I am, as I have said before, taking a working application that used PDFBox
>>>> 1.8.9 amd updating it for 2.0.
>>>> 
>>>> I have fixed everything (with the help of the excellent people on this
>>>> list) but one bug persists.
>>>> 
>>>> I have visual signature code which is an adaptation of the Visible
>>>> Signature example included in the PDFBox examples.
>>>> 
>>>> Before it just worked (though there were some issues).
>>>> 
>>>> But when I went to 2.0 I began to get the infamous 'JCE cannot
>>>> authenticate
>>>> the provider BC' exception.
>>>> 
>>>> *java.io.IOException: error constructing MAC: java.lang.SecurityException:
>>>> JCE cannot authenticate the provider BC at
>>>> 
>>>> org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi.engineLoad(Unknown
>>>> Source) at java.security.KeyStore.load(KeyStore.java:1433) at
>>>> com.zapprx.rxforms.authorizations.KeyRing.<init>(KeyRing.java:62) at
>>>> com.zapprx.rxforms.KeyRingTest.testKeyRing(KeyRingTest.java:30) at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
>>>> 
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>> at
>>>> 
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>> at java.lang.reflect.Method.invoke(Method.java:483) at
>>>> 
>>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
>>>> at
>>>> 
>>>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>>>> at
>>>> 
>>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
>>>> at
>>>> 
>>>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>>>> at
>>>> 
>>>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
>>>> at
>>>> 
>>>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at
>>>> 
>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>>>> at
>>>> 
>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at
>>>> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at
>>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at
>>>> org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at
>>>> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at
>>>> org.junit.runners.ParentRunner.run(ParentRunner.java:309) at
>>>> 
>>>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
>>>> at
>>>> 
>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
>>>> at
>>>> 
>>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
>>>> 
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>> at
>>>> 
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>> at java.lang.reflect.Method.invoke(Method.java:483) at
>>>> 
>>>> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
>>>> at
>>>> 
>>>> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
>>>> at
>>>> 
>>>> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
>>>> at
>>>> 
>>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
>>>> at
>>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
*
>>>> The code that causes this is just
>>>> 
>>>> *            Provider provider = new BouncyCastleProvider();*
>>>> *            KeyStore keystore = KeyStore.getInstance("PKCS12",
>>>> provider);*
>>>> *            char[] pin = pinString.toCharArray();*
>>>> *            keystore.load(ksInputStream, pin);*
>>>> 
>>>> (presume with me that the pin and the input stream are OK.)
>>>> 
>>>> There have been absolutely no code changes whatsoever in the code path in
>>>> question and the only change to the build (I am building with maven) is to
>>>> replace 1.8.9 with 2.0.
>>>> 
>>>> It is a long shot but maybe this is a FAQ, or maybe someone will say 'of
>>>> course, because we changed this in 2.0!'
>>>> 
>>>> Or maybe not.
>>>> 
>>>> But if anyone has an idea please clue me in. Stack overflow has a variety
>>>> of answers but they all relate to things that have nothing to do with what
>>>> I am soing, or do not explain why it used to work pre-2.0 and doesn't with
>>>> 2.0.
>>> 
>>> I'm not a BC expert but we upgraded BC from 1.44 to 1.51. Although the
>>> numbers may lead to the assumption that this is minor change, it isn't.
>>> Those versions aren't binary compatible and obviously there are some other
>>> differences.
>>> 
>>> Sorry, that I can't help you directly, but I guess you should investigate
>>> the BC upgrade path.
>>> 
>>>> Thank you.
>>> 
>>> BR
>>> Andreas
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
>>> For additional commands, e-mail: users-help@pdfbox.apache.org
>> 
>> 
>> 
>> -- 
>> -Tor
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
>> For additional commands, e-mail: users-help@pdfbox.apache.org
> 
> BR
> Andreas
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message