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
>