本文将介绍密码库 libtomcrypt 库中增加 SM4 算法的一些关键点。 论名气,libtomcrypt 远远不及 OpenSSL、NSS、Bouncy Castle 等加密库,不过 libtomcrypt 也有一些优点: 代码采用 C 语言实现,可移植性好 模块化设计,易于裁剪 libtomcrypt 增加 SM4 算法 libtomcrypt 并没有使用过多的设计技巧,对于加密算法的支持,都定义在 tomcrypt_cipher.h 头文件中。 关于如何调用 libtomcrypt 进行数据加密,我们可以参考 demos/ltcrypt.c 的代码。 有兴趣的同学也可以参考我的移植代码:https://gitee.com/mogoweb/libtomcrypt-gm.git
_64 0:1.17-26.el7 will be installed --> Processing Dependency: libtommath >= 0.42.0 for package: libtomcrypt -1.17-26.el7.x86_64 --> Processing Dependency: libtommath.so.0()(64bit) for package: libtomcrypt-1.17 for dependencies: libsodium13 x86_64 1.0.5-1.el7 epel 144 k libtomcrypt _64 0:1.17-26.el7 will be installed --> Processing Dependency: libtommath >= 0.42.0 for package: libtomcrypt -1.17-26.el7.x86_64 --> Processing Dependency: libtommath.so.0()(64bit) for package: libtomcrypt-1.17
OMAC OMAC是一种认证模式,LibTomCrypt中涉及的OMAC,而NIST中提到的是CMAC。 MAC生成的流程图(MAC值为T) LibTomCrypt与OMAC LibTomCrypt中与OMAC相关的信息如下: typedef struct { int cipher_idx 其中 block[MAXBLOCKSIZE]缓存尾巴上的数据,当数据长len为blklen的倍数时,block存储最后一个blklen的数据;否则,存储len mod blklen 个字节的末尾数据 在LibTomCrypt
国密标准中也定义了一种哈希算法 SM3,本文就来谈一谈在 libtomcrypt 中实现 SM3 算法的要点。 往 libtomcrypt 中添加一种新的哈希算法,实际上是要定义一个 struct ltc_hash_descriptor 结构: struct ltc_hash_descriptor { / 最后来说说 HMAC,libtomcrypt 中已经有 HMAC 的实现,在使用 HMAC 时指定哈希算法为 SM3 即可。 51b00d1fb49832bfb01c3ce27848e59f871d9ba938dc563b338ca964755cce70 有兴趣的同学也可以参考我的移植代码:https://gitee.com/mogoweb/libtomcrypt-gm.git
password='Taren1') 设置输入的用户名和密码 ssh.exec_command("systemctl restart httpd") 输入需执行的命令 需安装以下rpm包,然后重启 libtomcrypt
epel libmcrypt-devel.i686 2.5.8-9.el6 epel libtomcrypt.i686 1.17-21.el6 epel libtomcrypt-devel.i686 1.17-21.el6 epel libtomcrypt-doc.noarch 1.17-21.el6
编译成a b,神奇~ all:${TARGETLIST} clean: rm -f ${TARGETLIST} *.o 指定头文件目录,库文件及目录 拿这个工程为例,工程需要用到libs目录下的libtomcrypt.a
2.Lcrypt 这个包不是纯lua的实现,底层加密用的是C语言,而且额外还有依赖另外另个工具包 libTomCrypt和libTomMath,这两个包的官网已经被和谐了,github上有源码,所以要想让这个包正常运行需要手动
有兴趣的同学也可以参考我的移植代码:https://gitee.com/mogoweb/libtomcrypt-gm.git
现在的网络库,比如NSS、OpenSSL、libtomcrypt等,都有ECC算法的支持,要在网络库中加入SM2算法支持,只需加入命名曲线的参数即可。
这份标准中,有SM2算法的设计背景知识,有兴趣的可以了解,对于开发者而言,最重要的是《GMT 0005-2012》标准中的曲线参数: image.png 现在的网络库,比如NSS、OpenSSL、libtomcrypt
标准的完整实现 GnuTLS :实现了SSL,TLS和DTLS协议的安全通信库 Libgcrypt libmcrypt LibreSSL:免费的SSL/TLS协议,属于2014 OpenSSL的一个分支 LibTomCrypt
标准的完整实现 GnuTLS :实现了SSL,TLS和DTLS协议的安全通信库 Libgcrypt libmcrypt LibreSSL:免费的SSL/TLS协议,属于2014 OpenSSL的一个分支 LibTomCrypt
GnuTLS :实现了SSL,TLS和DTLS协议的安全通信库 Libgcrypt libmcrypt LibreSSL:免费的SSL/TLS协议,属于2014 OpenSSL的一个分支 LibTomCrypt
标准的完整实现 GnuTLS:实现了SSL,TLS和DTLS协议的安全通信库 Libgcrypt libmcrypt LibreSSL:免费的SSL/TLS协议,属于2014 OpenSSL的一个分支 LibTomCrypt
标准的完整实现 GnuTLS :实现了SSL,TLS和DTLS协议的安全通信库 Libgcrypt libmcrypt LibreSSL:免费的SSL/TLS协议,属于2014 OpenSSL的一个分支 LibTomCrypt
LibTomCrypt: 相当全面、模块化和可移植的加密工具包。 mbedTLS: 开源的、可移植的、易于使用的、可读的、灵活的SSL库,以前被称为PolarSSL。 Nettle 底层的加密库。