Fix saw for multiple certificate change
@@ -32,10 +32,8 @@ let conn_config pconn = crucible_field pconn "config";
//conn->config -> client_cert_auth_type
let config_cca_type config = (crucible_field config "client_cert_auth_type");
-//let cert_key_pairs config = (crucible_elem config 1);
-let cert_key_pairs config = (crucible_field config "cert_and_key_pairs");
-
-//conn->config->cert_and_key_pairs->ocsp_status.size
+//conn->config->cert_and_key_pairs->ocsp_status.size FROM
+//conn->handshake_params.chain_and_key->ocsp_status.size TO
let ocsp_status_size cert_and_key =
crucible_field (crucible_field (cert_and_key) "ocsp_status") "size";
@@ -59,6 +57,10 @@ let conn_handshake_handshake_type pconn =
let conn_handshake_message_number pconn =
crucible_field (crucible_field pconn "handshake") "message_number";
+//conn->handshake_params.chain_and_key
+let conn_chain_and_key pconn =
+ crucible_field (crucible_field pconn "handshake_params") "chain_and_key";
+
// Ghost state that represents the number of times the connection write socket
// has been corked/uncorked.
corked <- crucible_declare_ghost_state "corked";
@@ -108,7 +110,7 @@ let setup_connection = do {
crucible_points_to (config_cca_type config) (crucible_term config_cca);
cak <- crucible_alloc (llvm_struct "struct.s2n_cert_chain_and_key");
- crucible_points_to (cert_key_pairs config) cak;
+ crucible_points_to (conn_chain_and_key pconn) cak;
status_size <- crucible_fresh_var "status_size" (llvm_int 32);
crucible_points_to (ocsp_status_size cak) (crucible_term status_size);
