Bc error validating signature with ECC cert
Emiliano Latini <[email protected]> Fri, 13 Dec 2019 11:13:00 +0000
| Newsgroups | gmane.comp.encryption.bouncy-castle.devel |
|---|---|
| Message-ID | <PR1PR01MB4795C1AECE4C5257C0E0280098540@PR1PR01MB4795.eurprd01.prod.exchangelabs.com> |
--_000_PR1PR01MB4795C1AECE4C5257C0E0280098540PR1PR01MB4795eurp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
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_PR1PR01MB4795C1AECE4C5257C0E0280098540PR1PR01MB4795eurp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://schema=
s.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html=
40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<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:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
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;}
span.StileMessaggioDiPostaElettronica17
{mso-style-type:personal-compose;
font-family:"Tahoma","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
@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 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"">Hi all,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif""><o:p> </o:p></span></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:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif""><o:p> </o:p></span></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<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif""><o:p> </o:p></span></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.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif""><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif"">Any Ideas?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif""><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif"">Below a snippet of code:<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif""><o:p> </o:p></span></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"">ASN1In=
putStream aIn =3D new ASN1InputStream(signedData);<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; CMSSignedData s =3D new CMSSignedDat=
a(ContentInfo.getInstance(aIn.readObject()));<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; &=
nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; aIn.close();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; Store certs =3D s.getCertificates();=
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; SignerInformationStore signers =3D s=
.getSignerInfos();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; Collection<SignerInformation> =
c =3D signers.getSigners();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; &=
nbsp; &nbs=
p; &=
nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; List<Boolean> isValidSigner =
=3D new ArrayList<Boolean>();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; CertificateHelper x509CertHelper=3D =
new CertificateHelper();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; for(SignerInformation signer:c){<o:p=
></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p;
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; =
Collection<X509CertificateHolder> certCollection =3D certs.getMatches=
(signer.getSID());<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; =
Iterator<X509CertificateHolder> certIt =3D certCollection.iterator();=
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:10.0pt;font-family:"Courier New""> &nbs=
p; =
X509CertificateHolder certHolder =3D certIt.next();<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Co=
urier New""> &nbs=
p; boolean verifResult =3D signer=
.verify(new JcaSimpleSignerInfoVerifierBuilder().build(certHolder))</span><=
span style=3D"font-size:10.0pt;font-family:"Courier New";color:la=
vender">;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Co=
urier New";color:lavender"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:Consolas=
;color:lavender"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:Consolas=
;color:lavender"> &nbs=
p; …<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ta=
homa","sans-serif";color:lavender"><o:p> </o:p></span><=
/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""> signer.verify(new JcaSimpleSignerInfoVerifierBuilder().buil=
d(certHolder));<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:Consolas=
;color:lavender"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>
--_000_PR1PR01MB4795C1AECE4C5257C0E0280098540PR1PR01MB4795eurp_--