Re: EVP_MD_CTX and EVP_PKEY_CTX? How to init? How tofree?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I see. I appreciate your willingness to help, but it would've been far better if you answered those very specific and unambiguous questions that I explicitly asked, instead of trying to guess/conjecture what the high level purpose of that whole exercise was. 

As it happens, I've no interest and no need for (other) remote login or virtualization solutions (which have nothing to do with the problem I'm addressing), so I am unable to make use of your answer.

Regards,
Uri

Sent from my iPhone

On Apr 28, 2017, at 18:37, Ryan Murray <rjkmurray40@xxxxxxxxx> wrote:

 

 REMOTE LOGIN PROTOCOLS 

A client/server model can create a mechanism that allows a user to establish a session  on the remote machine and then run its applications. This application is known as  remote login. This can be done by a client/server application program for the desired  service. Two remote login protocols are TELNET and SSH.  TELNET Protocol  TELNET (terminal network) is a TCP/IP standard for establishing a connection to a  remote system. TELNET allows a user to log in to a remote machine across the  Internet by first making a TCP connection and then pass the detail of the application 

 from the user to the remote machine.. You do this to many

 

Sent from Mail for Windows 10

 

From: Blumenthal, Uri - 0553 - MITLL
Sent: Friday, April 28, 2017 4:33 PM
To: openssl-users@xxxxxxxxxxx
Subject: [openssl-users] EVP_MD_CTX and EVP_PKEY_CTX? How to init? How tofree?

 

I’m playing with RSA-PSS signatures, and stumbled upon a few problems. I tried the OpenSSL manual pages, but still coming short of complete understanding. :-)

 

This is how I initialize the contexts (error handlers removed for brevity):

 

      ctx = EVP_PKEY_CTX_new(privkey, NULL);

      md_ctx = EVP_MD_CTX_create();

      const EVP_MD *md = EVP_sha256();

      rv = EVP_DigestInit_ex(md_ctx, md, NULL);

      rv = EVP_DigestSignInit(md_ctx, &ctx, md, NULL, privkey);

 

First question: do I need EVP_DigestInit_ex() there?

 

Second question: do I have to specify hash-function (EVP_MD*) twice? First when initializing EVP_MD_CTX, and second for EVP_DigestSignInit()?

 

At the end I need to dispose of both ctx and md_ctx. That leads to my third question/problem. The code I tried (based on what the man page says: to avoid memory leak, I need to do EVP_MD_CTX_destroy(md_ctx) crashes with SIGV:

 

      EVP_MD_CTX_destroy(md_ctx); // this succeeds

      EVP_PKEY_CTX_free(ctx);  // but here the code crashes

 

Same happens when I reverse the above order:

 

      EVP_PKEY_CTX_free(ctx); // this succeeds

      EVP_MD_CTX_destroy(md_ctx); // but then this one causes crash

 

So what’s the correct way of freeing both of them? Or is it that because they’re sort of “bound together” by EVP_DigestSignInit(md_ctx, &ctx, md, NULL, privkey); freeing one frees the other?

 

Thanks!

— 

Regards,

Uri

 

 

--
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Attachment: smime.p7s
Description: S/MIME cryptographic signature

-- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux