def gcm_mask_bytes_valid

qasim-bend-kit@0.1.0.2 · libs/AES256GCMCore.bend:264

import qasim-bend-kit@0.1.0.2/libs/AES256GCMCore.bend as AES256GCMCore
import Base

264def gcm_mask_bytes_valid(+bytes: List<&2, U32>) ->
265    {gcm_bytes_valid(gcm_mask_bytes(bytes)) == True{} : Bool}:
266    match bytes:
267        case Nil{}: {==}
268        case byte <> tail:
269            Equal.trans(Bool,
270                gcm_bytes_valid(gcm_mask_bytes(byte <> tail)),
271                Bool.and(True{}, gcm_bytes_valid(gcm_mask_bytes(tail))),
272                True{},
273                Equal.cong(Bool, Bool,
274                    head => Bool.and(head,
275                        gcm_bytes_valid(gcm_mask_bytes(tail))),
276                    U32.is_lt(gcm_hex_mask(byte, 255), 256), True{},
277                    gcm_mask_byte_valid(byte)),
278                Equal.cong(Bool, Bool, tail_ok => Bool.and(True{}, tail_ok),
279                    gcm_bytes_valid(gcm_mask_bytes(tail)), True{},
280                    gcm_mask_bytes_valid(tail)))

Uses (11)

Used by (1)