Move compress() into its own module

This commit is contained in:
Mark Spanbroek 2023-11-13 11:57:55 +01:00 committed by markspanbroek
parent 457b8623be
commit 6fddd3e39e
2 changed files with 12 additions and 8 deletions

View File

@ -5,22 +5,16 @@ import poseidon2/types
import poseidon2/permutation
import poseidon2/io
import poseidon2/sponge
import poseidon2/compress
export sponge
export compress
export toBytes
export elements
export types
#-------------------------------------------------------------------------------
# 2-to-1 compression
func compress*(a, b : F) : F =
var x = a
var y = b
var z : F ; setZero(z)
permInplace(x, y, z)
return x
func merkleRoot*(xs: openArray[F]) : F =
let a = low(xs)
let b = high(xs)

10
poseidon2/compress.nim Normal file
View File

@ -0,0 +1,10 @@
import ./types
import ./permutation
# 2-to-1 compression
func compress*(a, b : F) : F =
var x = a
var y = b
var z : F = zero
permInplace(x, y, z)
return x