1 Star 1 Fork 0

emmansun/gmsm

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
eea_asm.go 723 Bytes
一键复制 编辑 原始数据 按行查看 历史
emmansun 提交于 2022-08-13 11:14 +08:00 . sync code from github
//go:build (amd64 && !generic) || (arm64 && !generic)
// +build amd64,!generic arm64,!generic
package zuc
import (
"gitee.com/emmansun/gmsm/internal/xor"
)
//go:noescape
func genKeyStreamRev32Asm(keyStream []byte, pState *zucState32)
func xorKeyStream(c *zucState32, dst, src []byte) {
if supportsAES {
words := len(src) / 4
// handle complete words first
if words > 0 {
dstWords := dst[:words*4]
genKeyStreamRev32Asm(dstWords, c)
xor.XorBytes(dst, src, dstWords)
}
// handle remain bytes
if words*4 < len(src) {
var singleWord [4]byte
genKeyStreamRev32Asm(singleWord[:], c)
xor.XorBytes(dst[words*4:], src[words*4:], singleWord[:])
}
} else {
xorKeyStreamGeneric(c, dst, src)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/emmansun/gmsm.git
git@gitee.com:emmansun/gmsm.git
emmansun
gmsm
gmsm
v0.13.6

搜索帮助