1
0
Fork 0
mirror of synced 2025-09-23 04:08:33 +00:00

fix PR comments

This commit is contained in:
sdeml 2019-01-31 13:29:16 +01:00
parent a7e5477d2b
commit 94f855ede8
31 changed files with 53 additions and 46 deletions

View file

@ -1,5 +1,5 @@
import "./IVconstants.code" as IVconstants
import "./shaRound.code" as sha256
import "./shaRoundNoBoolCheck.code" as sha256
// A function that takes 4 field[256] arrays as inputs
// and applies 2 rounds of sha256 compression.

View file

@ -1,5 +1,5 @@
import "./IVconstants.code" as IVconstants
import "./shaRound.code" as sha256
import "./shaRoundNoBoolCheck.code" as sha256
// A function that takes 6 field[256] arrays as inputs
// and applies 3 rounds of sha256 compression.

View file

@ -1,5 +1,5 @@
import "./IVconstants.code" as IVconstants
import "./shaRound.code" as sha256
import "./shaRoundNoBoolCheck.code" as sha256
// A function that takes 2 field[256] arrays as inputs
// and returns their sha256 compression function as an array of 256 field elements.

View file

@ -1,7 +1,7 @@
import "./1024bit.code" as sha256
// A function that takes 2 field[256] arrays as inputs
// and returns their sha256 compression function as an array of 256 field elements.
// and returns their sha256 full round output as an array of 256 field elements.
def main(field[256] a, field[256] b) -> (field[256]):
// Hash is computed on the full 512bit block size

File diff suppressed because one or more lines are too long

View file

@ -1,8 +0,0 @@
// ANDXORNOTAND
import "./and.code" as AND
import "./xor.code" as XOR
import "./not.code" as NOT
def main(field a, field b, field c) -> (field):
return XOR(AND(a, b), AND(NOT(a), c))

View file

@ -1,4 +0,0 @@
// COPY
def main(field[32] b) -> (field[32]):
return b

View file

@ -3,9 +3,7 @@ def main(field selector, field[256] lhs, field[256] rhs) -> (field[256]):
field[256] out = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for field i in 0..256 do
out[i] = if selector == 0 then lhs[i] else rhs[i] fi
endfor
return out

View file

@ -3,9 +3,7 @@ def main(field selector, field[2] lhs, field[2] rhs) -> (field[2]):
field[2] out = [0, 0]
for field i in 0..2 do
out[i] = if selector == 0 then lhs[i] else rhs[i] fi
endfor
return out

View file

