]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
some minor fixes and cleanups.
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 5 Dec 2003 09:25:12 +0000 (09:25 +0000)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 5 Dec 2003 09:25:12 +0000 (09:25 +0000)
doc/TODO
doc/tex/ciphers.tex
lib/gnutls_dh_primes.c
lib/gnutls_mpi.c
src/prime.c

index eef9007e1bd331a1ba95afb423b6fdc1acd0c762..05308a026c1bc6d63979fdd2b58339c3b2959edd 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -11,6 +11,9 @@ Current list:
 * Add gnutls_openpgp_key_get_key_usage().
 * Use subkeys with the 0x20 flag in openpgp keys (if present),
   instead of the main key.
+* Add function to extract the signers of an openpgp key. Should
+  be similar to gnutls_x509_crt_get_dn_oid().
+* Add function to verify an openpgp key against a plain key.
 * Add support for generating and handling DSA keys
 * Add support for extracting CRL distribution points.
 * Add support for generating CRLs.
index 3e2f6f66e0bf58d751b3ca89a8a5a626ccad0d08..0cb46e9916dc6d5b953ce3b8d51267df7f41e761 100644 (file)
@@ -47,10 +47,14 @@ supported in TLS.
 \begin{tabular}{|l|p{9cm}|}
 
 \hline
-MAC\_MD5 & MD5 is a hash algorithm by Ron Rivest. Outputs 128 bits of data.
+MAC\_MD5 & MD5 is a cryptographic hash algorithm designed by Ron Rivest. Outputs 128 bits of data.
 \\
 \hline
-MAC\_SHA & SHA is a hash algorithm by NSA. Outputs 160 bits of data.
+MAC\_SHA & SHA is a cryptographic hash algorithm designed by NSA. Outputs 160 bits of data.
+\\
+\hline
+MAC\_RMD160 & RIPEMD is a cryptographic hash algorithm developed in the framework
+of the EU project RIPE. Outputs 160 bits of data.
 \\
 \hline
 \end{tabular}
index 08c86f3ab12ea3d0dc2d6716d9672c0e291725ae..58d5c9bc1f467bfc19fc7dfd92708a062e361dcd 100644 (file)
@@ -86,9 +86,13 @@ int _gnutls_dh_generate_prime(GNUTLS_MPI * ret_g, GNUTLS_MPI * ret_n,
        /* Calculate the size of a prime factor of (prime-1)/2.
         * This is a bad emulation of Michael Wiener's table
         */
-        qbits = 120 + (((bits / 256) - 1) * 20);
-                if (qbits & 1)          /* better have an even number */
-                      qbits++;
+        if (bits < 256) qbits = bits/2;
+        else {
+               qbits = 120 + (((bits / 256) - 1) * 20);
+       }
+
+        if (qbits & 1)          /* better have an even number */
+               qbits++;
 
        /* find a prime number of size bits.
         */
@@ -122,7 +126,7 @@ int _gnutls_dh_generate_prime(GNUTLS_MPI * ret_g, GNUTLS_MPI * ret_n,
                result = GNUTLS_E_INTERNAL_ERROR;
                goto cleanup;
        }
-       
+
        gcry_prime_release_factors (factors); factors = NULL;
        
        if (ret_g)
@@ -244,11 +248,13 @@ void gnutls_dh_params_deinit(gnutls_dh_params dh_params)
   **/
 int gnutls_dh_params_generate2(gnutls_dh_params params, unsigned int bits)
 {
+int ret;
 
-       if (_gnutls_dh_generate_prime(&params->_generator, 
-               &params->_prime, bits) < 0) {
+       ret = _gnutls_dh_generate_prime(&params->_generator, 
+               &params->_prime, bits);
+       if (ret < 0) {
                gnutls_assert();
-               return GNUTLS_E_MEMORY_ERROR;
+               return ret;
        }
 
        return 0;
@@ -531,6 +537,13 @@ int gnutls_dh_params_export_raw(gnutls_dh_params params,
 
        size_t size;
 
+       if (params->_generator == NULL ||
+               params->_prime == NULL) 
+       {
+               gnutls_assert();
+               return GNUTLS_E_INVALID_REQUEST;
+       }
+       
        size = 0;
        _gnutls_mpi_print(NULL, &size, params->_generator);
 
index 337f396c94857d766c1d64f831d01dc2b24a8402..8dede9544669a56e040f645fb4ee2c8dc24d4c5b 100644 (file)
@@ -75,6 +75,8 @@ int _gnutls_mpi_print( void *buffer, size_t *nbytes, const GNUTLS_MPI a )
 {
 int ret;
 
+       if (nbytes == NULL || a == NULL) return GNUTLS_E_INVALID_REQUEST;
+
        ret = gcry_mpi_print( GCRYMPI_FMT_USG, buffer, *nbytes, nbytes, a);
        if (!ret) return ret;
        
@@ -86,6 +88,8 @@ int _gnutls_mpi_print_lz( void *buffer, size_t *nbytes, const GNUTLS_MPI a )
 {
 int ret;
 
+       if (nbytes == NULL || a == NULL) return GNUTLS_E_INVALID_REQUEST;
+
        ret = gcry_mpi_print( GCRYMPI_FMT_STD, buffer, *nbytes, nbytes, a);
        if (!ret) return ret;
        
index b035af261e048115d419f6f60b0ab4ce4b91cc58..72edcdf85c7acabfec7d88f882dcc25eea4e85c0 100644 (file)
@@ -38,6 +38,7 @@ static int cparams = 0;
 int generate_prime(int bits)
 {
        unsigned int i;
+       int ret;
        gnutls_dh_params dh_params;
        gnutls_datum p, g;
 
@@ -45,8 +46,19 @@ int generate_prime(int bits)
 
        fprintf(stderr, "Generating DH parameters...");
        
-       gnutls_dh_params_generate2( dh_params, bits);
-       gnutls_dh_params_export_raw( dh_params, &p, &g, NULL);
+       ret = gnutls_dh_params_generate2( dh_params, bits);
+       if (ret < 0) {
+               fprintf(stderr, "Error generating parameters: %s\n",
+                       gnutls_strerror(ret));
+               exit(1);
+       }
+
+       ret = gnutls_dh_params_export_raw( dh_params, &p, &g, NULL);
+       if (ret < 0) {
+               fprintf(stderr, "Error exporting parameters: %s\n",
+                       gnutls_strerror(ret));
+               exit(1);
+       }
 
        if (cparams) {