gnome-keyring r1382 - in trunk: . daemon/pkix
- From: nnielsen svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-keyring r1382 - in trunk: . daemon/pkix
- Date: Fri, 12 Dec 2008 00:31:50 +0000 (UTC)
Author: nnielsen
Date: Fri Dec 12 00:31:49 2008
New Revision: 1382
URL: http://svn.gnome.org/viewvc/gnome-keyring?rev=1382&view=rev
Log:
* daemon/pkix/gkr-pkix-asn1.c:
* daemon/pkix/gkr-pkix-asn1.h:
* daemon/pkix/gkr-pkix-der.c: Only allocate secure memory
for secret key MPIs.
Modified:
trunk/ChangeLog
trunk/daemon/pkix/gkr-pkix-asn1.c
trunk/daemon/pkix/gkr-pkix-asn1.h
trunk/daemon/pkix/gkr-pkix-der.c
Modified: trunk/daemon/pkix/gkr-pkix-asn1.c
==============================================================================
--- trunk/daemon/pkix/gkr-pkix-asn1.c (original)
+++ trunk/daemon/pkix/gkr-pkix-asn1.c Fri Dec 12 00:31:49 2008
@@ -378,6 +378,26 @@
gsize sz;
guchar *buf;
+ buf = gkr_pkix_asn1_read_value (asn, part, &sz, (GkrBufferAllocator)g_realloc);
+ if (!buf)
+ return FALSE;
+
+ gcry = gcry_mpi_scan (mpi, GCRYMPI_FMT_STD, buf, sz, &sz);
+ g_free (buf);
+
+ if (gcry != 0)
+ return FALSE;
+
+ return TRUE;
+}
+
+gboolean
+gkr_pkix_asn1_read_secure_mpi (ASN1_TYPE asn, const gchar *part, gcry_mpi_t *mpi)
+{
+ gcry_error_t gcry;
+ gsize sz;
+ guchar *buf;
+
buf = gkr_pkix_asn1_read_value (asn, part, &sz, gkr_secure_realloc);
if (!buf)
return FALSE;
Modified: trunk/daemon/pkix/gkr-pkix-asn1.h
==============================================================================
--- trunk/daemon/pkix/gkr-pkix-asn1.h (original)
+++ trunk/daemon/pkix/gkr-pkix-asn1.h Fri Dec 12 00:31:49 2008
@@ -67,6 +67,9 @@
gboolean gkr_pkix_asn1_read_mpi (ASN1_TYPE asn, const gchar *part,
gcry_mpi_t *mpi);
+gboolean gkr_pkix_asn1_read_secure_mpi (ASN1_TYPE asn, const gchar *part,
+ gcry_mpi_t *mpi);
+
gboolean gkr_pkix_asn1_write_mpi (ASN1_TYPE asn, const gchar *part,
gcry_mpi_t mpi);
Modified: trunk/daemon/pkix/gkr-pkix-der.c
==============================================================================
--- trunk/daemon/pkix/gkr-pkix-der.c (original)
+++ trunk/daemon/pkix/gkr-pkix-der.c Fri Dec 12 00:31:49 2008
@@ -190,12 +190,12 @@
goto done;
}
- if (!gkr_pkix_asn1_read_mpi (asn, "modulus", &n) ||
- !gkr_pkix_asn1_read_mpi (asn, "publicExponent", &e) ||
- !gkr_pkix_asn1_read_mpi (asn, "privateExponent", &d) ||
- !gkr_pkix_asn1_read_mpi (asn, "prime1", &p) ||
- !gkr_pkix_asn1_read_mpi (asn, "prime2", &q) ||
- !gkr_pkix_asn1_read_mpi (asn, "coefficient", &u))
+ if (!gkr_pkix_asn1_read_secure_mpi (asn, "modulus", &n) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "publicExponent", &e) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "privateExponent", &d) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "prime1", &p) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "prime2", &q) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "coefficient", &u))
goto done;
/* Fix up the incoming key so gcrypt likes it */
@@ -360,11 +360,11 @@
ret = GKR_PKIX_FAILURE;
- if (!gkr_pkix_asn1_read_mpi (asn, "p", &p) ||
- !gkr_pkix_asn1_read_mpi (asn, "q", &q) ||
- !gkr_pkix_asn1_read_mpi (asn, "g", &g) ||
- !gkr_pkix_asn1_read_mpi (asn, "Y", &y) ||
- !gkr_pkix_asn1_read_mpi (asn, "priv", &x))
+ if (!gkr_pkix_asn1_read_secure_mpi (asn, "p", &p) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "q", &q) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "g", &g) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "Y", &y) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn, "priv", &x))
goto done;
res = gcry_sexp_build (s_key, NULL, SEXP_PRIVATE_DSA, p, q, g, y, x);
@@ -409,12 +409,12 @@
ret = GKR_PKIX_FAILURE;
- if (!gkr_pkix_asn1_read_mpi (asn_params, "p", &p) ||
- !gkr_pkix_asn1_read_mpi (asn_params, "q", &q) ||
- !gkr_pkix_asn1_read_mpi (asn_params, "g", &g))
+ if (!gkr_pkix_asn1_read_secure_mpi (asn_params, "p", &p) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn_params, "q", &q) ||
+ !gkr_pkix_asn1_read_secure_mpi (asn_params, "g", &g))
goto done;
- if (!gkr_pkix_asn1_read_mpi (asn_key, "", &x))
+ if (!gkr_pkix_asn1_read_secure_mpi (asn_key, "", &x))
goto done;
/* Now we calculate y */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]