upstream: https://github.com/mirage/mirage-crypto

mirage-crypto-ec: provide Dh.secret_to_octets

+10
+6
ec/mirage_crypto_ec.ml
··· 38 38 type secret 39 39 val secret_of_octets : ?compress:bool -> string -> 40 40 (secret * string, error) result 41 + val secret_to_octets : secret -> string 41 42 val gen_key : ?compress:bool -> ?g:Mirage_crypto_rng.g -> unit -> 42 43 secret * string 43 44 val key_exchange : secret -> string -> (string, error) result ··· 505 506 | Ok p -> Ok (p, share ?compress p) 506 507 | Error _ as e -> e 507 508 509 + let secret_to_octets s = 510 + S.to_octets s 511 + 508 512 let rec generate_private_key ?g () = 509 513 let candidate = Mirage_crypto_rng.generate ?g Param.byte_length in 510 514 match S.of_octets candidate with ··· 952 956 Ok (s, public s) 953 957 else 954 958 Error `Invalid_length 959 + 960 + let secret_to_octets s = s 955 961 956 962 let is_zero = 957 963 let zero = String.make key_len '\000' in
+4
ec/mirage_crypto_ec.mli
··· 38 38 the shared part will be compressed. May result in an error if the buffer 39 39 had an invalid length or was not in bounds. *) 40 40 41 + val secret_to_octets : secret -> string 42 + (** [secret_to_octets secret] encodes the provided secret into a freshly 43 + allocated buffer. *) 44 + 41 45 val gen_key : ?compress:bool -> ?g:Mirage_crypto_rng.g -> unit -> 42 46 secret * string 43 47 (** [gen_key ~compress ~g ()] generates a private and a public key for