def sp_nib_inv

bend-osdev-legacy-ciphers@0.1.0.0 · PROOF.bend:1095

import bend-osdev-legacy-ciphers@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-legacy-ciphers@0.1.0.0/serpent.bend as P

1095def sp_nib_inv(bx: P.LcSpBox, inv: Bool, +n: P.LcSpNib) -> {n == P.sp.nib(bx, Bool.not(inv), P.LcSpNib{P.sp.na(P.sp.nib(bx, inv, n)), P.sp.nb(P.sp.nib(bx, inv, n)), P.sp.nc(P.sp.nib(bx, inv, n)), P.sp.nd(P.sp.nib(bx, inv, n))}) : P.LcSpNib}:
1096  match bx:
1097    case P.LcSp0{}:
1098      match inv:
1099        case True{}:
1100          sp_nib_0_t(n)
1101        case False{}:
1102          sp_nib_0_f(n)
1103    case P.LcSp1{}:
1104      match inv:
1105        case True{}:
1106          sp_nib_1_t(n)
1107        case False{}:
1108          sp_nib_1_f(n)
1109    case P.LcSp2{}:
1110      match inv:
1111        case True{}:
1112          sp_nib_2_t(n)
1113        case False{}:
1114          sp_nib_2_f(n)
1115    case P.LcSp3{}:
1116      match inv:
1117        case True{}:
1118          sp_nib_3_t(n)
1119        case False{}:
1120          sp_nib_3_f(n)
1121    case P.LcSp4{}:
1122      match inv:
1123        case True{}:
1124          sp_nib_4_t(n)
1125        case False{}:
1126          sp_nib_4_f(n)
1127    case P.LcSp5{}:
1128      match inv:
1129        case True{}:
1130          sp_nib_5_t(n)
1131        case False{}:
1132          sp_nib_5_f(n)
1133    case P.LcSp6{}:
1134      match inv:
1135        case True{}:
1136          sp_nib_6_t(n)
1137        case False{}:
1138          sp_nib_6_f(n)
1139    case P.LcSp7{}:
1140      match inv:
1141        case True{}:
1142          sp_nib_7_t(n)
1143        case False{}:
1144          sp_nib_7_f(n)

Uses (25)

Used by (1)