libgcrypt安全存储器
从libgcrypt手册: Libgcrypt使用一个称为安全内存的概念,它是 为存储敏感数据而预留的内存。因为这样的记忆是一种记忆 由于资源稀缺,需要提前将其设置为固定大小。 此外,大多数操作系统对如何实现这一点都有特殊要求 可以使用安全内存。例如,可能需要 将应用程序安装为“setuid(root)”以允许分配 记忆。 […]如果您必须保护内存中的密钥或其他信息 防止被换出磁盘并启用自动覆盖 对于已使用和已释放的内存,您需要[…] 我对这种安全内存的工作原理有点困惑。libgcrypt安全存储器,c,cryptography,libgcrypt,C,Cryptography,Libgcrypt,从libgcrypt手册: Libgcrypt使用一个称为安全内存的概念,它是 为存储敏感数据而预留的内存。因为这样的记忆是一种记忆 由于资源稀缺,需要提前将其设置为固定大小。 此外,大多数操作系统对如何实现这一点都有特殊要求 可以使用安全内存。例如,可能需要 将应用程序安装为“setuid(root)”以允许分配 记忆。 […]如果您必须保护内存中的密钥或其他信息 防止被换出磁盘并启用自动覆盖 对于已使用和已释放的内存,您需要[…] 我对这种安全内存的工作原理有点困惑。我正在开发一种软件,该软
我正在开发一种软件,该软件可以对aes256 cbc文件进行加密,同时还可以计算IV+密文的MAC(hmac,带有sha512),因此我必须使用安全内存来存储敏感信息。
关于“安全内存”的概念,我不理解的是:
unsignedchar*key;key=malloc(32)代码>。库如何知道此变量希望安全内存为“malloced”
free(key)
将被擦除,因此在释放指针之前,我不需要记忆设置内存只需继续阅读您复制和粘贴的同一页: 这里有一些关于如何初始化库的示例 一般来说,安全内存是用mlock锁定的,因此无法调出
库当然不知道在程序的其他地方有malloc调用,请查看它的文档以了解如何使用它。我想你不会使用
malloc
和free
来管理安全内存,而是使用其他机制。我不知道你在说什么:(我是libgcrypt的新手!我是n00b:dr(完全)TM永远是规则!