1515
1616namespace Botan ::Serpent_F {
1717
18- template <typename T>
18+ template <BitsliceT T>
1919BOTAN_FORCE_INLINE void SBoxE0 (T& a, T& b, T& c, T& d) {
2020 d ^= a;
2121 T t0 = b;
@@ -40,7 +40,7 @@ BOTAN_FORCE_INLINE void SBoxE0(T& a, T& b, T& c, T& d) {
4040 b = t0;
4141}
4242
43- template <typename T>
43+ template <BitsliceT T>
4444BOTAN_FORCE_INLINE void SBoxE1 (T& a, T& b, T& c, T& d) {
4545 a = ~a;
4646 c = ~c;
@@ -66,7 +66,7 @@ BOTAN_FORCE_INLINE void SBoxE1(T& a, T& b, T& c, T& d) {
6666 b = t0;
6767}
6868
69- template <typename T>
69+ template <BitsliceT T>
7070BOTAN_FORCE_INLINE void SBoxE2 (T& a, T& b, T& c, T& d) {
7171 T t0 = a;
7272 a &= c;
@@ -89,7 +89,7 @@ BOTAN_FORCE_INLINE void SBoxE2(T& a, T& b, T& c, T& d) {
8989 d = ~t0;
9090}
9191
92- template <typename T>
92+ template <BitsliceT T>
9393BOTAN_FORCE_INLINE void SBoxE3 (T& a, T& b, T& c, T& d) {
9494 T t0 = a;
9595 a |= d;
@@ -115,7 +115,7 @@ BOTAN_FORCE_INLINE void SBoxE3(T& a, T& b, T& c, T& d) {
115115 d = t0;
116116}
117117
118- template <typename T>
118+ template <BitsliceT T>
119119BOTAN_FORCE_INLINE void SBoxE4 (T& a, T& b, T& c, T& d) {
120120 b ^= d;
121121 d = ~d;
@@ -142,7 +142,7 @@ BOTAN_FORCE_INLINE void SBoxE4(T& a, T& b, T& c, T& d) {
142142 b = t0;
143143}
144144
145- template <typename T>
145+ template <BitsliceT T>
146146BOTAN_FORCE_INLINE void SBoxE5 (T& a, T& b, T& c, T& d) {
147147 a ^= b;
148148 b ^= d;
@@ -169,7 +169,7 @@ BOTAN_FORCE_INLINE void SBoxE5(T& a, T& b, T& c, T& d) {
169169 d = t0;
170170}
171171
172- template <typename T>
172+ template <BitsliceT T>
173173BOTAN_FORCE_INLINE void SBoxE6 (T& a, T& b, T& c, T& d) {
174174 c = ~c;
175175 T t0 = d;
@@ -192,7 +192,7 @@ BOTAN_FORCE_INLINE void SBoxE6(T& a, T& b, T& c, T& d) {
192192 c = t0;
193193}
194194
195- template <typename T>
195+ template <BitsliceT T>
196196BOTAN_FORCE_INLINE void SBoxE7 (T& a, T& b, T& c, T& d) {
197197 T t0 = b;
198198 b |= c;
@@ -220,7 +220,7 @@ BOTAN_FORCE_INLINE void SBoxE7(T& a, T& b, T& c, T& d) {
220220 a = t0;
221221}
222222
223- template <typename T>
223+ template <BitsliceT T>
224224BOTAN_FORCE_INLINE void SBoxD0 (T& a, T& b, T& c, T& d) {
225225 c = ~c;
226226 T t0 = b;
@@ -245,7 +245,7 @@ BOTAN_FORCE_INLINE void SBoxD0(T& a, T& b, T& c, T& d) {
245245 b = t0;
246246}
247247
248- template <typename T>
248+ template <BitsliceT T>
249249BOTAN_FORCE_INLINE void SBoxD1 (T& a, T& b, T& c, T& d) {
250250 T t0 = b;
251251 b ^= d;
@@ -273,7 +273,7 @@ BOTAN_FORCE_INLINE void SBoxD1(T& a, T& b, T& c, T& d) {
273273 d = t0;
274274}
275275
276- template <typename T>
276+ template <BitsliceT T>
277277BOTAN_FORCE_INLINE void SBoxD2 (T& a, T& b, T& c, T& d) {
278278 c ^= d;
279279 d ^= a;
@@ -298,7 +298,7 @@ BOTAN_FORCE_INLINE void SBoxD2(T& a, T& b, T& c, T& d) {
298298 b = t0;
299299}
300300
301- template <typename T>
301+ template <BitsliceT T>
302302BOTAN_FORCE_INLINE void SBoxD3 (T& a, T& b, T& c, T& d) {
303303 T t0 = c;
304304 c ^= b;
@@ -324,7 +324,7 @@ BOTAN_FORCE_INLINE void SBoxD3(T& a, T& b, T& c, T& d) {
324324 d = t0;
325325}
326326
327- template <typename T>
327+ template <BitsliceT T>
328328BOTAN_FORCE_INLINE void SBoxD4 (T& a, T& b, T& c, T& d) {
329329 T t0 = c;
330330 c &= d;
@@ -350,7 +350,7 @@ BOTAN_FORCE_INLINE void SBoxD4(T& a, T& b, T& c, T& d) {
350350 d = t0;
351351}
352352
353- template <typename T>
353+ template <BitsliceT T>
354354BOTAN_FORCE_INLINE void SBoxD5 (T& a, T& b, T& c, T& d) {
355355 b = ~b;
356356 T t0 = d;
@@ -378,7 +378,7 @@ BOTAN_FORCE_INLINE void SBoxD5(T& a, T& b, T& c, T& d) {
378378 c = t0;
379379}
380380
381- template <typename T>
381+ template <BitsliceT T>
382382BOTAN_FORCE_INLINE void SBoxD6 (T& a, T& b, T& c, T& d) {
383383 a ^= c;
384384 T t0 = c;
@@ -402,7 +402,7 @@ BOTAN_FORCE_INLINE void SBoxD6(T& a, T& b, T& c, T& d) {
402402 c = t0;
403403}
404404
405- template <typename T>
405+ template <BitsliceT T>
406406BOTAN_FORCE_INLINE void SBoxD7 (T& a, T& b, T& c, T& d) {
407407 T t0 = c;
408408 c ^= a;
0 commit comments