mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-02-26 16:33:13 +00:00
parametrize sectorsblock and querylen
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
parent
b08901c73c
commit
0c5a581c5a
@ -80,9 +80,7 @@ import blscurve
|
||||
import blscurve/blst/blst_abi
|
||||
import ../rng
|
||||
|
||||
const sectorsperblock = 1024.int64
|
||||
const bytespersector = 31 # r is 255 bits long
|
||||
const querylen = 22
|
||||
|
||||
type ZChar = array[bytespersector, byte]
|
||||
|
||||
@ -214,9 +212,8 @@ proc generateAuthenticator(i: int64, s: int64, t: TauZero, ubase: openArray[blst
|
||||
# doAssert(a.blst_p1_is_equal(b).bool)
|
||||
return b
|
||||
|
||||
proc st*(ssk: SecretKey, filename: string): (Tau, seq[blst_p1]) =
|
||||
proc setup*(ssk: SecretKey, s:int64, filename: string): (Tau, seq[blst_p1]) =
|
||||
let file = open(filename)
|
||||
let s = sectorsperblock
|
||||
let n = split(file, s)
|
||||
var t = TauZero(n: n)
|
||||
|
||||
@ -249,7 +246,7 @@ type QElement = object
|
||||
proc generateQuery*(
|
||||
tau: Tau,
|
||||
spk: PublicKey,
|
||||
l: int = querylen # query elements
|
||||
l: int # query elements
|
||||
): seq[QElement] =
|
||||
# verify signature on Tau
|
||||
|
||||
@ -261,9 +258,8 @@ proc generateQuery*(
|
||||
q.V = rndScalar() #TODO: fix range
|
||||
result.add(q)
|
||||
|
||||
proc generateProof*(q: openArray[QElement], authenticators: openArray[blst_p1], spk: PublicKey, filename: string): (seq[blst_scalar], blst_p1) =
|
||||
proc generateProof*(q: openArray[QElement], authenticators: openArray[blst_p1], spk: PublicKey, s: int64, filename: string): (seq[blst_scalar], blst_p1) =
|
||||
let file = open(filename)
|
||||
let s = sectorsperblock
|
||||
|
||||
var mu: seq[blst_scalar]
|
||||
for j in 0 ..< s :
|
||||
|
||||
@ -11,20 +11,23 @@ import bls
|
||||
import benchmark
|
||||
import strutils
|
||||
|
||||
const sectorsperblock = 1024.int64
|
||||
const querylen = 22
|
||||
|
||||
proc testbls() : bool =
|
||||
benchmark "Key generation":
|
||||
let (spk, ssk) = bls.keygen()
|
||||
|
||||
benchmark "Auth generation":
|
||||
let (tau, authenticators) = bls.st(ssk, "example.txt")
|
||||
let (tau, authenticators) = bls.setup(ssk, sectorsperblock, "example.txt")
|
||||
#echo "Auth: ", authenticators
|
||||
|
||||
benchmark "Generating challenge...":
|
||||
let q = bls.generateQuery(tau, spk)
|
||||
let q = bls.generateQuery(tau, spk, querylen)
|
||||
#echo "Generated!" #, " q:", q
|
||||
|
||||
benchmark "Issuing proof...":
|
||||
let (mu, sigma) = bls.generateProof(q, authenticators, spk, "example.txt")
|
||||
let (mu, sigma) = bls.generateProof(q, authenticators, spk, sectorsperblock, "example.txt")
|
||||
#echo "Issued!" #, " mu:", mu, " sigma:", sigma
|
||||
|
||||
benchmark "Verifying proof...":
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user