Question about EVP API interaction
Matt Caswell
matt at openssl.org
Fri Nov 10 17:07:09 UTC 2023
On 10/11/2023 16:05, Juan di Mauro wrote:
> Dear all,
>
> I'm coding an external provider for OpenSSL to incorporate a KEM
> algorithm (the provider will be compiled as a .so as usual). I have the
> KEM part of the code
> and the Key management module (the OSSL_ALGORITHM dispatch tables and so
> on, corresponding to the OSSL_OP_KEM and OSSL_OP_KEYMGMT query types).
>
> However, I have problems making things interact ok. It's clear that
> I do not fully understand the way the API should work in this case so my
> first question is: Is there a complete documented guide about that?
>
> Secondly, to state things clearly: I want to make key encapsulation and
> I'm following this sequence of API calls to interact with my provider:
>
>
> EVP_PKEY_CTX *ctx;
> ctx = EVP_PKEY_CTX_new_from_name(libctx,<Name of my Keymgmt
> algorithm>,NULL);
> if (!ctx){
> printf("The context can't be created. Exiting\n");
> return -1;
> }
> //generate the key
> EVP_PKEY *key = NULL;
> EVP_PKEY_keygen_init(ctx);
> EVP_PKEY_keygen(ctx, &key);
> // Here, since the pkey in context is NULL, fails
> int res_encaps_init = EVP_PKEY_encapsulate_init(ctx,NULL);
Since you are starting a new operation here you should probably use a
new pkey ctx created via EVP_PKEY_CTX_new_from_pkey() rather than trying
to reuse the old one.
Matt
>
>
> So, maybe the sequence of steps is wrong or my code doesn't satisfy the
> API requirements.
>
> Thanks in advance,
>
> /LEGAL NOTICE: The content of this email message, including the attached
> files, is confidential and is protected by article 18.3 of the Spanish
> Constitution, which guarantees the secrecy of communications. If you
> receive this message in error, please contact the sender to inform them
> of this fact, and do not broadcast its content or make copies./
> /*** This message has been verified with removal tools for viruses and
> malicious content ***/
> /This legal notice has been automatically incorporated into the message./
> /---------------------------------------------/
> /AVISO LEGAL: El contenido de este mensaje de correo electrónico,
> incluidos los ficheros adjuntos, es confidencial y está protegido por el
> artículo 18.3 de la Constitución Española, que garantiza el secreto de
> las comunicaciones. Si usted recibe este mensaje por error, por favor
> póngase en contacto con el remitente para informarle de este hecho, y no
> difunda su contenido ni haga copias.
> /
> /*** Este mensaje ha sido verificado con herramientas de eliminación de
> virus y contenido malicioso ***/
> /Este aviso legal ha sido incorporado automáticamente al mensaje./
More information about the openssl-users
mailing list