// SPDX-License-Identifier: GPL-2.0-only
/*
* SM3 secure hash , as specified by OSCCA GM / T 0004 - 2012 SM3 and
* described at https : //tools.ietf.org/html/draft-shen-sm3-hash-01
*
* Copyright ( C ) 2017 ARM Limited or its affiliates .
* Written by Gilad Ben - Yossef < gilad @ benyossef . com >
* Copyright ( C ) 2021 Tianjia Zhang < tianjia . zhang @ linux . alibaba . com >
*/
#include <crypto/internal/hash.h>
#include <crypto/sm3.h>
#include <crypto/sm3_base.h>
#include <linux/kernel.h>
#include <linux/module.h>
const u8 sm3_zero_message_hash[SM3_DIGEST_SIZE] = {
0 x1A, 0 xB2, 0 x1D, 0 x83, 0 x55, 0 xCF, 0 xA1, 0 x7F,
0 x8e, 0 x61, 0 x19, 0 x48, 0 x31, 0 xE8, 0 x1A, 0 x8F,
0 x22, 0 xBE, 0 xC8, 0 xC7, 0 x28, 0 xFE, 0 xFB, 0 x74,
0 x7E, 0 xD0, 0 x35, 0 xEB, 0 x50, 0 x82, 0 xAA, 0 x2B
};
EXPORT_SYMBOL_GPL(sm3_zero_message_hash);
static int crypto_sm3_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{
return sm3_base_do_update_blocks(desc, data, len, sm3_block_generic);
}
static int crypto_sm3_finup(struct shash_desc *desc, const u8 *data,
unsigned int len, u8 *hash)
{
sm3_base_do_finup(desc, data, len, sm3_block_generic);
return sm3_base_finish(desc, hash);
}
static struct shash_alg sm3_alg = {
.digestsize = SM3_DIGEST_SIZE,
.init = sm3_base_init,
.update = crypto_sm3_update,
.finup = crypto_sm3_finup,
.descsize = SM3_STATE_SIZE,
.base = {
.cra_name = "sm3" ,
.cra_driver_name = "sm3-generic" ,
.cra_priority = 100 ,
.cra_flags = CRYPTO_AHASH_ALG_BLOCK_ONLY |
CRYPTO_AHASH_ALG_FINUP_MAX,
.cra_blocksize = SM3_BLOCK_SIZE,
.cra_module = THIS_MODULE,
}
};
static int __init sm3_generic_mod_init(void )
{
return crypto_register_shash(&sm3_alg);
}
static void __exit sm3_generic_mod_fini(void )
{
crypto_unregister_shash(&sm3_alg);
}
module_init(sm3_generic_mod_init);
module_exit(sm3_generic_mod_fini);
MODULE_LICENSE("GPL v2" );
MODULE_DESCRIPTION("SM3 Secure Hash Algorithm" );
MODULE_ALIAS_CRYPTO("sm3" );
MODULE_ALIAS_CRYPTO("sm3-generic" );
Messung V0.5 in Prozent C=96 H=100 G=97
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland