xref: /linux/include/crypto/df_sp80090a.h (revision a619fe35ab41fded440d3762d4fbad84ff86a4d4)
16c4fed5fSHarsh Jain /* SPDX-License-Identifier: GPL-2.0 */
26c4fed5fSHarsh Jain 
36c4fed5fSHarsh Jain /*
46c4fed5fSHarsh Jain  * Copyright Stephan Mueller <smueller@chronox.de>, 2014
56c4fed5fSHarsh Jain  */
66c4fed5fSHarsh Jain 
76c4fed5fSHarsh Jain #ifndef _CRYPTO_DF80090A_H
86c4fed5fSHarsh Jain #define _CRYPTO_DF80090A_H
96c4fed5fSHarsh Jain 
106c4fed5fSHarsh Jain #include <crypto/internal/cipher.h>
11*ba0570bdSHarsh Jain #include <crypto/aes.h>
126c4fed5fSHarsh Jain 
crypto_drbg_ctr_df_datalen(u8 statelen,u8 blocklen)136c4fed5fSHarsh Jain static inline int crypto_drbg_ctr_df_datalen(u8 statelen, u8 blocklen)
146c4fed5fSHarsh Jain {
156c4fed5fSHarsh Jain 	return statelen +       /* df_data */
166c4fed5fSHarsh Jain 		blocklen +      /* pad */
176c4fed5fSHarsh Jain 		blocklen +      /* iv */
186c4fed5fSHarsh Jain 		statelen + blocklen;  /* temp */
196c4fed5fSHarsh Jain }
206c4fed5fSHarsh Jain 
21*ba0570bdSHarsh Jain int crypto_drbg_ctr_df(struct crypto_aes_ctx *aes,
226c4fed5fSHarsh Jain 		       unsigned char *df_data,
236c4fed5fSHarsh Jain 		       size_t bytes_to_return,
246c4fed5fSHarsh Jain 		       struct list_head *seedlist,
256c4fed5fSHarsh Jain 		       u8 blocklen_bytes,
266c4fed5fSHarsh Jain 		       u8 statelen);
276c4fed5fSHarsh Jain 
286c4fed5fSHarsh Jain #endif /* _CRYPTO_DF80090A_H */
29