OpenSSL密码库算法笔记——第6.2.3章 ECDSA_METHOD

ECDSA_METHOD主要描述了生成签名和验证签名时使用的函数。

typedef struct ecdsa_method ECDSA_METHOD;

struct ecdsa_method {

        const char        *name;

        ECDSA_SIG  *(*ecdsa_do_sign)(const unsigned char *dgst, int dgst_len, const BIGNUM *inv, const BIGNUM *rp, EC_KEY *eckey);

        int (*ecdsa_sign_setup)(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **r);

        int (*ecdsa_do_verify)(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig, EC_KEY *eckey);

        int    flags;

        char *app_data;

        };

其中:

  1. name是为了便于记忆,给某个ECDSA_METHOD取的名字。
  2. ecdsa_do_sign         记载了生成签名所调用的函数。
  3. ecdsa_sign_setup 生成签名中所需的预计算函数。
  4. ecdsa_do_verify记载了验证签名所调用的函数。

下面举例说明ECDSA_METHOD,例子来源于文件ecdsa\ecs_ossl.c

static ECDSA_METHOD openssl_ecdsa_meth =

{

        "OpenSSL ECDSA method",

        ecdsa_do_sign,

        ecdsa_sign_setup,

        ecdsa_do_verify,

        0,    /* flags    */

        NULL  /* app_data */           

};

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值