<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Verdana",sans-serif;
        color:windowtext;
        font-weight:normal;
        font-style:normal;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Verdana",sans-serif;
        color:windowtext;
        font-weight:normal;
        font-style:normal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<div>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="margin-left:5.4pt;border-collapse:collapse">
<tbody>
<tr>
<td width="151" rowspan="7" style="width:113.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal" align="center" style="text-align:center"><span style="font-family:"Verdana",sans-serif;color:#1F497D"><img width="135" height="87" style="width:1.4083in;height:.9083in" id="_x0000_i1026" src="cid:image001.png@01D53AF8.081A4F20" alt="cid:image005.png@01D01EBC.D4993640"><o:p></o:p></span></p>
</td>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#802447"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#802447"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#802447">Amritha Thorath<o:p></o:p></span></b></p>
<p class="MsoNormal"><i><span style="font-size:8.0pt;font-family:"Verdana",sans-serif">Cryptographic Software Developer<o:p></o:p></span></i></p>
</td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt"></td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">O:
</span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif">703-267-6050 x 119</span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt"></td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">E:
</span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif"><a href="mailto:athorath@corsec.com"><span style="color:#0563C1">athorath@corsec.com</span></a></span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:#802447"><a href="http://www.corsec.com/"><span style="color:#802447;text-decoration:none">Website</span></a> |
<a href="http://www.corsec.com/blog/"><span style="color:#802447;text-decoration:none">Blog</span></a> |
<a href="https://www.facebook.com/pages/Corsec/158518584300710"><span style="color:#802447;text-decoration:none">Facebook</span></a> |
<a href="https://twitter.com/CorsecSecurity"><span style="color:#802447;text-decoration:none">Twitter</span></a> |
<a href="https://www.linkedin.com/company/80343"><span style="color:#802447;text-decoration:none">LinkedIn</span></a></span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:#1F497D"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><i><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:#1F497D">Opening Markets Through Security Certifications<o:p></o:p></span></i></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Amritha Thorath <br>
<b>Sent:</b> Monday, July 15, 2019 10:34 AM<br>
<b>To:</b> 'openssl-users@openssl.org' <openssl-users@openssl.org><br>
<b>Subject:</b> BN_mod_exp() issue<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">I’m trying to implement RSA decryption primitive
</span><span style="font-size:11.5pt;font-family:"Arial",sans-serif;color:#242729;background:white">(Refer </span><a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Br2.pdf"><span style="font-size:11.5pt;font-family:"Arial",sans-serif;color:#005999;border:none windowtext 1.0pt;padding:0in;background:white">https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Br2.pdf</span></a><span style="font-size:11.5pt;font-family:"Arial",sans-serif;color:#242729;background:white">;
 section 7.1.2.1)</span><span style="font-family:"Verdana",sans-serif"> using OpenSSL.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">I’ve tried to implement in the same manner shown in some testcases (</span><a href="https://github.com/openssl/openssl/blob/master/test/bntest.c"><span style="font-size:11.5pt;font-family:"Arial",sans-serif;color:#005999;border:none windowtext 1.0pt;padding:0in;background:white">https://github.com/openssl/openssl/blob/master/test/bntest.c</span></a>).<o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">From the documentation, it is evident that message m can be generated with the below equation:<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">m = (c^d) mod n</span><span style="font-size:10.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">I use <span style="color:black;background:white">
