diff --git a/lib/modules/Crypto/dsa.pike b/lib/modules/Crypto/dsa.pike
index 05cb9faec21e31eb7cd7d482160d6d0a4e102dbc..a773cae6e29d7f09013f2058a2642f656b688dad 100644
--- a/lib/modules/Crypto/dsa.pike
+++ b/lib/modules/Crypto/dsa.pike
@@ -260,4 +260,7 @@ object generate_key()
   return this_object();
 }
 
-
+int public_key_equal (object dsa)
+{
+  return p == dsa->p && q == dsa->q && g == dsa->g && y == dsa->y;
+}
diff --git a/lib/modules/Crypto/rsa.pike b/lib/modules/Crypto/rsa.pike
index b7bf355c0d967bfee09c517a646fdefcf55d757a..7447b1684a373e52d4ca1f72ed4b5ec884566349 100644
--- a/lib/modules/Crypto/rsa.pike
+++ b/lib/modules/Crypto/rsa.pike
@@ -1,4 +1,4 @@
-/* $Id: rsa.pike,v 1.15 1999/03/03 13:51:33 nisse Exp $
+/* $Id: rsa.pike,v 1.16 1999/06/08 02:55:17 mast Exp $
  *
  * Follow the PKCS#1 standard for padding and encryption.
  */
@@ -227,3 +227,8 @@ string crypt_block(string s)
 }
 
 int rsa_size() { return n->size(); }
+
+int public_key_equal (object rsa)
+{
+  return n == rsa->n && e == rsa->e;
+}