Signing data
To prove that some data has come from someone we trust, it can be signed. Actually, you don't sign the data itself; instead, you sign a hash of the data. We will use the SHA256 algorithm for generating the hash, combined with the RSA algorithm for signing the hash.
We could use DSA for both hashing and signing. DSA is faster than RSA for generating a signature, but it is slower than RSA for validating a signature. Since a signature is generated once, but validated many times, it's best to have faster validation than generation.
Note
The RSA algorithm is based on factorization of large integers, compared to the DSA algorithm, which is based on the discrete logarithm calculation. You can read more at the following link:http://mathworld.wolfram.com/RSAEncryption.html
Signing with SHA256 and RSA
In the CryptographyLib
class library project, add the following code to the Protector
class:
public static string PublicKey; public static string ToXmlStringExt(this RSA rsa, bool includePrivateParameters...