or occurred */
 if (EVP_PKEY_verify_recover_init(ctx) &lt;= 0)
     /* Error */
 if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) &lt;= 0)
     /* Error */
 if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) &lt;= 0)
     /* Error */

 /* Determine buffer length */
 if (EVP_PKEY_verify_recover(ctx, NULL, &amp;routlen, sig, siglen) &lt;= 0)
     /* Error */

 rout = OPENSSL_malloc(routlen);

 if (!rout)
     /* malloc failure */

 if (EVP_PKEY_verify_recover(ctx, rout, &amp;routlen, sig, siglen) &l