diff --git a/GCM-for-SM4.md b/GCM-for-SM4.md new file mode 100644 index 0000000..0864585 --- /dev/null +++ b/GCM-for-SM4.md @@ -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参数同时作为输入,而后者只作为输出。 \ No newline at end of file