private void ExecuteRSAMessage(RSAMessage message) { if (message.RSAAction == RSAAction.Encrypt) { AreActiveRSAEncryptedData = true; } SetRSAStatus(message.RSAAction); }
public static RSAMessage Sign(PrivateKey privateKey, string message) { var hash = GetHash(message); var sigma = BigInteger.ModPow(new BigInteger(hash), privateKey.D, privateKey.N); var ret = new RSAMessage(message, sigma); return(ret); }
public static bool VrfyFile(PublicKey publicKey, StreamReader sr) { var str = sr.ReadToEnd(); var split = str.Split("@%@"); RSAMessage message = new RSAMessage(split[1], BigInteger.Parse(split[0])); return(Vrfy(publicKey, message)); }
public static bool Vrfy(PublicKey publicKey, RSAMessage message) { var hash = Signer.GetHash(message.Message); var hashCheck = BigInteger.ModPow(message.Sigma, publicKey.E, publicKey.N).ToByteArray(); var hashInt = new BigInteger(hash); var hashCheckInt = new BigInteger(hashCheck); return(hashInt.Equals(hashCheckInt)); }
private void ExecuteMessage(RSAMessage message) { switch (message.RSAAction) { case RSAAction.Generate: var bothKeyParameters = cryptographicService.GenerateKeyParameters(); privateAndPublicKeyParameters = bothKeyParameters.PrivateKeyParameters; publicKeyParameters = bothKeyParameters.PublicKeyParameters; IsActivePrivateKey = true; IsActivePublicKey = true; SetKeyParametersBase(); message.RSAAction = RSAAction.None; break; case RSAAction.OpenPrivateKey: privateAndPublicKeyParameters = rsaSerializationService.DeserializeKey(message.Path); IsActivePrivateKey = true; SetKeyParametersBase(); message.RSAAction = RSAAction.None; break; case RSAAction.OpenPublicKey: publicKeyParameters = rsaSerializationService.DeserializeKey(message.Path); IsActivePublicKey = true; SetKeyParametersBase(); message.RSAAction = RSAAction.None; break; case RSAAction.OpenEncryptedData: encryptedData = rsaSerializationService.Deserialize(message.Path); EncryptedText = Encoding.UTF8.GetString(encryptedData); AreActiveEncryptedData = true; SetKeyParametersBase(); message.RSAAction = RSAAction.None; break; case RSAAction.SavePublicKey: rsaSerializationService.SerializeKey(publicKeyParameters, message.Path); message.RSAAction = RSAAction.None; break; case RSAAction.SavePrivateAndPublicKey: rsaSerializationService.SerializeKey(privateAndPublicKeyParameters, message.Path); message.RSAAction = RSAAction.None; break; case RSAAction.SaveEncryptedData: rsaSerializationService.Serialize(encryptedData, message.Path); message.RSAAction = RSAAction.None; break; } }
public HashMessageDto(RSAMessage hash) { Message = hash.Message; Sigma = hash.Sigma.ToString(); }