sig type parameters = { p : string; g : string; privlen : int; } val new_parameters :
?rng:Cryptokit.Random.rng ->
?privlen:int -> int ->Cryptokit.DH.parameters type private_secret val private_secret :
?rng:Cryptokit.Random.rng -> Cryptokit.DH.parameters ->Cryptokit.DH.private_secret val message : Cryptokit.DH.parameters ->Cryptokit.DH.private_secret -> string val shared_secret : Cryptokit.DH.parameters -> Cryptokit.DH.private_secret -> string -> string val derive_key : ?diversification:string -> string -> int -> string