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 */           

};

你可能感兴趣的:(openssl,密码)