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

};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章