我想写一个openssl动态引擎,但我找不到任何相关文档。
我想要写的算法是一个chipper算法(如rsa)和一个散列算法(如md5)。
有没有什么简单的引擎源代码可以让我修改和使用呢?
发布于 2014-01-07 12:42:56
是什么简单的引擎源代码,我可以改变它并从中使用它?
英特尔RDRAND引擎非常容易理解。你可以通过以下方式找到它的源代码:
openssl-1.0.1f$ grep -R -i ENGINE_rdrand *
crypto/engine/eng_rdrand.c:static ENGINE *ENGINE_rdrand(void)
crypto/engine/eng_rdrand.c: ENGINE *toadd = ENGINE_rdrand();下面是如何加载它并将其设置为默认的随机数生成器引擎(来自Random Numbers|Hardware):
unsigned long err = 0;
int rc = 0;
OPENSSL_cpuid_setup();
ENGINE_load_rdrand();
ENGINE* eng = ENGINE_by_id("rdrand");
err = ERR_get_error();
if(NULL == eng) {
fprintf(stderr, "ENGINE_load_rdrand failed, err = 0x%lx\n", err);
abort(); /* failed */
}
rc = ENGINE_init(eng);
err = ERR_get_error();
if(0 == rc) {
fprintf(stderr, "ENGINE_init failed, err = 0x%lx\n", err);
abort(); /* failed */
}
rc = ENGINE_set_default(eng, ENGINE_METHOD_RAND);
err = ERR_get_error();
if(0 == rc) {
fprintf(stderr, "ENGINE_set_default failed, err = 0x%lx\n", err);
abort(); /* failed */
}
/* OK to proceed */
...
ENGINE_finish(eng);
ENGINE_free(eng);发布于 2011-08-16 15:02:53
我建议你这样做
apt-get source openssl这将为您提供openssl源代码。在树中,您可以找到例如目录crypto/rsa和crypto/md5,我想这对您的项目来说是一个很好的开始。它还附带了一些README等形式的文档。
玩得开心。
https://stackoverflow.com/questions/7074448
复制相似问题