anchor.diff:         We need to understand how to treat certificates and related algorithms properly *)
       correct(true)
   
  +// FIXME: This is outdated by the new state machine
  +(*
   let compute_session_secrets_and_CCSs ci state =
       // FIXME: we create the next connection here, but then we don't use it and we release it
       // asynchronously to the Dispatch. The latter will locally re-create the next connection
  
positive.code:   let siv = Array.sub key_block (2*hsize+2*ksize+ivsize) ivsize in
    (cmk,smk,cek,sek,civ,siv)
  *)
  
  let generateStates (ci:ConnectionInfo) (ms:masterSecret) =
      let key_block = prfKeyExp ci ms in
      let (cWrite,sWrite) = splitStates ci key_block in
      match ci.role with 
          | Client -> cWrite,sWrite
          | Server -> sWrite,cWrite
  
  (* Obsolete. Use PRFs.prfVerifyData instead *)
  (*
  
negative.code:         let ((rg,frag),dRem),(f,rem) = makeFragment ci.id_out d in
          let state = {state with hs_outgoing = rem} in
          (OutSome(rg,frag,state))
  *)
  
  type incoming = (* the fragment is accepted, and... *)
    | InAck of hs_state
  