anchor.diff:      | _ -> None
   
   let checkServerRenegotiationInfoExtension config (sExtL: serverExtension list) cVerifyData sVerifyData =
  -    if config.safe_renegotiation then
  -        match List.tryPick isServerRenegotiationInfo sExtL with
  -        | None -> false
  -        | Some(x) ->
  -            let (cvd,svd) = x in
  -            equalBytes (cvd @| svd) (cVerifyData @| sVerifyData)
  -    else
  -        true
  +    match List.tryPick isServerRenegotiationInfo sExtL with
  +    | None -> not (config.safe_renegotiation)
  +    | Some(x) ->
  +        let (cvd,svd) = x in
  +        equalBytes (cvd @| svd) (cVerifyData @| sVerifyData)
   
   let isClientResumptionInfo e =
       match e with
  
positive.code:             | Error(x,y) -> Error(x,y)
              | Correct(extL) -> parseClientSCSVs ch_ciphers extL
  
  let prepareClientExtensions cfg (conn:ConnectionInfo) renegoCVD (resumeCVDOpt:cVerifyData option) =
      let res =
          if cfg.safe_renegotiation then
              [CE_renegotiation_info(renegoCVD)]
          else
              []
      if cfg.safe_resumption then
          match resumeCVDOpt with
          | None -> res
          | Some(resumeCVD) -> CE_resumption_info(resumeCVD) :: res
      else
          res
  
  let serverToNegotiatedExtension cExtL (resuming:bool) res sExt : negotiatedExtensions Result=
      match res with
  
negative.code:     | _ -> None
  
  let checkClientResumptionInfoExtension config (cExtL: clientExtension list) cVerifyData =
      match List.tryPick isClientResumptionInfo cExtL with
      | None -> not (config.safe_resumption)
      | Some(payload) -> equalBytes payload cVerifyData
  
  let isServerResumptionInfo e =
      match e with
  