From e9ad224752d543bfda9cdb41227701676ed761a2 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sun, 8 Oct 2017 00:03:21 -0500 Subject: [PATCH] libssl: Fix SSL struct again. int main() { SSL *ssl; printf("sizeof SSL %lu\n", sizeof(SSL)); printf("SSL_MAX_SID_CTX_LENGTH %d\n", SSL_MAX_SID_CTX_LENGTH); printf("offsetof generate_session_id %ld\n", offsetof(struct ssl_st, generate_session_id)); printf("offsetof mac_flags %ld\n", offsetof(struct ssl_st, mac_flags)); printf("offsetof write_hash %ld\n", offsetof(struct ssl_st, write_hash)); printf("offsetof session %ld\n", offsetof(struct ssl_st, session)); printf("offsetof error_code %ld\n", offsetof(struct ssl_st, error_code)); printf("offsetof debug %ld\n", offsetof(struct ssl_st, debug)); printf("offsetof verify_callback %ld\n", offsetof(struct ssl_st, verify_callback)); printf("offsetof ctx %ld\n", offsetof(struct ssl_st, ctx)); printf("offsetof ex_data %ld\n", offsetof(struct ssl_st, ex_data)); printf("offsetof first_packet %ld\n", offsetof(struct ssl_st, first_packet)); printf("offsetof verify_result %ld\n", offsetof(struct ssl_st, verify_result)); printf("offsetof client_CA %ld\n", offsetof(struct ssl_st, client_CA)); printf("offsetof references %ld\n", offsetof(struct ssl_st, references)); printf("offsetof tlsext_status_type %ld\n", offsetof(struct ssl_st, tlsext_status_type)); printf("offsetof tlsext_ocsp_resplen %ld\n", offsetof(struct ssl_st, tlsext_ocsp_resplen)); printf("offsetof tlsext_ecpointformatlist %ld\n", offsetof(struct ssl_st, tlsext_ecpointformatlist)); printf("offsetof tls_session_ticket_ext_cb_arg %ld\n", offsetof(struct ssl_st, tls_session_ticket_ext_cb_arg)); printf("offsetof next_proto_negotiated %ld\n", offsetof(struct ssl_st, next_proto_negotiated)); printf("offsetof alpn_client_proto_list_len %ld\n", offsetof(struct ssl_st, alpn_client_proto_list_len)); printf("offsetof srp_ctx %ld\n", offsetof(struct ssl_st, srp_ctx)); return 0; } clang ssl.c -I /usr/local/opt/openssl/include && ./a.out --- basis/openssl/libssl/libssl.factor | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/basis/openssl/libssl/libssl.factor b/basis/openssl/libssl/libssl.factor index 49861f3083..0f7251ca6a 100644 --- a/basis/openssl/libssl/libssl.factor +++ b/basis/openssl/libssl/libssl.factor @@ -355,6 +355,8 @@ STRUCT: SRP_CTX { strength int } { srp_Mask ulong } ; +CONSTANT: SSL_MAX_SID_CTX_LENGTH 32 + STRUCT: SSL { version int } { type int } @@ -396,7 +398,7 @@ STRUCT: SSL { compress void* } { cert void* } { sid_ctx_length uint } - { sid_ctx void* } + { sid_ctx char[SSL_MAX_SID_CTX_LENGTH] } { session SSL_SESSION* } { generate_session_id void* } { verify_mode int } @@ -404,13 +406,14 @@ STRUCT: SSL { info_callback void* } { error int } { error_code int } - { kssl_ctx void* } + ! { kssl_ctx void* } { psk_client_callback void* } { psk_server_callback void* } { ctx SSL_CTX* } { debug int } { verify_result long } { ex_data CRYPTO_EX_DATA } + { client_CA void*[2] } { references int } { options ulong } { mode ulong } @@ -424,6 +427,7 @@ STRUCT: SSL { servername_done int } { tlsext_status_type int } { tlsext_status_expected int } + { tlsext_ocsp_ids void* } { tlsext_ocsp_exts X509_EXTENSION* } ! X509_EXTENSIONS { tlsext_ocsp_resp uchar* } { tlsext_ocsp_resplen int } @@ -442,12 +446,15 @@ STRUCT: SSL { initial_ctx SSL_CTX* } { next_proto_negotiated uchar* } { next_proto_negotiated_len uchar } + { srtp_profiles void* } { srtp_profile SRTP_PROTECTION_PROFILE* } { tlsext_heartbeat uint } { tlsext_hb_pending uint } { tlsext_hb_seq uint } { renegotiate int } - { srp_ctx SRP_CTX } ; + { srp_ctx SRP_CTX } + { alpn_client_proto_list char* } + { alpn_client_proto_list_len uint } ; ! ------------------------------------------------------------------------------ ! API >= 1.1.0