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();