<div dir="ltr"><div>Hi,</div><div><br></div><div>I'm trying to change the ssh-rsa.c to be fips compliant. So, after some investigation I added the following code to to ssh_rsa_sign function to make it fips compliant.</div><div><br></div><div>==========================================================================</div><div><span class="" style="white-space:pre">      </span>signing_key = EVP_PKEY_new();</div><div><span class="" style="white-space:pre">      </span>EVP_PKEY_assign_RSA(signing_key, key->rsa);</div><div><br></div><div><span class="" style="white-space:pre">    </span>ctx = EVP_PKEY_CTX_new(signing_key, NULL /* no engine */);</div><div><span class="" style="white-space:pre"> </span>EVP_PKEY_sign_init(ctx);</div><div><span class="" style="white-space:pre">   </span>EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING);</div><div><span class="" style="white-space:pre">      </span>EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256());</div><div><span class="" style="white-space:pre">  </span>EVP_PKEY_sign(ctx, sig, &slen, digest, sizeof(digest));</div><div>============================================================================</div><div><br></div><div>I also, tried changing  the code to be as follows: </div><div>=========================================================================</div><div>+</div><div>+<span class="" style="white-space:pre">       </span>EVP_MD_CTX_init(&mctx);</div><div>+<span class="" style="white-space:pre">       </span>EVP_SignInit_ex(&mctx, EVP_sha256 (), NULL);</div><div>+<span class="" style="white-space:pre">  </span>EVP_SignUpdate(&mctx, data, datalen);</div><div> </div><div> <span class="" style="white-space:pre">       </span>slen = RSA_size(key->rsa);</div><div> <span class="" style="white-space:pre">    </span>sig = xmalloc(slen);</div><div> </div><div>-<span class="" style="white-space:pre">     </span>ok = RSA_sign(nid, digest, dlen, sig, &len, key->rsa);</div><div>+<span class="" style="white-space:pre">     </span>EVP_SignFinal(&mctx, sig, &len, pkey);</div><div>===========================================================================</div><div><br></div><div>But, unfortunately both these approaches end with the following error message.</div><div>"error:0408E09E:rsa routines:PKEY_RSA_SIGN:operation not allowed in fips mode."</div><div><br></div><div>It would be much appreciated if anyone can let me know why I'm hitting this, and if there is any way of getting around it.</div><div><br></div><div>Thanks,</div><div>Mahoda</div></div>