/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright ( c ) 2010 - 2014 , The Linux Foundation . All rights reserved .
*/
#ifndef _SHA_H_
#define _SHA_H_
#include <crypto/scatterwalk.h>
#include <crypto/sha1.h>
#include <crypto/sha2.h>
#include "common.h"
#include "core.h"
#define QCE_SHA_MAX_BLOCKSIZE SHA256_BLOCK_SIZE
#define QCE_SHA_MAX_DIGESTSIZE SHA256_DIGEST_SIZE
struct qce_sha_ctx {
u8 authkey[QCE_SHA_MAX_BLOCKSIZE];
};
/**
* struct qce_sha_reqctx - holds private ahash objects per request
* @ buf : used during update , import and export
* @ tmpbuf : buffer for internal use
* @ digest : calculated digest buffer
* @ buflen : length of the buffer
* @ flags : operation flags
* @ src_orig : original request sg list
* @ nbytes_orig : original request number of bytes
* @ src_nents : source number of entries
* @ byte_count : byte count
* @ count : save count in states during update , import and export
* @ first_blk : is it the first block
* @ last_blk : is it the last block
* @ sg : used to chain sg lists
* @ authkey : pointer to auth key in sha ctx
* @ authklen : auth key length
* @ result_sg : scatterlist used for result buffer
*/
struct qce_sha_reqctx {
u8 buf[QCE_SHA_MAX_BLOCKSIZE];
u8 tmpbuf[QCE_SHA_MAX_BLOCKSIZE];
u8 digest[QCE_SHA_MAX_DIGESTSIZE];
unsigned int buflen;
unsigned long flags;
struct scatterlist *src_orig;
unsigned int nbytes_orig;
int src_nents;
__be32 byte_count[2 ];
u64 count;
bool first_blk;
bool last_blk;
struct scatterlist sg[2 ];
u8 *authkey;
unsigned int authklen;
struct scatterlist result_sg;
};
static inline struct qce_alg_template *to_ahash_tmpl(struct crypto_tfm *tfm)
{
struct crypto_ahash *ahash = __crypto_ahash_cast(tfm);
struct ahash_alg *alg = container_of(crypto_hash_alg_common(ahash),
struct ahash_alg, halg);
return container_of(alg, struct qce_alg_template, alg.ahash);
}
extern const struct qce_algo_ops ahash_ops;
#endif /* _SHA_H_ */
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-10-01)
¤
*© Formatika GbR, Deutschland