From b15cfdfe966e6a88fa2356872ef12c807853e1f8 Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Mon, 3 Jan 2022 14:25:17 +0800 Subject: [PATCH] Created GCM for SM4 (markdown) --- GCM-for-SM4.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 GCM-for-SM4.md 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