Thanks Robin for the valuable information. Now it makes sense :-)

Is there any documentation which talks about this flow?

Regards,
Nadhem



________________________________
From: Robin Seggelmann <[email protected]>
To: [email protected]; N. J. <[email protected]>
Sent: Fri, November 5, 2010 12:26:36 PM
Subject: Re: DTLS routine call Q

Hi Nadhem,

> I am looking at the code of DTLS in openssl-1.0.0a, and in d1_pkt.c, line 412 
> , 
>we have "enc_err = s->method->ssl3_enc->enc(s,0);".
> My Q is:
> Are we calling the routine "int ssl3_enc(SSL *s, int send) ", that start from 
>line 469 in s3_enc.c ?
> If not, which file would the called routine reside in?

If you're using DTLS, it's "int dtls1_enc(SSL *s, int send)" in d1_enc.c.

Here's how to figure out:

- s is an SSL struct, as defined in ssl.h (struct ssl_st)
- s->method is its SSL_METHOD struct, also defined in ssl.h (struct 
ssl_method_st)
- The methods assigned to new SSL objects for DTLS (e.g. with 
SSL_CTX_new(DTLSv1_server_method()) are defined in ssl_locl.h (#define 
IMPLEMENT_dtls1_meth_func...)
- In case of DTLS, the SSL3_ENC_METHOD (defined in ssl_locl.h, struct 
ssl3_enc_method) is set to DTLSv1_enc_data, defined in d1_lib.c
- DTLSv1_enc_data sets the enc function pointer to dtls1_enc, defined in 
d1_enc.c

Regards,
Robin


      

Reply via email to