anchor.diff:  //TODO validation: also get q out using dhparams.Q
   
   (* ------------------------------------------------------------------------ *)
  +//TODO validation: we should make sure dhparams has q set whenever possible. Its faster!!!
   let gen_key (dh : dhparams) : skey * pkey =
       let dhparams = new DHParameters(new BigInteger(1, cbytes dh.p), new BigInteger(1, cbytes dh.g)) in
       let kparams  = new DHKeyGenerationParameters(new SecureRandom(), dhparams) in
  
positive.code: 
      { p = abytes (DerInteger.GetInstance(obj.Item(0)).PositiveValue.ToByteArrayUnsigned()) ;
        g = abytes (DerInteger.GetInstance(obj.Item(1)).PositiveValue.ToByteArrayUnsigned()) }
  
  let load_params_from_file (file : string) : dhparams option =
      let filestream = new FileStream(file, FileMode.Open, FileAccess.Read) in
  
negative.code: lInlgrHXG2tlv4/QNCXmXBQeUBkVM+4EXOl2ZciEvFv2zAlkUig/CUcLGo/OwsJV
  c8o7MMjRcCH7fDi4BIAzdEKdDYB7uEqnGJgn
  -----END DH PARAMETERS-----"
  //TODO validation add q to this blob.
  
  (* ------------------------------------------------------------------------ *)
  let save_params (stream : Stream) (dh : dhparams) =
  