lock

[root] / format.nim

557B

raw
type
  Header* = object
    version*: byte
    salt*: array[16, byte]
    nonce*: array[24, byte]

const HDRLEN* = 1 + 16 + 24

proc hdrput*(h: Header, outbuf: ptr byte) =
  var buf = cast[ptr UncheckedArray[byte]](outbuf)
  buf[0] = h.version
  for i in 0..<16:
    buf[1 + i] = h.salt[i]
  for i in 0..<24:
    buf[17 + i] = h.nonce[i]

proc hdrget*(data: ptr byte): Header =
  var buf = cast[ptr UncheckedArray[byte]](data)
  result.version = buf[0]
  for i in 0..<16:
    result.salt[i] = buf[1 + i]
  for i in 0..<24:
    result.nonce[i] = buf[17 + i]