Thank you! I will check that out. On Thu, Jul 2, 2015 at 10:12 AM, Lachezar Dobrev <[email protected]> wrote:
> You might want to check if you're not being plagued by transitive > dependencies woes. > Use "mvn dependency:tree" to check the dependencies in your project. You > may be surprised. > > 2015-07-02 17:09 GMT+03:00 Evan Williams <[email protected]>: > > > I tried updating to bouncycastle 1.52 (I was using 1.50) and making my > > dependencies look as much like the ones in the examples pom.xml as > > possible, but it just does not work. > > > > It occurred to me that for the purposes of my application the pdf is just > > going to go straight to the printer and no end user will care if there is > > an actual electronic signature. So I am just going to draw the signature > > over the top of the signature fields and call it good. > > > > But I am disturbed that it was impossible for me to get visible > signatures > > to work with 2.0 (or any signatures). I would be very happy to help > anyone > > who wants to investigate this. > > > > If I had time I would love to make contributions to the PDFBox project > > because I see how valuable it is and I feel strongly about it. But I > don't > > have time and I need to concern myself with the application I am writing > > and giving my own users the best experience possible. > > > > Thank you so much for your help! > > > > On Thu, Jul 2, 2015 at 7:49 AM, Evan Williams <[email protected]> > > wrote: > > > > > But making a standalone jar is not what I am doing. Not at all. > > > > > > I have a web application that is deployed by maven. No jars were harmed > > in > > > the making of this application. > > > > > > And as I said in my email this always always worked perfectly and I > never > > > ever got this error with 1.8.9. I am compliling exactly the same code > and > > > building and deploying exactly the same way as I always did. The ONLY > > > difference (aside from completely irrelevant updates to code that is > not > > in > > > this code path) is that I am using 2.0 rather than 1.8.9. And if I take > > my > > > code and edit my pom.xml to use 1.8.9 rather than 2.0 it all works > again. > > > > > > The only thing I am changing is that I use 2.0. If I go back to 1.8.9 > it > > > works again. > > > > > > What I am going to do is carefully compare the derived dependencies > that > > > maven comes up with to see if there is some important difference there. > > Or > > > at least a clue. > > > > > > Thanks. > > > > > > On Thu, Jul 2, 2015 at 2:58 AM, Thomas Chojecki <[email protected]> > > > wrote: > > > > > >> Hi all, > > >> for crypto stuff the bc provider need to be signed (provider > signature). > > >> Making a standalone jar (jar with dependencies) will break the > > signature of > > >> the jar. So registering the BC as provider will not work. You can see > in > > >> the exception this message "JCE cannot authenticate the provider BC". > > >> > > >> Additionally, switching between 1.8.x and 2.0.x brings different BC > > >> versions which aren't compatible between each other for signing stuff. > > You > > >> can force a BC version but then you maybe would have problems with > > >> encrypted pdf documents. > > >> > > >> And as Andreas already said, don't use the pdfbox-app as the base for > an > > >> application, it is for demo / example purpose only. So the users can > > just > > >> check some pdfbox features from the command line. > > >> > > >> Best regards > > >> Thomas > > >> > > >> > > >> Zitat von Andreas Lehmkühler <[email protected]>: > > >> > > >> > > >> Hi, > > >>> > > >>> Torgeir Veimo <[email protected]> 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. > > >>> > > >>> 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 <[email protected]> > > 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: [email protected] > > >>>> > For additional commands, e-mail: [email protected] > > >>>> > > > >>>> > > >>>> > > >>>> > > >>>> -- > > >>>> -Tor > > >>>> > > >>>> > --------------------------------------------------------------------- > > >>>> To unsubscribe, e-mail: [email protected] > > >>>> For additional commands, e-mail: [email protected] > > >>>> > > >>>> > > >>> BR > > >>> Andreas > > >>> > > >>> --------------------------------------------------------------------- > > >>> To unsubscribe, e-mail: [email protected] > > >>> For additional commands, e-mail: [email protected] > > >>> > > >> > > >> > > >> > > >> --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: [email protected] > > >> For additional commands, e-mail: [email protected] > > >> > > >> > > > > > > > > > -- > > > *Evan Williams* > > > Sr. Software Engineer > > > [email protected] > > > > > > *www.ZappRx.com <http://www.zapprx.com/>* > > > > > > > > > > > > -- > > *Evan Williams* > > Sr. Software Engineer > > [email protected] > > > > *www.ZappRx.com <http://www.zapprx.com/>* > > > -- *Evan Williams* Sr. Software Engineer [email protected] *www.ZappRx.com <http://www.zapprx.com/>*

