Custom extension revision.
Use the same structure for client and server custom extensions.
Add utility functions in new file t1_ext.c.
Use new utility functions to handle custom server and client extensions
and remove a lot of code duplication.
Reviewed-by: Emilia Käsper <emilia@openssl.org>
(cherry picked from commit ecf4d66090
)
Conflicts:
ssl/ssl_lib.c
ssl/ssl_locl.h
ssl/t1_lib.c
This commit is contained in:
20
ssl/ssl.h
20
ssl/ssl.h
@@ -405,21 +405,21 @@ typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, S
|
||||
* "al" is a TLS "AlertDescription" from 0-255 which WILL be sent as a
|
||||
* fatal TLS alert, if the callback returns zero.
|
||||
*/
|
||||
typedef int (*custom_cli_ext_first_cb_fn)(SSL *s, unsigned short ext_type,
|
||||
|
||||
typedef int (*custom_ext_add_cb)(SSL *s, unsigned short ext_type,
|
||||
const unsigned char **out,
|
||||
unsigned short *outlen, int *al, void *arg);
|
||||
typedef int (*custom_cli_ext_second_cb_fn)(SSL *s, unsigned short ext_type,
|
||||
unsigned short *outlen, int *al,
|
||||
void *arg);
|
||||
|
||||
typedef int (*custom_ext_parse_cb)(SSL *s, unsigned short ext_type,
|
||||
const unsigned char *in,
|
||||
unsigned short inlen, int *al,
|
||||
void *arg);
|
||||
|
||||
typedef int (*custom_srv_ext_first_cb_fn)(SSL *s, unsigned short ext_type,
|
||||
const unsigned char *in,
|
||||
unsigned short inlen, int *al,
|
||||
void *arg);
|
||||
typedef int (*custom_srv_ext_second_cb_fn)(SSL *s, unsigned short ext_type,
|
||||
const unsigned char **out,
|
||||
unsigned short *outlen, int *al, void *arg);
|
||||
typedef custom_ext_add_cb custom_cli_ext_first_cb_fn;
|
||||
typedef custom_ext_parse_cb custom_cli_ext_second_cb_fn;
|
||||
typedef custom_ext_add_cb custom_srv_ext_second_cb_fn;
|
||||
typedef custom_ext_parse_cb custom_srv_ext_first_cb_fn;
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user