Skip to content

Commit

Permalink
add: endianness option to scalar serde for Banderwagon (#342)
Browse files Browse the repository at this point in the history
* add: endianness option to scalar serde

* comment

* doc and fixes

* fix comment

* bin file rm
  • Loading branch information
agnxsh authored Jan 16, 2024
1 parent 1edbc23 commit c4be82d
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions constantine/serialization/codecs_banderwagon.nim
Original file line number Diff line number Diff line change
Expand Up @@ -131,18 +131,21 @@ func deserialize*(dst: var EC_Prj, src: array[32, byte]): CttCodecEccStatus =
##
## ############################################################
##
func serialize_scalar*(dst: var array[32, byte], scalar: matchingOrderBigInt(Banderwagon)): CttCodecScalarStatus =
func serialize_scalar*(dst: var array[32, byte], scalar: matchingOrderBigInt(Banderwagon), order: static Endianness = bigEndian): CttCodecScalarStatus =
## Adding an optional Endianness param default at BigEndian
## Serialize a scalar
## Returns cttCodecScalar_Success if successful
dst.marshal(scalar, bigEndian)
dst.marshal(scalar, order)
return cttCodecScalar_Success

## ############################################################
##
## Banderwagon Scalar Deserialization
##
## ############################################################
##
func deserialize_scalar*(dst: var matchingOrderBigInt(Banderwagon), src: array[32, byte]): CttCodecScalarStatus =
func deserialize_scalar*(dst: var matchingOrderBigInt(Banderwagon), src: array[32, byte], order: static Endianness = bigEndian): CttCodecScalarStatus =
## Adding an optional Endianness param default at BigEndian
## Deserialize a scalar
## Also validates the scalar range
##
Expand All @@ -151,7 +154,7 @@ func deserialize_scalar*(dst: var matchingOrderBigInt(Banderwagon), src: array[3
##
## This special-cases (and leaks) 0 scalar as this is a special-case in most protocols
## or completely invalid (for secret keys).
dst.unmarshal(src, bigEndian)
dst.unmarshal(src, order)
let status = validate_scalar(dst)
if status != cttCodecScalar_Success:
dst.setZero()
Expand Down

0 comments on commit c4be82d

Please sign in to comment.