From:                   "Kenneth R. Robinette" <[EMAIL PROTECTED]>
Organization:           InterSoft International, Inc.
To:                     [EMAIL PROTECTED]
Date sent:              Mon, 25 Mar 2002 14:32:17 -0600
Subject:                OpenSSL 0.9.7 SNAP
Send reply to:          [EMAIL PROTECTED]

In a followup to my posting yesterday, I have tested the following 
code to replace lines 2050-2079 within kssl.c

This was tested with a Redhat 6.0 system, using SRP-1.7.5 and a 
Windows based SSL client.

        if (!EVP_CipherInit(&ciph_ctx,enc,kssl_ctx->key,iv,0))
                {
                kssl_err_set(kssl_err, SSL_R_KRB5_S_INIT,
                        "EVP_DecryptInit_ex error decrypting 
authenticator.\n");
                krb5rc = KRB5KRB_AP_ERR_BAD_INTEGRITY;
                goto err;
                }
        outl = dec_authent->cipher->length;
        if (!EVP_Cipher(&ciph_ctx,unenc_authent,dec_authent->cipher-
>data,outl))
                {
                kssl_err_set(kssl_err, SSL_R_KRB5_S_INIT,
                        "EVP_Cipher error decrypting 
authenticator.\n");
                krb5rc = KRB5KRB_AP_ERR_BAD_INTEGRITY;
                goto err;
                }

Ken



In the 0.9.7 SNAPS, kssl.c, located in the ssl directory has a 
problem on the EVP_DecryptFinal_ex fuction.

The kerberos ticket that is being decryped in lines 2050-2078 was 
encrypted by Kerberos itself, not by OpenSSL.  It would appear that 
the Kerberos padding logic is NOT the same as the current OpenSSL EVP 

padding logic.

In my test case, the kerberos ticket to be decrypted has a length of 
112 bytes, which is a multiple of the DES blocksize.  There is no 
padding on the encrypted data.  OpenSSL expects padding, in this case 

8 bytes, which of course is not present.  The call to 
EVP_DecryptUpdate returns an outl value of 104, then the call to 
EVP_DecryptFinal_Ex fails because of the lack of padding.  If you 
dump the contents of the buffer decrypted by the EVP_DecryptUpdate 
call, the data is correct.  In fact you can comment out the 
EVP_DecryptFinal_ex call, adjust outl to 112 bytes, and everything 
else works as it should  However commenting out the 
EVP_DecryptFinal_ex call will prevent the proper cleanup of the 
structures involved.

Perhaps it would be better to use Kerbers 5 to decrypt the ticket, or 

lower level OpenSSL calls. 

I attempted to use the optional set padding call, but without 
success.

Ken
 __________________________________________________
Support
InterSoft International, Inc.
Voice: 888-823-1541, International 281-398-7060
Fax: 888-823-1542, International 281-560-9170
[EMAIL PROTECTED]
http://www.securenetterm.com

______________________________________________________________________
OpenSSL Project                                 
http://www.openssl.org
Development Mailing List                       openssl-
[EMAIL PROTECTED]
Automated List Manager                           
[EMAIL PROTECTED]
_
Support
InterSoft International, Inc.
Voice: 888-823-1541, International 281-398-7060
Fax: 888-823-1542, International 281-560-9170
[EMAIL PROTECTED]
http://www.securenetterm.com

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to