如何构建自己的OpenSSL engine (v 1.1.1)

本文提供了构建OpenSSL engine的实例,包括最简单的框架和专门针对RSA的实现。针对OpenSSL 1.1.1版本,教程详细介绍了如何使用IMPLEMENT_DYNAMIC_BIND_FN、ENGINE_set_id和ENGINE_set_name等关键步骤。
摘要由CSDN通过智能技术生成

网上OpenSSL engine的例子不多,OpenSSL 1.1.1的例子就更少了。我在这儿提供两个engine的例子。第一个是最简单的一个框架。第二个是RSA的一个框架。

最简单的一个OpenSSL engine

(来源: https://www.openssl.org/blog/blog/2015/10/08/engine-building-lesson-1-a-minimum-useless-engine/)

#include <stdio.h>

#include <openssl/engine.h>

static const char *engine_id = "silly";
static const char *engine_name = "A silly engine for demonstration purposes";

static int bind(ENGINE *e, const char *id)
{
  int ret = 0;

  if (!ENGINE_set_id(e, engine_id)) {
    fprintf(stderr, "ENGINE_set_id failed\n");
    goto end;
  }
  if (!ENGINE_set_name(e, engine_name)) {
    printf("ENGINE_set_name failed\n");
    goto end;
  }

  ret = 1;
 end:
  return ret;
}

IMPLEMENT_DYNAMIC_BIND_FN(bind)
IMPLEMENT_DYNAMIC_CHECK_FN()

IMPLEMENT_DYNAMIC_BIND_FN:定义完成引擎的注册
ENGINE_set_id:Set engine id
ENGINE

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值