Hi Dmitry Belyavsky, Thank you for the inputs. If I understand correctly, the reference indicates loading the private key to engine instance.
My requirement is to call the ENGINE_set_load_privkey_function so that the callback gets called before each RSA private key operation. Reason being, application can use either key with TPM or keys in software. So I need to load the correct key before each operation gets invoked.I was looking at ENGINE_set_load_privkey_function to set the callback.Is this understanding correct ? Please suggest. Thanks Mahendra On Mon, Apr 20, 2020 at 8:43 PM Dmitry Belyavsky <beld...@gmail.com> wrote: > Dear Mahendra, > > Take a look at the load_key function in the apps/apps.c as a referent > example. > > On Mon, Apr 20, 2020 at 2:34 PM Mahendra SP <mahendra...@gmail.com> wrote: > >> Hi All, >> >> While writing the engine implementation for private key encryption and >> decryption, I need to get the private key from external source. >> ENGINE_set_load_privkey_function(e, load_tpm_private_key) >> Above API is success. >> >> RSA structure is as below. >> RSA_METHOD my_rsa_struct = >> { >> "MY RSA method", >> NULL, >> NULL, >> MyRSAPrivEnc, >> MyRSAPrivDec, >> NULL, >> NULL, >> NULL, >> NULL, >> 0, >> NULL, >> NULL, >> NULL, >> NULL >> }; >> >> However, the routine load_tpm_private_key does not get invoked during >> private key encryption and decryption. >> Private key encryption and decryption gets routed to the above overloaded >> routines namely " MyRSAPrivEnc " and " MyRSAPrivDec". But >> load_tpm_private_key never gets invoked. >> >> Is there a flag to force the same ? I have tried it using openssl 1.0.2 >> version. All other engine calls work as expected, but not this one. >> >> I have also tried to debug in ENGINE_load_private_key in eng_pkey.c file. >> I dont see this function getting invoked. In this function, the private key >> callback set above gets invoked. >> >> Please suggest if I am missing something here. >> >> Thanks >> Mahendra >> > > > -- > SY, Dmitry Belyavsky >