~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/crypto/sm3_generic.c

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /crypto/sm3_generic.c (Version linux-6.11.5) and /crypto/sm3_generic.c (Version linux-2.6.0)


  1 // SPDX-License-Identifier: GPL-2.0-only            1 
  2 /*                                                
  3  * SM3 secure hash, as specified by OSCCA GM/T    
  4  * described at https://tools.ietf.org/html/dr    
  5  *                                                
  6  * Copyright (C) 2017 ARM Limited or its affil    
  7  * Written by Gilad Ben-Yossef <gilad@benyosse    
  8  * Copyright (C) 2021 Tianjia Zhang <tianjia.z    
  9  */                                               
 10                                                   
 11 #include <crypto/internal/hash.h>                 
 12 #include <linux/init.h>                           
 13 #include <linux/module.h>                         
 14 #include <linux/mm.h>                             
 15 #include <linux/types.h>                          
 16 #include <crypto/sm3.h>                           
 17 #include <crypto/sm3_base.h>                      
 18 #include <linux/bitops.h>                         
 19 #include <asm/byteorder.h>                        
 20 #include <asm/unaligned.h>                        
 21                                                   
 22 const u8 sm3_zero_message_hash[SM3_DIGEST_SIZE    
 23         0x1A, 0xB2, 0x1D, 0x83, 0x55, 0xCF, 0x    
 24         0x8e, 0x61, 0x19, 0x48, 0x31, 0xE8, 0x    
 25         0x22, 0xBE, 0xC8, 0xC7, 0x28, 0xFE, 0x    
 26         0x7E, 0xD0, 0x35, 0xEB, 0x50, 0x82, 0x    
 27 };                                                
 28 EXPORT_SYMBOL_GPL(sm3_zero_message_hash);         
 29                                                   
 30 static int crypto_sm3_update(struct shash_desc    
 31                           unsigned int len)       
 32 {                                                 
 33         sm3_update(shash_desc_ctx(desc), data,    
 34         return 0;                                 
 35 }                                                 
 36                                                   
 37 static int crypto_sm3_final(struct shash_desc     
 38 {                                                 
 39         sm3_final(shash_desc_ctx(desc), out);     
 40         return 0;                                 
 41 }                                                 
 42                                                   
 43 static int crypto_sm3_finup(struct shash_desc     
 44                         unsigned int len, u8 *    
 45 {                                                 
 46         struct sm3_state *sctx = shash_desc_ct    
 47                                                   
 48         if (len)                                  
 49                 sm3_update(sctx, data, len);      
 50         sm3_final(sctx, hash);                    
 51         return 0;                                 
 52 }                                                 
 53                                                   
 54 static struct shash_alg sm3_alg = {               
 55         .digestsize     =       SM3_DIGEST_SIZ    
 56         .init           =       sm3_base_init,    
 57         .update         =       crypto_sm3_upd    
 58         .final          =       crypto_sm3_fin    
 59         .finup          =       crypto_sm3_fin    
 60         .descsize       =       sizeof(struct     
 61         .base           =       {                 
 62                 .cra_name        =      "sm3",    
 63                 .cra_driver_name =      "sm3-g    
 64                 .cra_priority   =       100,      
 65                 .cra_blocksize   =      SM3_BL    
 66                 .cra_module      =      THIS_M    
 67         }                                         
 68 };                                                
 69                                                   
 70 static int __init sm3_generic_mod_init(void)      
 71 {                                                 
 72         return crypto_register_shash(&sm3_alg)    
 73 }                                                 
 74                                                   
 75 static void __exit sm3_generic_mod_fini(void)     
 76 {                                                 
 77         crypto_unregister_shash(&sm3_alg);        
 78 }                                                 
 79                                                   
 80 subsys_initcall(sm3_generic_mod_init);            
 81 module_exit(sm3_generic_mod_fini);                
 82                                                   
 83 MODULE_LICENSE("GPL v2");                         
 84 MODULE_DESCRIPTION("SM3 Secure Hash Algorithm"    
 85                                                   
 86 MODULE_ALIAS_CRYPTO("sm3");                       
 87 MODULE_ALIAS_CRYPTO("sm3-generic");               
 88                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php