mac_int() does not call HMAC_CTX_init()

Robert Dugal rdugal at certicom.com
Wed Sep 7 00:36:51 EST 2011


Last year I sent the email below describing a bug in openssh 5.6p1.
I just noticed this bug still exists in 5.9p1.

Probably my earlier email was treated as spam because it was in HTML format. 


-- 
Robert Dugal	Team Lead SSL & PKI Group
Certicom Corp.	A Subsidiary of Research In Motion
                  4701 Tahoe Blvd., Building A
                  Mississauga, ON
                  L4W 0B5
 
rdugal at certicom.com
direct       	+1.289.261.4148
mobile      	+1.416.276.8062
main         	+1.905.507.4220
fax             	+1.905.507.4230
www.certicom.com





From: Robert Dugal 
Sent: Wednesday, September 29, 2010 1:02 PM
To: openssh-unix-dev at mindrot.org
Subject: bug in openssh - mac_int() does not call HMAC_CTX_init()

I have been doing some work with OpenSSH 5.6p1, attempting to use an alternative engine for crypto.
In mac.c, the function mac_init() calls HMAC_Init() without previously having called HMAC_CTX_init().
However, OpenSSL documentation states that HMAC_CTX_init() is mandatory.

http://www.openssl.org/docs/crypto/hmac.html

HMAC_CTX_init() initialises a HMAC_CTX before first use. It must be called. 
HMAC_CTX_init() must have been called before the first use of an HMAC_CTX in this function. N.B. HMAC_Init() had this undocumented behaviour in previous versions of OpenSSL - failure to switch to HMAC_Init_ex() in programs that expect it will cause them to stop working

While this appears to cause no issues with OpenSSH 5.6p1 using OpenSSL 1.0.0a and the default crypto engine,
it may cause problems (such as segfaults in my case) when attempting to use an alternative engine.
-- 
Robert Dugal                        Senior Software Developer
Certicom Corp.                      A Subsidiary of Research In Motion 
rdugal at certicom.com
direct        905.501.3848
fax             905.507.4230
www.certicom.com


---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.


More information about the openssh-unix-dev mailing list