BN_mod_exp() to do this. </span>My values for N, D and C are shown below:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">N : bff722714050aebb23a9bd018c3e9ba26a47f53816eeac7e10543958702d9265c8d67784fe03c07bfceac05e7f2a434971dfa2a5ea461893450ced52fcb3f143a85fb3a9194417ff220258840a3359a104079ccd201afec091bab6587d4cfe0b95bba34ef74a70b392a92a93f026c9bed41eb4ec80452492a2ad524e6b0333c5787b34ee941829020bb75ee5dd216b3734823ddd547d50f8a7e711f8a24fd7dbc0bd2f062ccaba98cdbf62c15d2521b39ce44c53125604493e482ae35f945c4efff1d01414b0aad33de77b020ea4aedf3d88171fe51b22881bc70c639f8b6f1b5a70ed39aa121a8f44887dcbbfce29e1e508d1b0f0666693b476d81faa6a18bd<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">D : a13aec8eba3a09c7dc18404b0083c52c10a00771e8b0e5e7abc751b2d9e52cc4987ea93be62d3889eacf306b2ddb4d506e782a9fb7b8d0034147ae3cb94a59253e51c3100fcc856b2021603ee66262b13e3536998291a9ce0b980a7720267e693485b890265b3b75578505e1e31e70ebfa3520385333bf97f9522183039658efd9b09fc0bd67a7d3c32e23adada71320ada2135f1d06a9144033ff9e0037a3b7ed1f5729b6db5f02470ecdde9eb2d97c759c73d13889bae550ab97205b67ce2f91eefb487f18c19bc6dd8831a43b0d699c771e1a9c55a1d5d2ae975691789b5c0a814c4f5e3d6a8e9e5f75419194b2d7dfe06700f6891cae8b712b3af1f9ec71<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">C : 534d1f57d948cac580b88b922bc47bc3d64c8cd1262bbf0944b99833ec94d072c1a1496be44d47a9c419dc403855a4b1cb2bb30e56e0cc5fd557d34373d785dbe70d67e30355fc228a353b05432a40874ba84253af5cc52d3ab4118e8ca1e28e6c9c610760e753f87a15912774ccb80b00ca21e85926143c1ed8385a607c4e55fa531f1f208bb3f23bc0c4eff4c272068f9939157bc61f5427cc32f017ef31f6363c8a736ec984da763ebea5eb94d83fa31d70223ec5503cfd97e598d883f43aca5e884b702a2f76d298659181cb5180e25faf56c9aa0ebe49413b9acbbefde95ec102ee4e351a8ff8d5a3fbdcee448ff466dffb45fdc0a0b3d31b3d192bb5cb</span><span style="font-size:10.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">I keep getting a seg fault and I’m not sure why. My code and the error are shown below:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">Code:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">          </span>
<span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">BIGNUM *m = NULL, *n = NULL, *d = NULL, *c = NULL;<o:p></o:p></span></p>
<pre style="background:#EFF0F1;vertical-align:baseline"><span style="font-family:"Verdana",sans-serif;color:black;background:silver;mso-highlight:silver">          </span><code><span style="font-family:"Verdana",sans-serif;color:#242729;border:none windowtext 1.0pt;padding:0in;background:silver;mso-highlight:silver">int isValid = -1;</span></code><span style="font-family:"Verdana",sans-serif;color:#242729"><o:p></o:p></span></pre>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">          n = BN_bin2bn(N, 256, n);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">          d = BN_bin2bn(D, 256, d);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">          c = BN_bin2bn(ciphertext, 256, d);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">          if (c == NULL || n == NULL || d == NULL)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">                    printf("\n\nC,N,D is NULL, BN_bin2bn() failed!!\n\n");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">  
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">          isValid = BN_mod_exp(m, c, d, n, NULL);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">         
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;background:silver;mso-highlight:silver">          BN_free(n); BN_free(d); BN_free(c); BN_free(m);</span><span style="font-size:10.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">The error is :<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">Program received signal SIGSEGV, Segmentation fault.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">0x00007ffff792fd39 in fips_bn_ctx_start (ctx=0x0) at bn_ctx.c:261<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">261             if(ctx->err_stack || ctx->too_many)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">(gdb) bt<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">#0  0x00007ffff792fd39 in fips_bn_ctx_start (ctx=0x0) at bn_ctx.c:261<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">#1  0x00007ffff7932a55 in fips_bn_mod_exp_mont (rr=0x0, a=0x6a9b30, p=0x6a9b30, m=0x6a99c0, ctx=0x0, in_mont=0x0) at bn_exp.c:417<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Verdana",sans-serif">#2  0x00007ffff79320f0 in fips_bn_mod_exp (r=0x0, a=0x6a9b30, p=0x6a9b30, m=0x6a99c0, ctx=0x0) at bn_exp.c:237<o:p></o:p></span></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="margin-left:5.4pt;border-collapse:collapse">
<tbody>
<tr>
<td width="151" rowspan="7" style="width:113.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal" align="center" style="text-align:center"><span style="font-family:"Verdana",sans-serif;color:#1F497D"><img border="0" width="135" height="87" style="width:1.4083in;height:.9083in" id="Picture_x0020_1" src="cid:image001.png@01D53AF8.081A4F20" alt="cid:image005.png@01D01EBC.D4993640"><o:p></o:p></span></p>
</td>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#802447"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#802447"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:#802447">Amritha Thorath<o:p></o:p></span></b></p>
<p class="MsoNormal"><i><span style="font-size:8.0pt;font-family:"Verdana",sans-serif">Cryptographic Software Developer<o:p></o:p></span></i></p>
</td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt"></td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">O:
</span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif">703-267-6050 x 119<span style="color:black"><o:p></o:p></span></span></p>
</td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt"></td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:black">E:
</span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif"><a href="mailto:athorath@corsec.com">athorath@corsec.com</a><span style="color:black"><o:p></o:p></span></span></p>
</td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:#802447"><a href="http://www.corsec.com/"><span style="color:#802447;text-decoration:none">Website</span></a> |
<a href="http://www.corsec.com/blog/"><span style="color:#802447;text-decoration:none">Blog</span></a> |
<a href="https://www.facebook.com/pages/Corsec/158518584300710"><span style="color:#802447;text-decoration:none">Facebook</span></a> |
<a href="https://twitter.com/CorsecSecurity"><span style="color:#802447;text-decoration:none">Twitter</span></a> |
<a href="https://www.linkedin.com/company/80343"><span style="color:#802447;text-decoration:none">LinkedIn</span></a></span><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:#1F497D"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width="487" valign="top" style="width:365.4pt;padding:0in 5.4pt 0in 5.4pt">
<p class="MsoNormal"><i><span style="font-size:8.0pt;font-family:"Verdana",sans-serif;color:#1F497D">Opening Markets Through Security Certifications<o:p></o:p></span></i></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>