summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2003-02-09 09:53:04 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2003-02-09 09:53:04 +0000
commit55399994cbc14d0f01e310d04b3f097e61bf436c (patch)
treee177bc9a080ffe7beecd93de128e1c4ecd919f78
parent52a2b840ea8770eadb9f49323e12a8acb4cf3dfc (diff)
downloadgnutls-55399994cbc14d0f01e310d04b3f097e61bf436c.tar.gz
fixes in pkcs3 DH parameter generation.
-rw-r--r--lib/gnutls_dh_primes.c5
-rw-r--r--src/prime.c24
2 files changed, 26 insertions, 3 deletions
diff --git a/lib/gnutls_dh_primes.c b/lib/gnutls_dh_primes.c
index 0c11f9c263..035320e37c 100644
--- a/lib/gnutls_dh_primes.c
+++ b/lib/gnutls_dh_primes.c
@@ -498,7 +498,7 @@ int gnutls_pkcs3_export_dh_params( const gnutls_datum * prime,
result = _gnutls_fbase64_encode("DH PARAMETERS",
tmp, len, &out);
-
+
if (result < 0) {
gnutls_assert();
return result;
@@ -509,7 +509,7 @@ int gnutls_pkcs3_export_dh_params( const gnutls_datum * prime,
return GNUTLS_E_INTERNAL_ERROR;
}
- if (result > *params_data_size) {
+ if (result + 1 > *params_data_size) {
gnutls_assert();
gnutls_free(out);
*params_data_size = result;
@@ -518,6 +518,7 @@ int gnutls_pkcs3_export_dh_params( const gnutls_datum * prime,
*params_data_size = result;
memcpy( params_data, out, result);
+ params_data[result] = 0;
gnutls_free( out);
}
diff --git a/src/prime.c b/src/prime.c
index 74b83bbb64..cf8ae07ae8 100644
--- a/src/prime.c
+++ b/src/prime.c
@@ -46,7 +46,7 @@ int main(int argc, char **argv)
gnutls_global_init();
- fprintf(stderr, "Generating prime...");
+ fprintf(stderr, "Generating DH parameters...");
gcry_control (GCRYCTL_SET_VERBOSITY, (int)0);
/* this is an emulation of Michael Wiener's table
@@ -80,6 +80,17 @@ int main(int argc, char **argv)
}
printf("\n};\n\n");
+ } else {
+ printf( "\nGenerator: ");
+
+ for (i=0;i<size;i++) {
+ if (i!=0 && i%12==0) printf("\n\t");
+ else if (i!=0 && i!=size-1) printf( ":");
+
+ printf( "%.2x", tmp1[i]);
+ }
+
+ printf("\n\n");
}
/* print prime */
@@ -103,6 +114,17 @@ int main(int argc, char **argv)
}
printf("\n};\n");
+ } else {
+ printf( "Prime: ");
+
+ for (i=0;i<size;i++) {
+ if (i!=0 && i%12==0) printf("\n\t");
+ else if (i!=0 && i!=size-1) printf( ":");
+ printf( "%.2x", tmp2[i]);
+ }
+
+ printf("\n\n");
+
}
if (!info.cparams) { /* generate a PKCS#3 structure */