OpenSSL密码库算法笔记——第6.2.5章 基本函数说明

对数字签名部分的结构体有一个了解之后,下面开始来介绍相关的基本函数,比如签名的新建与释放,ECDSA_DATA的基本操作,ECDSA_METHOD的基本操作等。

       

───────────────────────────────────────

ECDSA_SIG *ECDSA_SIG_new(void)

功能:    新建并初始化签名

输入:    -

输出:    -

返回:    新建签名值

───────────────────────────────────────

 

───────────────────────────────────────

void   ECDSA_SIG_free(ECDSA_SIG *a)

功能:    释放签名值

输入:    a

输出:    -

返回:    -

───────────────────────────────────────

 

───────────────────────────────────────

ECDSA_DATA *ecdsa_check(EC_KEY *key)

功能:    检查并获取密钥中的method_data,并转给ECDSA_DATA

输入:    key

输出:    -

返回:    对应的ECDSA_DATA

出处:    ecdsa\ecs_lib.c

备注:    如果key中有method_data信息,则将这些信息转给ECDSA_DATA;

否则将系统默认的method_data信息写入key和ECDSA_DATA。

───────────────────────────────────────

 

───────────────────────────────────────

void *EC_KEY_get_key_method_data(EC_KEY *key, void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *))

功能:    读取密钥的方法

输入:    key

输出:    dup_func,free_func,clear_free_func【方法】

返回:    -

出处:    ec\ec_key.c

备注:    (data, dup_func, free_func, clear_free_func) ← key->method_data

───────────────────────────────────────

 

───────────────────────────────────────

static void *ecdsa_data_new(void)

功能:    新建ECDSA_DATA

输入:    -

输出:    -

返回:    新建的ECDSA_DATA

出处:    ecdsa\ecs_lib.c

备注:    return (void *)ECDSA_DATA_new_method(NULL)

将新建的ECDSA_DATA内的信息都设置为默认值。

调用:        static ECDSA_DATA *ECDSA_DATA_new_method(ENGINE *engine)

───────────────────────────────────────

 

───────────────────────────────────────

void   ECDSA_set_default_method(const ECDSA_METHOD *meth)

功能:    设置默认的ECDSA方法

输入:    meth

输出:    -

返回:    -

出处:    ecdsa\ecs_lib.c

备注:    本函数修改全局变量——默认的ECDSA方法:default_ECDSA_method ← meth。

───────────────────────────────────────

 

───────────────────────────────────────

const ECDSA_METHOD *ECDSA_get_default_method(void)

功能:    获取默认的ECDSA方法

输入:    -

输出:    -

返回:    默认的ECDSA方法

出处:    ecdsa\ecs_lib.c

备注:    如果default_ECDSA_method 不空,返回default_ECDSA_method;

否则,返回系统默认方法ECDSA_OpenSSL()。

调用:        const ECDSA_METHOD *ECDSA_OpenSSL(void)

───────────────────────────────────────

系统默认方法const ECDSA_METHOD *ECDSA_OpenSSL(void)实际上是做return &openssl_ecdsa_meth, openssl_ecdsa_meth的定义是:

openssl_ecdsa_meth = {"OpenSSL ECDSA method", ecdsa_do_sign, ecdsa_sign_setup, ecdsa_do_verify, 0, NULL}。

───────────────────────────────────────

int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth)

功能:    设置密钥的method_data

输入:    eckey,meth

输出:    eckey【设置好密钥的method_data】

返回:    1【正常】 or 0【出错】

出处:    ecdsa\ecs_lib.c

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