summaryrefslogtreecommitdiff
path: root/lib/algorithms/sign.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/algorithms/sign.c')
-rw-r--r--lib/algorithms/sign.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/lib/algorithms/sign.c b/lib/algorithms/sign.c
index 1c19cc86fb..b64221bcfb 100644
--- a/lib/algorithms/sign.c
+++ b/lib/algorithms/sign.c
@@ -28,17 +28,6 @@
/* signature algorithms;
*/
-struct gnutls_sign_entry {
- const char *name;
- const char *oid;
- gnutls_sign_algorithm_t id;
- gnutls_pk_algorithm_t pk;
- gnutls_digest_algorithm_t mac;
- /* See RFC 5246 HashAlgorithm and SignatureAlgorithm
- for values to use in aid struct. */
- const sign_algorithm_st aid;
-};
-typedef struct gnutls_sign_entry gnutls_sign_entry;
#define TLS_SIGN_AID_UNKNOWN {255, 255}
static const sign_algorithm_st unknown_tls_aid = TLS_SIGN_AID_UNKNOWN;
@@ -46,7 +35,7 @@ static const sign_algorithm_st unknown_tls_aid = TLS_SIGN_AID_UNKNOWN;
/* Signature algorithms may be listed twice with a different PK algorithm,
* e.g., RSA-PSS-SHA256 can be generated by GNUTLS_PK_RSA or GNUTLS_PK_RSA_PSS.
*/
-static const gnutls_sign_entry sign_algorithms[] = {
+static const gnutls_sign_entry_st sign_algorithms[] = {
{"RSA-SHA1", SIG_RSA_SHA1_OID, GNUTLS_SIGN_RSA_SHA1, GNUTLS_PK_RSA,
GNUTLS_DIG_SHA1, {2, 1}},
{"RSA-SHA1", ISO_SIG_RSA_SHA1_OID, GNUTLS_SIGN_RSA_SHA1,
@@ -146,7 +135,7 @@ static const gnutls_sign_entry sign_algorithms[] = {
#define GNUTLS_SIGN_LOOP(b) \
do { \
- const gnutls_sign_entry *p; \
+ const gnutls_sign_entry_st *p; \
for(p = sign_algorithms; p->name != NULL; p++) { b ; } \
} while (0)
@@ -185,7 +174,7 @@ int gnutls_sign_is_secure(gnutls_sign_algorithm_t algorithm)
gnutls_digest_algorithm_t dig = GNUTLS_DIG_UNKNOWN;
/* avoid prefix */
- GNUTLS_SIGN_ALG_LOOP(dig = p->mac);
+ GNUTLS_SIGN_ALG_LOOP(dig = p->hash);
if (dig != GNUTLS_DIG_UNKNOWN)
return _gnutls_digest_is_secure(hash_to_entry(dig));
@@ -289,7 +278,7 @@ gnutls_pk_to_sign(gnutls_pk_algorithm_t pk, gnutls_digest_algorithm_t hash)
gnutls_sign_algorithm_t ret = 0;
GNUTLS_SIGN_LOOP(
- if (pk == p->pk && hash == p->mac) {
+ if (pk == p->pk && hash == p->hash) {
ret = p->id;
break;
}
@@ -336,7 +325,7 @@ gnutls_sign_get_hash_algorithm(gnutls_sign_algorithm_t sign)
{
gnutls_digest_algorithm_t ret = GNUTLS_DIG_UNKNOWN;
- GNUTLS_SIGN_ALG_LOOP(ret = p->mac);
+ GNUTLS_SIGN_ALG_LOOP(ret = p->hash);
return ret;
}
@@ -422,3 +411,12 @@ const sign_algorithm_st *_gnutls_sign_to_tls_aid(gnutls_sign_algorithm_t
return ret;
}
+
+const gnutls_sign_entry_st *_gnutls_sign_to_entry(gnutls_sign_algorithm_t sign)
+{
+ const gnutls_sign_entry_st *ret = NULL;
+
+ GNUTLS_SIGN_ALG_LOOP(ret = p);
+
+ return ret;
+}