1 | */* SPDX-License-Identifier: GPL-2.0 */* |

2 | __#ifndef _CRYPTO_TWOFISH_H__ |

3 | __#define _CRYPTO_TWOFISH_H__ |

4 | |

5 | __#include <linux/types.h>__ |

6 | |

7 | __#define TF_MIN_KEY_SIZE 16__ |

8 | __#define TF_MAX_KEY_SIZE 32__ |

9 | __#define TF_BLOCK_SIZE 16__ |

10 | |

11 | **struct** crypto_tfm; |

12 | |

13 | */* Structure for an expanded Twofish key. s contains the key-dependent* |

14 | * * S-boxes composed with the MDS matrix; w contains the eight "whitening"* |

15 | * * subkeys, K[0] through K[7]. k holds the remaining, "round" subkeys. Note* |

16 | * * that k[i] corresponds to what the Twofish paper calls K[i+8]. */* |

17 | **struct** twofish_ctx { |

18 | u32 s[`4`][`256`], w[`8`], k[`32`]; |

19 | }; |

20 | |

21 | *int* __twofish_setkey(**struct** twofish_ctx *ctx, *const* u8 *key, |

22 | *unsigned* *int* key_len, u32 *flags); |

23 | *int* twofish_setkey(**struct** crypto_tfm *tfm, *const* u8 *key, *unsigned* *int* key_len); |

24 | |

25 | __#endif__ |

26 | |