mirror of
https://github.com/emmansun/gmsm.git
synced 2025-05-11 03:26:17 +08:00
Created GCM for SM4 (markdown)
parent
e1050e4122
commit
b15cfdfe96
15
GCM-for-SM4.md
Normal file
15
GCM-for-SM4.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
为sm4实现的GCM汇编代码是从AES GCM实现中摘抄的。主要为以下三个函数:
|
||||||
|
'''
|
||||||
|
//go:noescape
|
||||||
|
func precomputeTableAsm(productTable *[256]byte, src *[16]byte)
|
||||||
|
|
||||||
|
//go:noescape
|
||||||
|
func gcmSm4Data(productTable *[256]byte, data []byte, T *[16]byte)
|
||||||
|
|
||||||
|
//go:noescape
|
||||||
|
func gcmSm4Finish(productTable *[256]byte, tagMask, T *[16]byte, pLen, dLen uint64)
|
||||||
|
'''
|
||||||
|
|
||||||
|
1. gcmSm4Finish没有改变,和gcmAesFinish一模一样;
|
||||||
|
1. precomputeTableAsm和gcmAesInit的区别在于前者没有加密部分,输入参数就是加密结果;
|
||||||
|
1. gcmSm4Data和gcmAesData的差别在于前者那个T参数同时作为输入,而后者只作为输出。
|
Loading…
x
Reference in New Issue
Block a user