SetKey() public method

public SetKey ( AsymmetricAlgorithm key ) : void
key AsymmetricAlgorithm
return void
Beispiel #1
0
 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);
     }
 }
		private byte[] CreateSignatureHash (string hashName) 
		{
			fmt = new RSAPKCS1SignatureFormatter ();

			// we need the private key 
			RSA rsa = RSA.Create ("Mono.Security.Cryptography.RSAManaged");	// only available with Mono::
			if (rsa == null) {
				rsa = RSA.Create ();
			}
			rsa.ImportParameters (AllTests.GetRsaKey (true));
			fmt.SetKey (rsa);

			HashAlgorithm hash = HashAlgorithm.Create (hashName);
			byte[] data = new byte [(hash.HashSize >> 3)];
			hash.ComputeHash (data);
			return fmt.CreateSignature (hash);
		}
		public void SetKeyRSA () 
		{
			fmt = new RSAPKCS1SignatureFormatter ();
			fmt.SetKey (rsa);
		}
		public void CreateSignatureRSABadHash () 
		{
			fmt = new RSAPKCS1SignatureFormatter ();
			// we need the private key 
			fmt.SetKey (rsa);
			// null (bad ;-)
			byte[] hash = null;
			byte[] signature  = fmt.CreateSignature (hash);
		}
		public void CreateSignatureHashMD5 () 
		{
			fmt = new RSAPKCS1SignatureFormatter ();
			byte[] data = new byte [16];
			// we need the private key 
			fmt.SetKey (rsa);
			// good MD5
			HashAlgorithm hash = MD5.Create ();
			hash.ComputeHash (data);
			byte[] signature = fmt.CreateSignature (hash);
			Assert.IsNotNull (signature);
		}
		public void CreateSignatureRSAMD5 () 
		{
			fmt = new RSAPKCS1SignatureFormatter ();
			// we need the private key 
			fmt.SetKey (rsa);
			// good MD5
			fmt.SetHashAlgorithm ("MD5");
			byte[] hash = new byte [16];
			byte[] signature = fmt.CreateSignature (hash);
			Assert.IsNotNull (fmt);
		}
		public void CreateSignatureRSASHA1BadLength () 
		{
			fmt = new RSAPKCS1SignatureFormatter ();
			// we need the private key 
			fmt.SetKey (rsa);
			// wrong length SHA1
			fmt.SetHashAlgorithm ("SHA1");
			byte[] hash = new byte [19];
			byte[] signature = fmt.CreateSignature (hash);
		}
		public void CreateSignatureNullHash () 
		{
			fmt = new RSAPKCS1SignatureFormatter ();
			fmt.SetKey (rsa);
			byte[] hash = null;
			byte[] signature = fmt.CreateSignature (hash);
		}
		public void SetKeyNull ()
		{
			fmt = new RSAPKCS1SignatureFormatter ();
			fmt.SetKey (null);
		}
Beispiel #10
0
		/// <summary>
		/// Signiert einen Text mit dem angegebenen privaten Schlüssel.
		/// </summary>
		/// <param name="textToSign">Der zusignierende Text.</param>
		/// <param name="privateKey">Der private Schlüssel.</param>
		/// <returns></returns>
		public static string Sign(string textToSign, string privateKey) {
			//Initialisieren der Provider
			var rsaCryptoServiceProvider = new RSACryptoServiceProvider();
			var rsaFormatter = new RSAPKCS1SignatureFormatter(rsaCryptoServiceProvider);
			System.Security.Cryptography.RSA rsa = System.Security.Cryptography.RSA.Create();
			var encoding = new ASCIIEncoding();
			var sha1 = new SHA1Managed();

			//Zuweisen des Hashalgorithmus und des privaten Schlüssels
			rsaFormatter.SetHashAlgorithm("SHA1");
			rsa.FromXmlString(privateKey);
			rsaFormatter.SetKey(rsa);

			//String nach Byte[] Konvertieren und die Signatur erstellen
			byte[] valueToHash = encoding.GetBytes(textToSign);
			byte[] signedValue = rsaFormatter.CreateSignature(sha1.ComputeHash(valueToHash));

			return Convert.ToBase64String(signedValue);
		}