mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-11 10:56:17 +08:00
update
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
@@ -54,65 +54,71 @@
|
||||
|
||||
#include "eng_int.h"
|
||||
|
||||
/* If this symbol is defined then ENGINE_get_default_RSA(), the function that is
|
||||
* used by RSA to hook in implementation code and cache defaults (etc), will
|
||||
* display brief debugging summaries to stderr with the 'nid'. */
|
||||
/*
|
||||
* If this symbol is defined then ENGINE_get_default_RSA(), the function that
|
||||
* is used by RSA to hook in implementation code and cache defaults (etc),
|
||||
* will display brief debugging summaries to stderr with the 'nid'.
|
||||
*/
|
||||
/* #define ENGINE_RSA_DEBUG */
|
||||
|
||||
static ENGINE_TABLE *rsa_table = NULL;
|
||||
static const int dummy_nid = 1;
|
||||
|
||||
void ENGINE_unregister_RSA(ENGINE *e)
|
||||
{
|
||||
engine_table_unregister(&rsa_table, e);
|
||||
}
|
||||
{
|
||||
engine_table_unregister(&rsa_table, e);
|
||||
}
|
||||
|
||||
static void engine_unregister_all_RSA(void)
|
||||
{
|
||||
engine_table_cleanup(&rsa_table);
|
||||
}
|
||||
{
|
||||
engine_table_cleanup(&rsa_table);
|
||||
}
|
||||
|
||||
int ENGINE_register_RSA(ENGINE *e)
|
||||
{
|
||||
if(e->rsa_meth)
|
||||
return engine_table_register(&rsa_table,
|
||||
engine_unregister_all_RSA, e, &dummy_nid, 1, 0);
|
||||
return 1;
|
||||
}
|
||||
{
|
||||
if (e->rsa_meth)
|
||||
return engine_table_register(&rsa_table,
|
||||
engine_unregister_all_RSA, e, &dummy_nid,
|
||||
1, 0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ENGINE_register_all_RSA()
|
||||
{
|
||||
ENGINE *e;
|
||||
{
|
||||
ENGINE *e;
|
||||
|
||||
for(e=ENGINE_get_first() ; e ; e=ENGINE_get_next(e))
|
||||
ENGINE_register_RSA(e);
|
||||
}
|
||||
for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e))
|
||||
ENGINE_register_RSA(e);
|
||||
}
|
||||
|
||||
int ENGINE_set_default_RSA(ENGINE *e)
|
||||
{
|
||||
if(e->rsa_meth)
|
||||
return engine_table_register(&rsa_table,
|
||||
engine_unregister_all_RSA, e, &dummy_nid, 1, 1);
|
||||
return 1;
|
||||
}
|
||||
{
|
||||
if (e->rsa_meth)
|
||||
return engine_table_register(&rsa_table,
|
||||
engine_unregister_all_RSA, e, &dummy_nid,
|
||||
1, 1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Exposed API function to get a functional reference from the implementation
|
||||
/*
|
||||
* Exposed API function to get a functional reference from the implementation
|
||||
* table (ie. try to get a functional reference from the tabled structural
|
||||
* references). */
|
||||
* references).
|
||||
*/
|
||||
ENGINE *ENGINE_get_default_RSA(void)
|
||||
{
|
||||
return engine_table_select(&rsa_table, dummy_nid);
|
||||
}
|
||||
{
|
||||
return engine_table_select(&rsa_table, dummy_nid);
|
||||
}
|
||||
|
||||
/* Obtains an RSA implementation from an ENGINE functional reference */
|
||||
const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e)
|
||||
{
|
||||
return e->rsa_meth;
|
||||
}
|
||||
{
|
||||
return e->rsa_meth;
|
||||
}
|
||||
|
||||
/* Sets an RSA implementation in an ENGINE structure */
|
||||
int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth)
|
||||
{
|
||||
e->rsa_meth = rsa_meth;
|
||||
return 1;
|
||||
}
|
||||
{
|
||||
e->rsa_meth = rsa_meth;
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user