]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Added gnutls_sign_algorithm_get().
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 17 Aug 2012 18:16:35 +0000 (20:16 +0200)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 17 Aug 2012 20:16:34 +0000 (22:16 +0200)
NEWS
lib/ext/signature.c
lib/ext/signature.h
lib/gnutls_int.h
lib/gnutls_sig.c
lib/includes/gnutls/gnutls.h.in
lib/libgnutls.map

diff --git a/NEWS b/NEWS
index db121204547588c300f0ed570b4c329444fb0ab3..1955e8f83b5d2cf746ce55a41599247e4e3c0642 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,17 @@ GnuTLS NEWS -- History of user-visible changes.                -*- outline -*-
 Copyright (C) 2000-2012 Free Software Foundation, Inc.
 See the end for copying conditions.
 
+* Version 3.1.1 (unreleased)
+
+** tpmtool: No longer asks for key password in registered keys.
+
+** API and ABI modifications:
+gnutls_sign_algorithm_get: Added
+gnutls_sign_get_hash_algorithm: Added
+gnutls_sign_get_pk_algorithm: Added
+GNUTLS_PK_RSA_HASH_ONLY: Added
+
+
 * Version 3.1.0 (released 2012-08-15)
 
 ** libgnutls: Added direct support for TPM as a cryptographic module 
index ab77d72a533e15aa2f47369b2a1dcc716ba05c0d..59e3750c1052cc6e3cb779a11680a9b590087a4a 100644 (file)
@@ -437,3 +437,20 @@ gnutls_sign_algorithm_get_requested (gnutls_session_t session,
   else
     return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
 }
+
+/**
+ * gnutls_sign_algorithm_get:
+ * @session: is a #gnutls_session_t structure.
+ *
+ * Returns the signature algorithm that is (or will be) used in this 
+ * session to sign data.
+ *
+ * Returns: The sign algorithm or %GNUTLS_SIGN_UNKNOWN.
+ *
+ * Since: 3.1.1
+ **/
+int
+gnutls_sign_algorithm_get (gnutls_session_t session)
+{
+  return session->security_parameters.sign_algo;
+}
index c9acbfc57d782a4f1a65377f2e4dccebe64a20c4..40a54217e196fbe03973363db72b684740230ac5 100644 (file)
@@ -37,4 +37,10 @@ int _gnutls_sign_algorithm_write_params (gnutls_session_t session,
                                          uint8_t * data, size_t max_data_size);
 int _gnutls_session_sign_algo_enabled (gnutls_session_t session,
                                        gnutls_sign_algorithm_t sig);
+
+static inline void   
+gnutls_sign_algorithm_set (gnutls_session_t session, gnutls_sign_algorithm_t sign)
+{
+  session->security_parameters.sign_algo = sign;
+}
 #endif
index edb160ab2fe640b2e08c87b846b1f0719ff5fa16..8da69782f2673235dd4f077e7fd37eddc898e798 100644 (file)
@@ -499,6 +499,9 @@ typedef struct
   gnutls_ecc_curve_t ecc_curve; /* holds the first supported ECC curve requested by client */
   gnutls_protocol_t version;    /* moved here */
 
+  /* Holds the signature algorithm used in this session - If any */
+  gnutls_sign_algorithm_t sign_algo;
+
   /* FIXME: The following are not saved in the session storage
    * for session resumption.
    */
index 27c8c89ba2d5e96b1a9226fb096013649be9d6dd..86e60d77c98a1f19e18f3f558672374fce0765c8 100644 (file)
@@ -76,6 +76,8 @@ _gnutls_handshake_sign_data (gnutls_session_t session, gnutls_pcert_st* cert,
       gnutls_assert ();
       return GNUTLS_E_UNKNOWN_PK_ALGORITHM;
     }
+    
+  gnutls_sign_algorithm_set(session, *sign_algo);
 
   hash_algo = gnutls_sign_get_hash_algorithm (*sign_algo);
 
@@ -552,6 +554,8 @@ _gnutls_handshake_sign_crt_vrfy12 (gnutls_session_t session,
       gnutls_assert ();
       return GNUTLS_E_UNKNOWN_PK_ALGORITHM;
     }
+  
+  gnutls_sign_algorithm_set(session, sign_algo);
 
   hash_algo = gnutls_sign_get_hash_algorithm (sign_algo);
 
index f3d767c212a650907304f4c7c506b6c118294b6b..ec674038bc3e0329d16a75f4e7c509b30977b8bc 100644 (file)
@@ -783,6 +783,8 @@ gnutls_ecc_curve_t gnutls_ecc_curve_get(gnutls_session_t session);
     gnutls_compression_get (gnutls_session_t session);
   gnutls_certificate_type_t
     gnutls_certificate_type_get (gnutls_session_t session);
+    
+  int gnutls_sign_algorithm_get (gnutls_session_t session);
 
   int gnutls_sign_algorithm_get_requested (gnutls_session_t session,
                                            size_t indx,
index 31704174753d1760944e4b727e20206ccb6270c4..50a6872809c1b23eaa3bdd85a38502ed3b7cb7ec 100644 (file)
@@ -828,6 +828,7 @@ GNUTLS_3_1_0 {
        gnutls_handshake_set_timeout;
        gnutls_sign_get_pk_algorithm;
        gnutls_sign_get_hash_algorithm;
+       gnutls_sign_algorithm_get;
 } GNUTLS_3_0_0;
 
 GNUTLS_PRIVATE {