package mlkem
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Pure OCaml implementation of FIPS 203 ML-KEM
Install
dune-project
Dependency
Authors
Maintainers
Sources
v0.2.1.tar.gz
md5=cf10e50c23d778f822261222212229b8
sha512=3bd8ce7b420c82ddfaaaa173966be892ccfd7a50664c3db91c4e0b797942d2fdcabe6e240f400688ac19824290f9a0ee531db0e1e5782a6f04e745d1b6a2973c
doc/src/mlkem.for_testing/mlkem_for_testing.ml.html
Source file mlkem_for_testing.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44module M512 = Mlkem__Mlkem_engine.Mlkem512 module M768 = Mlkem__Mlkem_engine.Mlkem768 module M1024 = Mlkem__Mlkem_engine.Mlkem1024 module type ENGINE = Mlkem__Mlkem_engine.S let sha3_256 = Mlkem__Keccak.sha3_256 let sha3_512 = Mlkem__Keccak.sha3_512 let shake128 = Mlkem__Keccak.shake128 let shake256 = Mlkem__Keccak.shake256 let ct_equal = M768.ct_equal_for_testing let keygen (module M : ENGINE) ~d ~z = match M.keygen_internal ~d ~z with | Error _ as e -> e | Ok dk -> let ek = M.encapsulation_key_of_decapsulation_key dk in Ok (M.decapsulation_key_to_expanded dk, M.encapsulation_key_to_octets ek) let encapsulate (module M : ENGINE) ~encapsulation_key ~randomness = match M.encapsulation_key_of_octets encapsulation_key with | Error _ as e -> e | Ok ek -> match M.encapsulate_internal ek ~randomness with | Error _ as e -> e | Ok (ct, ss) -> Ok (M.ciphertext_to_octets ct, M.shared_secret_to_octets ss) let decapsulate (module M : ENGINE) ~expanded_decapsulation_key ~ciphertext = match M.decapsulation_key_of_expanded expanded_decapsulation_key with | Error _ as e -> e | Ok dk -> match M.ciphertext_of_octets ciphertext with | Error _ as e -> e | Ok ct -> Ok (M.shared_secret_to_octets (M.decapsulate dk ct)) let keygen_512 = keygen (module M512) let encapsulate_512 = encapsulate (module M512) let decapsulate_512 = decapsulate (module M512) let keygen_768 = keygen (module M768) let encapsulate_768 = encapsulate (module M768) let decapsulate_768 = decapsulate (module M768) let keygen_1024 = keygen (module M1024) let encapsulate_1024 = encapsulate (module M1024) let decapsulate_1024 = decapsulate (module M1024)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>