]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add assert on crypto_pk_write_private_key,and macros to make sure we have real keys
authorNick Mathewson <nickm@torproject.org>
Sun, 25 Apr 2004 19:21:44 +0000 (19:21 +0000)
committerNick Mathewson <nickm@torproject.org>
Sun, 25 Apr 2004 19:21:44 +0000 (19:21 +0000)
svn:r1694

src/common/crypto.c

index 8b2268cf7f20a207a92295861821a095b591c285..e035cc6676bd31b93931a21b939c245342438e3b 100644 (file)
@@ -53,6 +53,9 @@
 #define RETURN_SSL_OUTCOME(exp) return !(exp)
 #endif
 
+#define PUBLIC_KEY_OK(k) ((k) && (k)->key && (k)->key->n)
+#define PRIVATE_KEY_OK(k) ((k) && (k)->key && (k)->key->p)
+
 struct crypto_pk_env_t
 {
   int refs; /* reference counting; so we don't have to copy keys */
@@ -373,6 +376,8 @@ crypto_pk_write_private_key_to_filename(crypto_pk_env_t *env,
   char *s;
   int r;
 
+  assert(PRIVATE_KEY_OK(env));
+
   if (!(bio = BIO_new(BIO_s_mem())))
     return -1;
   if (PEM_write_bio_RSAPrivateKey(bio, env->key, NULL,NULL,0,NULL,NULL)