val secret_pub : alg->Mirage_crypto_pk.Dh.secret * Z.t
val shared : Mirage_crypto_pk.Dh.secret ->Z.t ->(Z.t, string)Stdlib.result
val ec_secret_pub :
alg->[> `Ed25519 of Mirage_crypto_ec.X25519.secret| `P256 of Mirage_crypto_ec.P256.Dh.secret| `P384 of Mirage_crypto_ec.P384.Dh.secret| `P521 of Mirage_crypto_ec.P521.Dh.secret ]
* Z.t
val ec_shared :
[< `Ed25519 of Mirage_crypto_ec.X25519.secret| `P256 of Mirage_crypto_ec.P256.Dh.secret| `P384 of Mirage_crypto_ec.P384.Dh.secret| `P521 of Mirage_crypto_ec.P521.Dh.secret ]->Z.t ->(Z.t, string)Stdlib.result
val generate : alg->Z.t ->(Z.t * Z.t, string)Stdlib.result