initial commit - bench sig aggregation

This commit is contained in:
mratsim 2018-10-27 15:00:14 +02:00
parent 38d139f32d
commit 64314c947f
1 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,36 @@
import
./bench_common,
../src/scheme1,
nimcrypto, endians
func attestation_signed_data(
fork_version: int,
slot: int64,
shard_id: int16,
parent_hashes: seq[array[32, byte]],
shard_block_hash: array[32, byte],
justified_slot: int64
): MDigest[256]=
var ctx: blake2_512
ctx.init()
var be_slot: array[8, byte]
bigEndian64(be_slot[0].addr, slot.unsafeAddr)
ctx.update be_slot
let size_p_hashes = uint parent_hashes.len * sizeof(array[32, byte])
ctx.update(cast[ptr byte](parent_hashes[0].unsafeAddr), size_p_hashes)
var be_shard_id: array[2, byte]
bigEndian16(be_shard_id.addr, shard_id.unsafeAddr)
ctx.update be_shard_id
ctx.update shard_block_hash
var be_justified_slot: array[8, byte]
bigEndian64(be_justified_slot[0].addr, justified_slot.unsafeAddr)
ctx.update be_justified_slot
result.data[0 ..< 32] = ctx.finish().data.toOpenArray(0, 31)
ctx.clear()