Created GCM for SM4 (markdown)

Sun Yimin 2022-01-03 14:25:17 +08:00
parent e1050e4122
commit b15cfdfe96

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参数同时作为输入而后者只作为输出。