@ -16,7 +16,7 @@ import "../mycode.code"
Also imports further up the file-system are supported:
```zokrates
import "./../../../mycode.code"
import "../../../mycode.code"
```
You can also choose to rename the imported resource, like so:
@ -26,4 +26,5 @@ import "./mycode.code" as abc
### Absolute Imports
Absolute imports don't start with `./` in the path and are used to import components from the ZoKrates standard library. Please check the according [section](./stdlib.html) for more details.
Absolute imports don't start with `./` or `../` in the path and are used to import components from the ZoKrates standard library. Please check the according [section](./stdlib.html) for more details.
`

View file

@ -1,6 +1,6 @@
## Standard library
ZoKrates comes with a number of reusable components which are defined at `./stdlib/` in the ZoKrates root folder. The standard library is solely based on the ZoKrates DSL and can be easily extended.
ZoKrates comes with a number of reusable components which are defined at `./stdlib/` in the ZoKrates root repository. In order to import the standard library as described in the [imports](./imports.html) section the `$ZOKRATES_HOME` environment variable needs to be set to the `stdlib` folder. The standard library is solely based on the ZoKrates DSL and can be easily extended.
The following section highlights a subset of available imports:
@ -33,7 +33,7 @@ A function that takes an array of 4 field elements as inputs, unpacks each of th
### Direct imports
Some components of the standard library can not be efficiently represented in the ZoKrates DSL language. Those functions are injected at compile-time and are available by default.
Some components of the standard library cannot yet be efficiently represented in the ZoKrates DSL language. Those functions are injected at compile-time and are available by default.
#### pack128

View file

@ -13,7 +13,7 @@ Make sure you have followed the instructions in the [Getting Started](gettingsta
We will start this tutorial by using ZoKrates to compute the hash for an arbitrarily chosen preimage, being the number `5` in this example.
First, make sure that the `zokrates` binary is located in the `ZoKrates` directory. Then, we create a new file named `hashexample.code` with the following content:
First, we create a new file named `hashexample.code` with the following content:
```zokrates
{{#include ../../zokrates_cli/examples/book/hashexample.code}}

View file

@ -6,7 +6,6 @@ repository = "https://github.com/JacobEberhardt/ZoKrates.git"
edition = "2018"
[features]
# default = []
default = ["libsnark"]
libsnark = ["zokrates_core/libsnark"]

View file

@ -1,3 +1,20 @@
// Python code used to create test vector:
// import hashlib
// preimage = bytes.fromhex('00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\
// 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05')
// bin(int(preimage.hex(), 16))
// # '0b101'
// digest = hashlib.sha256(preimage).hexdigest()
// # digest = 'c6481e22c5ff4164af680b8cfaa5e8ed3120eeff89c4f307c4a6faaae059ce10'
// int(digest[:32], 16)
// # 263561599766550617289250058199814760685
// int(digest[32:], 16)
// # 65303172752238645975888084098459749904
import "hashes/sha256/512bitPacked.code" as sha256packed
def main() -> (field):

View file

@ -1,4 +1,4 @@
import "merkleTree/sha256PathProof.code" as merkleTreeProof
import "merkleTree/sha256PathProof3.code" as merkleTreeProof
def main() -> (field):
field treeDepth = 3

View file

@ -1,7 +1,7 @@
// ANDXORANDXORAND
import "./xor.code" as XOR
import "./and.code" as AND
import "utils/binary/xor.code" as XOR
import "utils/binary/and.code" as AND
def main(field a, field b, field c) -> (field):
return XOR(XOR(AND(a, b), AND(a, c)), AND(b, c))

View file

@ -0,0 +1,8 @@
// ANDXORNOTAND
import "utils/binary/and.code" as AND
import "utils/binary/xor.code" as XOR
import "utils/binary/not.code" as NOT
def main(field a, field b, field c) -> (field):
return XOR(AND(a, b), AND(NOT(a), c))

View file

@ -1,7 +1,7 @@
// FULLADD
import "./halfadd.code" as HALFADD
import "./or.code" as OR
import "utils/binary/or.code" as OR
def main(field a, field b, field car) -> (field, field):
out1, car1 = HALFADD(a, b)

View file

@ -1,7 +1,7 @@
// HALFADD
import "./xor.code" as XOR
import "./and.code" as AND
import "utils/binary/xor.code" as XOR
import "utils/binary/and.code" as AND
def main(field a, field b) -> (field, field):
return XOR(a, b), AND(a, b)

View file

@ -1,6 +1,6 @@
// AND
import "./../../binary/and.code" as AND
import "utils/binary/and.code" as AND
def main(field[32] b, field[32] c) -> (field[32]):
field[32] result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

View file

@ -1,6 +1,6 @@
// NOT
import "./../../binary/not.code" as NOT
import "utils/binary/not.code" as NOT
def main(field[32] b) -> (field[32]):
field[32] result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

View file

@ -1,6 +1,6 @@
// XOR
import "./../../binary/xor.code" as XOR
import "utils/binary/xor.code" as XOR
def main(field[32] b, field[32] c) -> (field[32]):
field[32] result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

View file

@ -1,6 +1,6 @@
// ADD
import "utils/binary/fulladd.code" as FULLADD
import "../../binary/fulladd.code" as FULLADD
def main(field[32] b, field[32] c) -> (field[32]):
field[33] car = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

View file

@ -1,6 +1,6 @@
// AR17XAR19XAR10
import "utils/bitwise/32/xor.code" as XOR
import "../../bitwise/32/xor.code" as XOR
def RR17(field[32] b) -> (field[32]):
return [b[15], b[16], b[17], b[18], b[19], b[20], b[21], b[22], b[23], b[24], b[25], b[26], b[27], b[28], b[29], b[30], b[31], b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12], b[13], b[14]]

View file

@ -1,6 +1,6 @@
// AR2XAR13XAR22
import "utils/bitwise/32/xor.code" as XOR
import "../../bitwise/32/xor.code" as XOR
def RR2(field[32] b) -> (field[32]):
return [b[30], b[31], b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12], b[13], b[14], b[15], b[16], b[17], b[18], b[19], b[20], b[21], b[22], b[23], b[24], b[25], b[26], b[27], b[28], b[29]]

View file

@ -1,6 +1,6 @@
// AR6XAR11XAR25
import "utils/bitwise/32/xor.code" as XOR
import "../../bitwise/32/xor.code" as XOR
def RR6(field[32] b) -> (field[32]):
return [b[26], b[27], b[28], b[29], b[30], b[31], b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12], b[13], b[14], b[15], b[16], b[17], b[18], b[19], b[20], b[21], b[22], b[23], b[24], b[25]]

View file

@ -1,6 +1,6 @@
// AR7XAR18XAR3
import "utils/bitwise/32/xor.code" as XOR
import "../../bitwise/32/xor.code" as XOR
def RR7(field[32] b) -> (field[32]):
return [b[25], b[26], b[27], b[28], b[29], b[30], b[31], b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10], b[11], b[12], b[13], b[14], b[15], b[16], b[17], b[18], b[19], b[20], b[21], b[22], b[23], b[24]]

View file

@ -2,8 +2,8 @@
import "./ar6xar11xar25.code" as AR6XAR11XAR25
import "./ar2xar13xar22.code" as AR2XAR13XAR22
import "utils/bitwise/32/andxornotand.code" as ANDXORNOTAND
import "utils/bitwise/32/andxorandxorand.code" as ANDXORANDXORAND
import "../../bitwise/32/andxornotand.code" as ANDXORNOTAND
import "../../bitwise/32/andxorandxorand.code" as ANDXORANDXORAND
import "./add.code" as ADD2
def ADD5(field[32] a, field[32] b, field[32] c, field[32] d, field[32] e) -> (field[32]):