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

Merge pull request #244 from hannesm/ecdh-secret-to-octets

mirage-crypto-ec: provide Dh.secret_to_octets

authored by

Hannes Mehnert and committed by
GitHub
5c4bdb6d 56906c0b

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