Security openssl中的安全内存块

Security openssl中的安全内存块,security,memory,openssl,Security,Memory,Openssl,OpenSSL中是否有与Crypto++等效的方法 在释放内存之前清除内存的一种方法,包括用敏感信息保护内存块。有没有办法保护内存中的RSA结构 OpenSSL中是否有任何方法与Crypto++的SecByteBlock等效 一个SecByteBlock是一个类,它通过将数据与操作相结合来对数据进行操作(大量手动放弃),从而利用OOP。OpenSSL是一个C库,它没有与OOP相关的大部分优点 在OpenSSL中,您将使用OpenSSL\u clean。以下是它在OpenSSL中的一些单行程序用法

OpenSSL中是否有与Crypto++等效的方法

在释放内存之前清除内存的一种方法,包括用敏感信息保护内存块。有没有办法保护内存中的RSA结构

OpenSSL中是否有任何方法与Crypto++的SecByteBlock等效

一个
SecByteBlock
是一个类,它通过将数据与操作相结合来对数据进行操作(大量手动放弃),从而利用OOP。OpenSSL是一个C库,它没有与OOP相关的大部分优点

在OpenSSL中,您将使用
OpenSSL\u clean
。以下是它在OpenSSL中的一些单行程序用法:

$ grep -R cleanse * | grep -v doc
...
apps/apps.c:            OPENSSL_cleanse(buff, (unsigned int)bufsiz);
apps/apps.c:            OPENSSL_cleanse(buf, (unsigned int)bufsiz);
apps/apps.c:            OPENSSL_cleanse(buf, (unsigned int)bufsiz);
apps/ca.c:        OPENSSL_cleanse(key, strlen(key));
apps/dgst.c:        OPENSSL_cleanse(buf, BUFSIZE);
apps/enc.c:                OPENSSL_cleanse(str, SIZE);
apps/enc.c:                OPENSSL_cleanse(str, strlen(str));
...

有没有办法保护内存中的RSA结构

RSA\u-free
内部调用
OPENSSL\u-clean
。因此,当结构被丢弃时,它被归零。根据RSA_new和RSA_free上的说明:

RSA_free()
释放RSA结构及其组件。在将存储器返回系统之前,钥匙会被擦除

但您可能需要定义“内存中的安全”的需求。如果您的需求包括包装,那么不,OpenSSL不提供包装。但Crypto++也不例外