diff --git a/lib/modules/Crypto/rsa.pike b/lib/modules/Crypto/rsa.pike
index 35e21232e129e914fb99e869305ecb0bedda8f87..e40ba81ca78f5350686d7e76806b024d6274f8b2 100644
--- a/lib/modules/Crypto/rsa.pike
+++ b/lib/modules/Crypto/rsa.pike
@@ -1,4 +1,4 @@
-/* $Id: rsa.pike,v 1.9 1997/05/31 22:03:49 grubba Exp $
+/* $Id: rsa.pike,v 1.10 1997/08/26 08:22:03 nisse Exp $
  *
  * Follow the PKCS#1 standard for padding and encryption.
  * However, PKCS#1 style signing (involving ISO Object Identifiers) is
@@ -76,6 +76,17 @@ string rsa_unpad(bignum block, int type)
   return s[i+1..];
 }
 
+object sign(string message, program h, mixed|void r)
+{
+  return rsa_pad(pkcs.build_digestinfo(message, h()), 1, r)->powm(d, n);
+}
+
+int verify(string msg, program h, object sign)
+{
+  string s = pkcs.build_digestinfo(msg, h());
+  return s == rsa_unpad(sign->powm(e, n), 1);
+}
+
 string sha_sign(string message, mixed|void r)
 {
   object hash = Crypto.sha();