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
