private byte[] sign(byte[] message)
{
if (certificate.PrivateKey == null)
{
throw new Exception("a private key is required when generating RSA-SHA1 signatures.");
}
using (HashAlgorithm hasher = HashAlgorithm.Create("SHA1"))
{
RSAPKCS1SignatureFormatter signatureFormatter = new RSAPKCS1SignatureFormatter();
signatureFormatter.SetKey(certificate.PrivateKey);
signatureFormatter.SetHashAlgorithm("SHA1");
byte[] hash = hasher.ComputeHash(message);
return signatureFormatter.CreateSignature(hash);
}
}