anchor.diff:      let pmsid = pmsId pms
       let si = {si with pmsId = pmsid; pmsData = pmsdata} in
       let log = log @| clientKEXBytes in
  -    let ms =
  -        if hasExtendedMS si.extensions then
  -            CRE.extract_extended si pms log
  -        else
  -            CRE.extract si pms
  +    let ms = extract si pms log in
       (* FIXME: here we should shred pms *)
       let certificateVerifyBytes = getCertificateVerifyBytes si ms cert_req log in
   
  
positive.code:                     let pmsid = pmsId pms
                      let si = {si with pmsId = pmsid; pmsData = pmsdata} in
                      let log = log @| to_log in
                      let ms =
                          if hasExtendedMS si.extensions then
                              CRE.extract_extended si pms log
                          else
                              CRE.extract si pms
                      (* TODO: we should shred the pms *)
                      (* move to new state *)
                      if si.client_auth then
  
negative.code: 
      (* the post of this call is !sx,cy. PP((p,g) /\ DHE.Exp((p,g),x,cy)) /\ DHE.Exp((p,g),sx,sy) -> DHE.Secret((p,g),cy,sy) *)
      (* thus we have Honest(verifyKey(si.server_id)) /\ StrongHS(si) -> DHE.Secret((p,g),cy,sy) *) 
      let ms = extract si pms log in
      (* the post of this call is !p,g,gx,gy. StrongHS(si) /\ DHE.Secret((p,g),gx,gy) -> PRFs.Secret(ms) *)  
      (* thus we have Honest(verifyKey(si.server_id)) /\ StrongHS(si) -> PRFs.Secret(ms) *) 
  
  