From 7b58b5421716ac263757c62acf32e979be7a1529 Mon Sep 17 00:00:00 2001 From: Victor Dumitrescu Date: Fri, 21 Apr 2023 14:32:52 +0200 Subject: [PATCH 1/3] CI: use hacl-star 0.7.0 --- .gitlab-ci.yml | 2 +- scripts/version.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index be5094e602cb..61e23dbbc905 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,7 @@ variables: # /!\ CI_REGISTRY is overriden to use a private Docker registry mirror in AWS ECR # in GitLab namespaces `nomadic-labs` and `tezos` ## This value MUST be the same as `opam_repository_tag` in `scripts/version.sh` - build_deps_image_version: 7672438422998b9506071b070bb233d2c0840f9d + build_deps_image_version: da2df2ce8692b6167411bdb4ddaf88c14eba4bb1 build_deps_image_name: "${CI_REGISTRY}/tezos/opam-repository" GIT_STRATEGY: fetch GIT_DEPTH: "1" diff --git a/scripts/version.sh b/scripts/version.sh index 3a2758752e1f..9998dc82642a 100755 --- a/scripts/version.sh +++ b/scripts/version.sh @@ -25,7 +25,7 @@ export full_opam_repository_tag=a7495d2d37112169545ae00fb1b4f41a1381edc1 ## opam_repository is an additional, tezos-specific opam repository. ## This value MUST be the same as `build_deps_image_version` in `.gitlab-ci.yml` export opam_repository_url=https://gitlab.com/tezos/opam-repository -export opam_repository_tag="${OPAM_REPOSITORY_TAG:-7672438422998b9506071b070bb233d2c0840f9d}" +export opam_repository_tag="${OPAM_REPOSITORY_TAG:-da2df2ce8692b6167411bdb4ddaf88c14eba4bb1}" export opam_repository_git="$opam_repository_url.git" export opam_repository="$opam_repository_git"\#"$opam_repository_tag" -- GitLab From 5de239bb7146b80e44fc0eeb9c10b53732ab112b Mon Sep 17 00:00:00 2001 From: Victor Dumitrescu Date: Thu, 6 Apr 2023 18:05:15 +0200 Subject: [PATCH 2/3] Manifest: bump hacl-star version to 0.7.0 Also bump hacl-wasm version to 1.3.0 --- manifest/main.ml | 4 ++-- opam/octez-plompiler.opam | 2 +- opam/octez-plonk.opam | 2 +- opam/tezos-hacl.opam | 2 +- opam/virtual/octez-deps.opam | 2 +- package-lock.json | 14 +++++++------- package.json | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/manifest/main.ml b/manifest/main.ml index 7efdf9275748..7052650a4290 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -151,9 +151,9 @@ let fmt_tty = external_sublib fmt "fmt.tty" let hacl_star = external_lib ~js_compatible:true - ~npm_deps:[Npm.make "hacl-wasm" V.(at_least "1.2.0" && less_than "1.3.0")] + ~npm_deps:[Npm.make "hacl-wasm" V.(at_least "1.3.0" && less_than "1.4.0")] "hacl-star" - V.(at_least "0.6.1" && less_than "0.7") + V.(at_least "0.7.0" && less_than "0.8") let hacl_star_raw = external_lib ~js_compatible:true "hacl-star-raw" V.True diff --git a/opam/octez-plompiler.opam b/opam/octez-plompiler.opam index 565878ef5810..d0df5f8c1df2 100644 --- a/opam/octez-plompiler.opam +++ b/opam/octez-plompiler.opam @@ -14,7 +14,7 @@ depends: [ "ppx_deriving" "repr" "stdint" - "hacl-star" { >= "0.6.1" & < "0.7" } + "hacl-star" { >= "0.7.0" & < "0.8" } "octez-bls12-381-hash" "octez-polynomial" "octez-mec" diff --git a/opam/octez-plonk.opam b/opam/octez-plonk.opam index a341407e9fd3..4a7e879c905d 100644 --- a/opam/octez-plonk.opam +++ b/opam/octez-plonk.opam @@ -12,7 +12,7 @@ depends: [ "ocaml" { >= "4.14" } "ppx_repr" { >= "0.6.0" } "repr" - "hacl-star" { >= "0.6.1" & < "0.7" } + "hacl-star" { >= "0.7.0" & < "0.8" } "data-encoding" { >= "0.7.1" & < "1.0.0" } "octez-bls12-381-polynomial" "octez-plompiler" diff --git a/opam/tezos-hacl.opam b/opam/tezos-hacl.opam index 9880b606890e..8696b7582c7a 100644 --- a/opam/tezos-hacl.opam +++ b/opam/tezos-hacl.opam @@ -10,7 +10,7 @@ license: "MIT" depends: [ "dune" { >= "3.0" } "ocaml" { >= "4.14" } - "hacl-star" { >= "0.6.1" & < "0.7" } + "hacl-star" { >= "0.7.0" & < "0.8" } "hacl-star-raw" "ctypes_stubs_js" "ctypes" { >= "0.18.0" } diff --git a/opam/virtual/octez-deps.opam b/opam/virtual/octez-deps.opam index 0666edbaced0..0435d930552d 100644 --- a/opam/virtual/octez-deps.opam +++ b/opam/virtual/octez-deps.opam @@ -36,7 +36,7 @@ depends: [ "eqaf" "ezjsonm" { >= "1.1.0" } "fmt" { >= "0.8.7" } - "hacl-star" { >= "0.6.1" & < "0.7" } + "hacl-star" { >= "0.7.0" & < "0.8" } "hacl-star-raw" "hashcons" "hex" { >= "1.3.0" } diff --git a/package-lock.json b/package-lock.json index 553c376e9f1d..6bb20e15c9b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "dependencies": { "@nomadic-labs/ocaml-bls12-381": ">=6.1.0 <6.2.0", "@nomadic-labs/secp256k1-wasm": ">=0.4.0", - "hacl-wasm": ">=1.2.0 <1.3.0" + "hacl-wasm": ">=1.3.0 <1.4.0" } }, "node_modules/@nomadic-labs/ocaml-bls12-381": { @@ -22,9 +22,9 @@ "integrity": "sha1-Ll5cmCToW/dc1T/gVseEMHR1reY=" }, "node_modules/hacl-wasm": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hacl-wasm/-/hacl-wasm-1.2.0.tgz", - "integrity": "sha512-owsYimZZsDFcmEQ2uOQbRb5saIABgNk/RPG8t4wpe36B+FYPlGYMootllJ2wd1RfvjrkQVywsS/eVXK4fvwFbw==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/hacl-wasm/-/hacl-wasm-1.3.0.tgz", + "integrity": "sha512-JQ0B83LSb6q5Hco+ST/s8zlQxN+fERW8Lt4iGrTCbF5c3p70RjPmE5vRA7Tzw+AZ3zzX+6J9Dwc7iC1vFPRn9A==" } }, "dependencies": { @@ -39,9 +39,9 @@ "integrity": "sha1-Ll5cmCToW/dc1T/gVseEMHR1reY=" }, "hacl-wasm": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hacl-wasm/-/hacl-wasm-1.2.0.tgz", - "integrity": "sha512-owsYimZZsDFcmEQ2uOQbRb5saIABgNk/RPG8t4wpe36B+FYPlGYMootllJ2wd1RfvjrkQVywsS/eVXK4fvwFbw==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/hacl-wasm/-/hacl-wasm-1.3.0.tgz", + "integrity": "sha512-JQ0B83LSb6q5Hco+ST/s8zlQxN+fERW8Lt4iGrTCbF5c3p70RjPmE5vRA7Tzw+AZ3zzX+6J9Dwc7iC1vFPRn9A==" } } } diff --git a/package.json b/package.json index 0106d3dcd5b1..9e64b1fd7f06 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,6 @@ "dependencies": { "@nomadic-labs/ocaml-bls12-381": ">=6.1.0 <6.2.0", "@nomadic-labs/secp256k1-wasm": ">=0.4.0", - "hacl-wasm": ">=1.2.0 <1.3.0" + "hacl-wasm": ">=1.3.0 <1.4.0" } } -- GitLab From 3634079ebd944d98e687ae7787bcc04b269b5988 Mon Sep 17 00:00:00 2001 From: Victor Dumitrescu Date: Fri, 7 Apr 2023 18:16:28 +0200 Subject: [PATCH 3/3] Lib_hacl/js: update to use hacl-wasm 1.3.0 --- src/lib_hacl/evercrypt.js | 6 +- src/lib_hacl/gen/api.json | 524 +++++++++++++++++++++++++++++++++++++- 2 files changed, 515 insertions(+), 15 deletions(-) diff --git a/src/lib_hacl/evercrypt.js b/src/lib_hacl/evercrypt.js index 864596b3b0cc..895a77095e5a 100644 --- a/src/lib_hacl/evercrypt.js +++ b/src/lib_hacl/evercrypt.js @@ -102,16 +102,16 @@ function EverCrypt_HMAC_compute(a, tag, key, key_len, data, data_len) { } } -//Provides: EverCrypt_Hash_hash +//Provides: EverCrypt_Hash_Incremental_hash //Requires: caml_failwith, Hacl_Hash_SHA2_hash_256, Hacl_Hash_SHA2_hash_512, Spec_Hash_Definitions -function EverCrypt_Hash_hash(a, hash, input, input_len) { +function EverCrypt_Hash_Incremental_hash(a, hash, input, input_len) { switch (a) { case Spec_Hash_Definitions.SHA2_256: return Hacl_Hash_SHA2_hash_256(input, input_len, hash); case Spec_Hash_Definitions.SHA2_512: return Hacl_Hash_SHA2_hash_512(input, input_len, hash); default: - caml_failwith("EverCrypt_Hash_hash unimplemented for this algo" + a); + caml_failwith("EverCrypt_Hash_Incremental_hash unimplemented for this algo" + a); } } diff --git a/src/lib_hacl/gen/api.json b/src/lib_hacl/gen/api.json index 34bf85fe8a0c..b18b32151d3e 100644 --- a/src/lib_hacl/gen/api.json +++ b/src/lib_hacl/gen/api.json @@ -647,8 +647,9 @@ }, "SHA3": { "hash_512": { - "module": "Hacl_SHA3", - "name": "sha3_512", + "module": "Hacl_Hash_SHA3", + "custom_module_name": true, + "name": "Hacl_SHA3_sha3_512", "args": [{ "name": "input_len", "kind": "input", @@ -685,8 +686,9 @@ } }, "hash_384": { - "module": "Hacl_SHA3", - "name": "sha3_384", + "module": "Hacl_Hash_SHA3", + "custom_module_name": true, + "name": "Hacl_SHA3_sha3_384", "args": [{ "name": "input_len", "kind": "input", @@ -723,8 +725,9 @@ } }, "hash_256": { - "module": "Hacl_SHA3", - "name": "sha3_256", + "module": "Hacl_Hash_SHA3", + "custom_module_name": true, + "name": "Hacl_SHA3_sha3_256", "args": [{ "name": "input_len", "kind": "input", @@ -761,8 +764,9 @@ } }, "hash_224": { - "module": "Hacl_SHA3", - "name": "sha3_224", + "module": "Hacl_Hash_SHA3", + "custom_module_name": true, + "name": "Hacl_SHA3_sha3_224", "args": [{ "name": "input_len", "kind": "input", @@ -799,7 +803,7 @@ } }, "keccak": { - "module": "Hacl_SHA3", + "module": "Hacl_Hash_SHA3", "name": "Hacl_Impl_SHA3_keccak", "custom_module_name": true, "args": [{ @@ -1206,7 +1210,6 @@ ] } }, - "box_beforenm": { "module": "Hacl_NaCl", "name": "crypto_box_beforenm", @@ -1518,6 +1521,407 @@ } } }, + "K256": { + "ecdsa_sign_hashed_msg": { + "module": "Hacl_K256_ECDSA", + "name": "ecdsa_sign_hashed_msg", + "args": [{ + "name": "signature", + "kind": "output", + "type": "buffer", + "size": 64, + "tests": [ + "241097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e" + ] + }, + { + "name": "msgHash", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 0, + "tests": [ + "4b688df40bcedbe641ddb16ff0a1842d9c67ea1c3bf63f3e0471baa664531d1a" + ] + }, + { + "name": "private_key", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 1, + "tests": [ + "ebb2c082fd7727890a28ac82f6bdf97bad8de9f5d7c9028692de1a255cad3e0f" + ] + }, + { + "name": "nonce", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 2, + "tests": [ + "49a0d7b786ec9cde0d0721d72804befd06571c974b191efb42ecf322ba9ddd9a" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true" + ] + } + }, + "ecdsa_verify_hashed_msg": { + "module": "Hacl_K256_ECDSA", + "name": "ecdsa_verify_hashed_msg", + "args": [{ + "name": "m", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 0, + "tests": [ + "4b688df40bcedbe641ddb16ff0a1842d9c67ea1c3bf63f3e0471baa664531d1a", + "4b688df40bcedbe641ddb16ff0a1842d9c67ea1c3bf63f3e0471baa664531d1a" + ] + }, + { + "name": "public_key", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 1, + "tests": [ + "779dd197a5df977ed2cf6cb31d82d43328b790dc6b3b7d4437a427bd5847dfcde94b724a555b6d017bb7607c3e3281daf5b1699d6ef4124975c9237b917d426f", + "779dd197a5df977ed2cf6cb31d82d43328b790dc6b3b7d4437a427bd5847dfcde94b724a555b6d017bb7607c3e3281daf5b1699d6ef4124975c9237b917d426f" + ] + }, + { + "name": "signature", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 2, + "tests": [ + "241097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e", + "240097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true", + "false" + ] + } + }, + "secp256k1_ecdsa_sign_hashed_msg": { + "module": "Hacl_K256_ECDSA", + "name": "secp256k1_ecdsa_sign_hashed_msg", + "args": [{ + "name": "signature", + "kind": "output", + "type": "buffer", + "size": 64, + "tests": [ + "241097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e" + ] + }, + { + "name": "msgHash", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 0, + "tests": [ + "4b688df40bcedbe641ddb16ff0a1842d9c67ea1c3bf63f3e0471baa664531d1a" + ] + }, + { + "name": "private_key", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 1, + "tests": [ + "ebb2c082fd7727890a28ac82f6bdf97bad8de9f5d7c9028692de1a255cad3e0f" + ] + }, + { + "name": "nonce", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 2, + "tests": [ + "49a0d7b786ec9cde0d0721d72804befd06571c974b191efb42ecf322ba9ddd9a" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true" + ] + } + }, + "secp256k1_ecdsa_verify_hashed_msg": { + "module": "Hacl_K256_ECDSA", + "name": "secp256k1_ecdsa_verify_hashed_msg", + "args": [{ + "name": "m", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 0, + "tests": [ + "4b688df40bcedbe641ddb16ff0a1842d9c67ea1c3bf63f3e0471baa664531d1a", + "4b688df40bcedbe641ddb16ff0a1842d9c67ea1c3bf63f3e0471baa664531d1a" + ] + }, + { + "name": "public_key", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 1, + "tests": [ + "779dd197a5df977ed2cf6cb31d82d43328b790dc6b3b7d4437a427bd5847dfcde94b724a555b6d017bb7607c3e3281daf5b1699d6ef4124975c9237b917d426f", + "779dd197a5df977ed2cf6cb31d82d43328b790dc6b3b7d4437a427bd5847dfcde94b724a555b6d017bb7607c3e3281daf5b1699d6ef4124975c9237b917d426f" + ] + }, + { + "name": "signature", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 2, + "tests": [ + "241097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e", + "240097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true", + "false" + ] + } + }, + "secp256k1_ecdsa_signature_normalize": { + "module": "Hacl_K256_ECDSA", + "name": "secp256k1_ecdsa_signature_normalize", + "args": [{ + "name": "signature", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 0, + "tests": [ + "241097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true" + ] + } + }, + "secp256k1_ecdsa_is_signature_normalized": { + "module": "Hacl_K256_ECDSA", + "name": "secp256k1_ecdsa_is_signature_normalized", + "args": [{ + "name": "signature", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 0, + "tests": [ + "241097efbf8b63bf145c8961dbdf10c310efbb3b2676bbc0f8b08505c9e2f795021006b7838609339e8b415a7f9acb1b661828131aef1ecbc7955dfb01f3ca0e" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true" + ] + } + }, + "uncompressed_to_raw": { + "module": "Hacl_K256_ECDSA", + "name": "public_key_uncompressed_to_raw", + "args": [{ + "name": "pk_raw", + "kind": "output", + "type": "buffer", + "size": 64, + "tests": [ + "0a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae595dc53f8b0efe61e703075bd9b143bac75ec0e19f82a2208caeb32be53414c40" + ] + }, + { + "name": "pk", + "kind": "input", + "type": "buffer", + "size": 65, + "interface_index": 0, + "tests": [ + "040a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae595dc53f8b0efe61e703075bd9b143bac75ec0e19f82a2208caeb32be53414c40" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true" + ] + } + }, + "uncompressed_from_raw": { + "module": "Hacl_K256_ECDSA", + "name": "public_key_uncompressed_from_raw", + "args": [{ + "name": "pk", + "kind": "output", + "type": "buffer", + "size": 65, + "tests": [ + "040a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae595dc53f8b0efe61e703075bd9b143bac75ec0e19f82a2208caeb32be53414c40" + ] + }, + { + "name": "pk_raw", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 0, + "tests": [ + "0a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae595dc53f8b0efe61e703075bd9b143bac75ec0e19f82a2208caeb32be53414c40" + ] + } + ], + "return": { + "type": "void" + } + }, + "compressed_to_raw": { + "module": "Hacl_K256_ECDSA", + "name": "public_key_compressed_to_raw", + "args": [{ + "name": "pk_raw", + "kind": "output", + "type": "buffer", + "size": 64, + "tests": [ + "0a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae595dc53f8b0efe61e703075bd9b143bac75ec0e19f82a2208caeb32be53414c40" + ] + }, + { + "name": "pk", + "kind": "input", + "type": "buffer", + "size": 33, + "interface_index": 0, + "tests": [ + "020a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae5" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true" + ] + } + }, + "compressed_from_raw": { + "module": "Hacl_K256_ECDSA", + "name": "public_key_compressed_from_raw", + "args": [{ + "name": "pk", + "kind": "output", + "type": "buffer", + "size": 33, + "tests": [ + "020a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae5" + ] + }, + { + "name": "pk_raw", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 0, + "tests": [ + "0a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae595dc53f8b0efe61e703075bd9b143bac75ec0e19f82a2208caeb32be53414c40" + ] + } + ], + "return": { + "type": "void" + } + }, + "is_public_key_valid": { + "module": "Hacl_K256_ECDSA", + "name": "is_public_key_valid", + "args": [{ + "name": "pk", + "kind": "input", + "type": "buffer", + "size": 64, + "interface_index": 0, + "tests": [ + "0a629506e1b65cd9d2e0ba9c75df9c4fed0db16dc9625ed14397f0afc836fae595dc53f8b0efe61e703075bd9b143bac75ec0e19f82a2208caeb32be53414c40", + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2cfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true", + "false" + ] + } + }, + "secret_to_public": { + "module": "Hacl_K256_ECDSA", + "name": "secret_to_public", + "args": [{ + "name": "public_key", + "kind": "output", + "type": "buffer", + "size": 64, + "tests": [ + "779dd197a5df977ed2cf6cb31d82d43328b790dc6b3b7d4437a427bd5847dfcde94b724a555b6d017bb7607c3e3281daf5b1699d6ef4124975c9237b917d426f" + ] + }, + { + "name": "private_key", + "kind": "input", + "type": "buffer", + "size": 32, + "interface_index": 0, + "tests": [ + "ebb2c082fd7727890a28ac82f6bdf97bad8de9f5d7c9028692de1a255cad3e0f" + ] + } + ], + "return": { + "type": "bool", + "tests": [ + "true" + ] + } + } + }, "P256": { "ecdsa_sign_without_hash": { "module": "Hacl_P256", @@ -3221,7 +3625,6 @@ "module": "EverCrypt_Hash", "custom_module_name": true, "name": "EverCrypt_Hash_Incremental_hash_len", - "args": [{ "name": "hash_alg", "kind": "input", @@ -3241,7 +3644,8 @@ }, "hash": { "module": "EverCrypt_Hash", - "name": "hash", + "custom_module_name": true, + "name": "EverCrypt_Hash_Incremental_hash", "args": [{ "name": "hash_alg", "kind": "input", @@ -3279,6 +3683,102 @@ "return": { "type": "void" } + }, + "alg_of_state": { + "module": "EverCrypt_Hash", + "custom_module_name": true, + "name": "EverCrypt_Hash_Incremental_alg_of_state", + "args": [{ + "name": "state", + "kind": "input", + "type": "EverCrypt_Hash_Incremental_hash_state", + "interface_index": 0, + "tests": [ + ] + } + ], + "return": { + "type": "uint32", + "tests": [ + ] + } + }, + "create": { + "module": "EverCrypt_Hash", + "custom_module_name": true, + "name": "EverCrypt_Hash_Incremental_create_in", + "args": [{ + "name": "hash_alg", + "kind": "input", + "type": "uint32", + "interface_index": 0, + "tests": [ + ] + } + ], + "return": { + "kind": "layout", + "type": "EverCrypt_Hash_Incremental_hash_state", + "tests": [ + ] + } + }, + "update": { + "module": "EverCrypt_Hash", + "custom_module_name": true, + "name": "EverCrypt_Hash_Incremental_update", + "args": [{ + "name": "state", + "kind": "output", + "type": "EverCrypt_Hash_Incremental_hash_state", + "interface_index": 0, + "tests": [ + ] + },{ + "name": "data", + "kind": "input", + "type": "buffer", + "size": "len", + "interface_index": 1, + "tests": [ + ] + },{ + "name": "len", + "kind": "input", + "type": "uint32" + } + ], + "return": { + "type": "uint32", + "tests": [ + ] + } + }, + "finish": { + "module": "EverCrypt_Hash", + "custom_module_name": true, + "name": "EverCrypt_Hash_Incremental_finish", + "args": [{ + "name": "state", + "kind": "input", + "type": "EverCrypt_Hash_Incremental_hash_state", + "interface_index": 0, + "tests": [ + ] + },{ + "name": "hash", + "kind": "output", + "type": "buffer", + "size": "EverCrypt_Hash.hash_len(EverCrypt_Hash.alg_of_state(state))", + "tests": [ + ] + } + ], + "return": { + "type": "void", + "tests": [ + ] + } } } } -- GitLab