R: Bc error validating signature with ECC cert
Emiliano Latini <[email protected]> Fri, 13 Dec 2019 11:55:28 +0000
| Newsgroups | gmane.comp.encryption.bouncy-castle.devel |
|---|---|
| Message-ID | <PR1PR01MB4795640428AE182C55E9FEA198540@PR1PR01MB4795.eurprd01.prod.exchangelabs.com> |
--_000_PR1PR01MB4795640428AE182C55E9FEA198540PR1PR01MB4795eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Thank you David, you were right, somehow I was using sunjce. With BC it works Emiliano Latini Engineering's Software Laboratory Direct: +39 06 87594577 Mobile: +39 347 7906590 E-mail : [email protected] Engineering Ingegneria Informatica spa Piazzale dell'Agricoltura, 24 - 00144 Roma Segui Engineering su Twitter! (@EngineeringSpA) www.eng.it<http://www.eng.it/> Da: David Hook [mailto:dgh-rTAZ0PM/[email protected]] Inviato: venerd=EC 13 dicembre 2019 12:26 A: [email protected] Oggetto: Re: [dev-crypto] Bc error validating signature with ECC cert Are you sure the BC provider is being used here? I would have expected new JcaSimpleSignerInfoVerifierBuilder().setProvider("BC").build(certHolder= ) If that was the case. Regards, David On 13/12/19 10:13 pm, Emiliano Latini wrote: Hi all, I'm checking a signature with BC, ti worked for months but I've came across= this excetion checking a signed a file: java.io.IOException: Unknown named curve: 1.3.36.3.3.2.8.1.1.7 A brief search resulted in problems with ECC certificates such as brainpool= . Any Ideas? Below a snippet of code: ASN1InputStream aIn =3D new ASN1InputStream(signedData); CMSSignedData s =3D new CMSSignedData(ContentInfo.getInstance(a= In.readObject())); aIn.close(); Store certs =3D s.getCertificates(); SignerInformationStore signers =3D s.getSignerInfos(); Collection<SignerInformation> c =3D signers.getSigners(); List<Boolean> isValidSigner =3D new ArrayList<Boolean>(); CertificateHelper x509CertHelper=3D new CertificateHelper(); for(SignerInformation signer:c){ Collection<X509CertificateHolder> certCollection =3D cert= s.getMatches(signer.getSID()); Iterator<X509CertificateHolder> certIt =3D certCollection= .iterator(); X509CertificateHolder certHolder =3D certIt.next(); boolean verifResult =3D signer.verify(new JcaSimpleSigner= InfoVerifierBuilder().build(certHolder)); ... The exception arises in: signer.verify(new JcaSimpleSignerInfoVerifierBuild= er().build(certHolder)); --_000_PR1PR01MB4795640428AE182C55E9FEA198540PR1PR01MB4795eurp_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <html> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-= 1"> <meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)"> <style><!-- /* Font Definitions */ @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4;} @font-face {font-family:"Segoe UI"; panose-1:2 11 5 2 4 2 4 2 2 3;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4;} @font-face {font-family:"Courier New \;color\:lavender"; panose-1:0 0 0 0 0 0 0 0 0 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri","sans-serif"; color:black; mso-fareast-language:EN-US;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:purple; text-decoration:underline;} p {mso-style-priority:99; mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; font-size:12.0pt; font-family:"Times New Roman","serif"; color:black;} span.StileMessaggioDiPostaElettronica17 {mso-style-type:personal; font-family:"Tahoma","sans-serif"; color:windowtext;} span.StileMessaggioDiPostaElettronica19 {mso-style-type:personal-reply; font-family:"Tahoma","sans-serif"; color:#0070C0;} .MsoChpDefault {mso-style-type:export-only; font-size:10.0pt;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 2.0cm 2.0cm 2.0cm;} div.WordSection1 {page:WordSection1;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body bgcolor=3D"white" lang=3D"IT" link=3D"blue" vlink=3D"purple"> <div class=3D"WordSection1"> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif";color:#0070C0">Thank you David, <o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif";color:#0070C0"><o:p> </o:p></span></= p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif";color:#0070C0">you were right, somehow I = was using sunjce. With BC it works<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif";color:#0070C0"><o:p> </o:p></span></= p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif";color:#0070C0"><o:p> </o:p></span></= p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif";color:#0070C0"><o:p> </o:p></span></= p> <div> <p class=3D"MsoNormal"><b><span style=3D"font-size:7.5pt;font-family:"= Tahoma","sans-serif";color:gray;mso-fareast-language:IT">Emi= liano Latini</span></b><span style=3D"color:navy;mso-fareast-language:IT"> <o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto"><b><span style=3D"font-size:7.5pt;font-family:"Tahoma",&= quot;sans-serif";color:gray;mso-fareast-language:IT">Engineering's Sof= tware Laboratory</span></b><span style=3D"font-size:12.0pt;font-family:&quo= t;Times New Roman","serif";color:#0070C0;mso-fareast-languag= e:IT"><o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto"><span style=3D"font-size:7.5pt;font-family:"Tahoma",&quo= t;sans-serif";color:gray;mso-fareast-language:IT">Direct: &= nbsp; &nbs= p; +39 06 87594577 &= nbsp; </span><span style=3D"font-size:12.0pt;font-family:"Times New Roman&qu= ot;,"serif";color:navy;mso-fareast-language:IT"><br> </span><span style=3D"font-size:7.5pt;font-family:"Tahoma","= sans-serif";color:gray;mso-fareast-language:IT">Mobile: &nb= sp; = </span><span lang=3D"EN-GB" style=3D"font-size:7.5pt;font-family:"Taho= ma","sans-serif";color:gray;mso-fareast-language:IT">+39= 347 7906590</span><span lang=3D"EN-GB" style=3D"font-size:12.0pt;fon= t-family:"Times New Roman","serif";color:navy;mso-farea= st-language:IT"> <br> </span><span lang=3D"EN-GB" style=3D"font-size:7.5pt;font-family:"Taho= ma","sans-serif";color:gray;mso-fareast-language:IT"> &= nbsp; &nbs= p; </span><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font-family:"Tim= es New Roman","serif";color:navy;mso-fareast-language:IT"><b= r> </span><span lang=3D"EN-GB" style=3D"font-size:7.5pt;font-family:"Taho= ma","sans-serif";color:gray;mso-fareast-language:IT">E-mail = : &n= bsp; [email protected] </span><span lang=3D"EN-GB" style=3D"font-size:12.0pt;font-family:"Tim= es New Roman","serif";color:navy;mso-fareast-language:IT"><o= :p></o:p></span></p> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto"><b><span lang=3D"EN-GB" style=3D"font-size:7.5pt;font-family:"= ;Tahoma","sans-serif";color:gray;mso-fareast-language:IT">En= gineering Ingegneria Informatica spa<br> Piazzale dell’Agricoltura, 24 - 00144 Roma<o:p></o:p></span></b>= </p> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto"><b><span lang=3D"EN-GB" style=3D"font-size:7.5pt;font-family:"= ;Tahoma","sans-serif";color:gray;mso-fareast-language:IT">Se= gui Engineering su Twitter! (@EngineeringSpA)</span></b><span style=3D"font= -size:12.0pt;font-family:"Times New Roman","serif";colo= r:#0070C0;mso-fareast-language:IT"><o:p></o:p></span></p> <p class=3D"MsoNormal" style=3D"mso-margin-top-alt:auto;mso-margin-bottom-a= lt:auto"><b><span lang=3D"EN-GB" style=3D"font-size:7.5pt;font-family:"= ;Tahoma","sans-serif";color:gray;mso-fareast-language:IT"><a= href=3D"http://www.eng.it/">www.eng.it</a> </span></b><span style=3D"font-size:12.0pt;font-family:"Times New Roma= n","serif";color:#0070C0;mso-fareast-language:IT"><o:p></o:p= ></span></p> </div> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif";color:#0070C0"><o:p> </o:p></span></= p> <div> <div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm = 0cm 0cm"> <p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:"= ;Segoe UI","sans-serif";color:windowtext;mso-fareast-languag= e:IT">Da:</span></b><span style=3D"font-size:10.0pt;font-family:"Segoe= UI","sans-serif";color:windowtext;mso-fareast-language:IT">= David Hook [mailto:dgh-rTAZ0PM/[email protected]] <br> <b>Inviato:</b> venerd=EC 13 dicembre 2019 12:26<br> <b>A:</b> [email protected]<br> <b>Oggetto:</b> Re: [dev-crypto] Bc error validating signature with ECC cer= t<o:p></o:p></span></p> </div> </div> <p class=3D"MsoNormal"><o:p> </o:p></p> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">Are you sure the BC provider is being used here? I w= ould have expected<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">new JcaSimpleSignerInfoVerifierBuilder().setProvider= ("BC").build(certHolder)<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">If that was the case.<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">Regards,<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">David<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">On 13/12/19 10:13 pm, Emiliano Latini wrote:<o:p></o= :p></p> </div> <blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt"> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif"">Hi all,</span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif""> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif"">I’m checking a signature with BC, = ti worked for months but I’ve came across this excetion checking a si= gned a file:</span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif""> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif"">java.io.IOException: Unknown named curve= : 1.3.36.3.3.2.8.1.1.7</span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif""> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif"">A brief search resulted in problems with= ECC certificates such as brainpool.</span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif""> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif"">Any Ideas?</span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif""> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif"">Below a snippet of code:</span><o:p></o:= p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif""> </span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:35.4pt;text-indent:35.4pt;text-= autospace:none"> <span style=3D"font-size:10.0pt;font-family:"Courier New","s= erif"">ASN1InputStream aIn =3D new ASN1InputStream(signedData);</span>= <o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; CMSSignedData s = =3D new CMSSignedData(ContentInfo.getInstance(aIn.readObject()));</span><o:= p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; &= nbsp; </span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; aIn.close();</span= ><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; </span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; Store certs =3D s.= getCertificates();</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; SignerInformationS= tore signers =3D s.getSignerInfos();</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; Collection<Sign= erInformation> c =3D signers.getSigners();</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; &= nbsp; &nbs= p; &= nbsp; </span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; List<Boolean>= ; isValidSigner =3D new ArrayList<Boolean>();</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; CertificateHelper = x509CertHelper=3D new CertificateHelper();</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; for(SignerInformat= ion signer:c){</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; &= nbsp; </span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; &= nbsp; Collection<X509CertificateHolder> certCollection = =3D certs.getMatches(signer.getSID());</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; &= nbsp; Iterator<X509CertificateHolder> certIt =3D certColl= ection.iterator();</span><o:p></o:p></p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Courier New","serif""> &nbs= p; &= nbsp; X509CertificateHolder certHolder =3D certIt.next();</span= ><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Co= urier New","serif""> &nbs= p; boolean veri= fResult =3D signer.verify(new JcaSimpleSignerInfoVerifierBuilder().build(ce= rtHolder))</span><span style=3D"font-size:10.0pt;font-family:"Courier = New ;color:lavender","serif"">;</span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Co= urier New ;color:lavender","serif""> </span><o:p></o:p>= </p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:Consolas= ;color:lavender"> </span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:Consolas= ;color:lavender"> &nbs= p; …</span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta= homa","sans-serif";color:lavender"> </span><o:p></o:p><= /p> <p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si= ze:10.0pt;font-family:"Tahoma","sans-serif"">The except= ion arises in:</span><span style=3D"font-size:10.0pt;font-family:"Cour= ier New","serif""> signer.verify(new JcaSimpleSignerInfoVeri= fierBuilder().build(certHolder));</span><o:p></o:p></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:Consolas= ;color:lavender"> </span><o:p></o:p></p> <p class=3D"MsoNormal"> <o:p></o:p></p> </blockquote> <p><o:p> </o:p></p> </div> </body> </html> --_000_PR1PR01MB4795640428AE182C55E9FEA198540PR1PR01MB4795eurp_--