参考链接 arc4.h
- Linux加密框架中的主要数据结构(一)_家有一希的博客-CSDN博客
头文件
- arc4.h - include/crypto/arc4.h - Linux source code (v5.15.11) - Bootlin
实现代码 arc4.c
- arc4.c - crypto/arc4.c - Linux source code (v5.15.11) - Bootlin
- V5.15.11 版本说明 只剩下 ecb(arc4)
- 算法名为"ecb(arc4)",未说明算法驱动名,注册时将算法驱动名填充为"ecb(arc4)-generic"
- 算法的分组长度为ARC4_BLOCK_SIZE(1)字节,上下文空间为数据结构staruct arc4_ctx的一个实例
- RC4算法虽然是一个序列算法,但在加密框架中按照分组长度为1的分组算法实现,因此其算法类型为CRYPTO_ALG_TYPE_CIPHER(待定 存疑),个性化属性中密钥长度的下限和上限分别为ARC4_MIN_KEY_SIZE(1)、ARC4_MAX_KEY_SIZE(256)
- 三个算法接口为密钥设置接口crypto_arc4_set_key、加密接口和解密接口均为crypto_arc4_crypt。
- 使用序列算法时,其加密/解密操作都是密码流和明文/密文的异或过程,因此其加密接口和解密接口相同。
注意事项
- 上述链接指向的文章中,提到的CRYPTO_ALG_TYPE_BLKCIPHER相关内容,在目前版本V5.15.11中未找到
- *注意事项: .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER 先前会将cra_flags设置为CRYPTO_ALG_TYPE_BLKCIPHER,即 块加密算法,其个性化属性数据结构为struct blkcipher_alg