anchor.diff:              | None ->
                   (* We sent an empty Certificate message, so no certificate verify message at all *)
                   [||]
  -            | Some(certList,algs,skey) ->
  +            | Some(x) -> 
  +                let (certList,algs,skey) = x in
                   makeCertificateVerifyBytes si ms algs skey log
           else
               (* No client certificate ==> no certificateVerify message *)
  
positive.code:     else
      match Cert.for_signing certAlgs state.poptions.server_name keyAlgs with
      | None -> Error(AD_internal_error, perror __SOURCE_FILE__ __LINE__ "Could not find in the store a certificate for the negotiated ciphersuite")
      | Some(c,alg,sk) ->
          (* set server identity in the session info *)
          let si = {si with serverID = c} in
          let certificateB = serverCertificateBytes c in
  
negative.code:     correct (state,si,ms,log)
  
  let prepare_client_output_full_DHE (ci:ConnectionInfo) state (si:SessionInfo) cert_req p g sy log =
  #if avoid
      failwith "does not typecheck"
  #else
      (* pre: Honest(verifyKey(si.server_id)) /\ StrongHS(si) -> DHE.PP((p,g)) /\ ServerDHE((p,g),sy,si.init_crand @| si.init_srand) *)
      (* moreover, by definition ServerDHE((p,g),sy,si.init_crand @| si.init_srand) implies ?sx.DHE.Exp((p,g),sx,sy) *)
      (*$ formally, the need for signing nonces is unclear *)
  