public void EncryptMultipleKeys() { #region Arrange var alice = EllipticCurveCryptographer.CreateKeyPair(true); var bob = EllipticCurveCryptographer.CreateKeyPair(true); var guenther = EllipticCurveCryptographer.CreateKeyPair(true); var paramter = new HybridEncryption.EncryptionParameter() { PublicKeys = new[] { alice, bob, guenther } }; #endregion #region Act using (var input = File.OpenRead(this.InputFile)) using (var output = File.Create(this.OutputFile)) { HybridEncryption.Encrypt(input, output, paramter); } #endregion #region Assert Assert.That(FileOperation.HasFileSignature(this.OutputFile), "HasFileSignature"); Assert.Pass("No Exception occur"); #endregion }
public void EncryptIsCanceled() { #region Arrange var alice = EllipticCurveCryptographer.CreateKeyPair(true); var progressValues = new List <double>(); var multiplier = 10; var paramter = new HybridEncryption.EncryptionParameter() { PublicKeys = new[] { alice }, Progress = d => progressValues.Add(d), IsCanceled = () => true, }; #endregion #region Act using (var input = new MemoryStream(new byte[SymmetricEncryption.BufferSize * multiplier])) using (var output = File.Create(this.OutputFile)) { HybridEncryption.Encrypt(input, output, paramter); } #endregion #region Assert Assert.That(progressValues.Count, Is.EqualTo(0)); #endregion }
public void HybridEncryption_FilePath() { var myPrivateKeyJson = @" { ""PrivateKey"":""NquxhQX9cmWkyDulDIm6OEzty5roXQHApdJInL4gPQbmkXqrVBHhkA=="", ""PublicKey"":{ ""Qx"":""tS37fNpfdy5diNusCoalxUn0HOdjqJk2OybUA9jy8HnzCSg0rFi3bA=="", ""Qy"":""sYIRXtP1j3tspMyJOeuCDdG4Ifm3DKC+yIHOFyLUTt8R4z0OxWpLqg=="" }, ""InculdePrivateKey"":true } "; var myPrivateKey = EcKeyPair.FromJson(myPrivateKeyJson); var bobPublicAns1Key = EcKeyPair.CreateFromAnsi(Convert.FromBase64String("BFEECnHOtY1L3He8vwsH0ahiDZZzavjxZzciXYXrzaNP1Zn/x1sL+4lvOpktdaZSjgWH/X2JI1rAqBVl7NO3R0UWJ4WtKnrGa5IhSiW0oC7s2lU=")); File.WriteAllText(this.InputFile, "My Stuff"); var encryptionParameter = new HybridEncryption.EncryptionParameter { PublicKeys = new[] { myPrivateKey.ExportPublicKey(), bobPublicAns1Key.ExportPublicKey() }, }; HybridEncryption.Encrypt(this.InputFile, this.EncryptedFile, encryptionParameter); var decryptionParameter = new HybridEncryption.DecryptionParameter { PrivateKey = myPrivateKey, }; var info = HybridEncryption.Decrypt(this.EncryptedFile, this.PlainFile, decryptionParameter); Console.Out.WriteLine(info.FileName); Console.Out.WriteLine(File.ReadAllText(this.PlainFile)); }
public void EncryptMultipleKeys() { #region Arrange var ecKeyPairInfos = Encryption.NitroKey.EllipticCurveCryptographer.GetEcKeyPairInfos(); var encryptionParameter = new HybridEncryption.EncryptionParameter { PublicKeys = ecKeyPairInfos.Select(info => info.PublicKey.ExportPublicKey()), }; #endregion #region Act using (var input = File.OpenRead(this.InputFile)) using (var output = File.Create(this.OutputFile)) { HybridEncryption.Encrypt(input, output, encryptionParameter); } #endregion #region Assert Assert.That(FileOperation.HasFileSignature(this.OutputFile), "HasFileSignature"); Assert.Pass("No Exception occur"); #endregion }
public void EncryptAndDecrypt() { #region Arrange var alice = EllipticCurveCryptographer.CreateKeyPair(true); var encryptionParameter = new HybridEncryption.EncryptionParameter() { PublicKeys = new[] { alice.ExportPublicKey() }, }; var decryptionParameter = new HybridEncryption.DecryptionParameter() { PrivateKey = alice, }; #endregion #region Act using (var input = File.OpenRead(this.InputFile)) using (var output = File.Create(this.OutputFile)) { HybridEncryption.Encrypt(input, output, encryptionParameter); } using (var input = File.OpenRead(this.OutputFile)) using (var output = File.Create(this.ResultFile)) { HybridEncryption.Decrypt(input, output, decryptionParameter); } #endregion #region Assert var inputData = File.ReadAllBytes(this.InputFile); var outputData = File.ReadAllBytes(this.OutputFile); var resultData = File.ReadAllBytes(this.ResultFile); Assert.That(FileOperation.HasFileSignature(this.OutputFile), "HasFileSignature"); Assert.That(inputData.Length, Is.LessThan(outputData.Length), "Input file is smaller than output file"); Assert.That(outputData, Is.Not.EquivalentTo(resultData), "Encrypted file is not equal to plain file"); Assert.That(inputData.Length, Is.EqualTo(resultData.Length), "size of plain file is equal to encrypted file"); Assert.That(inputData, Is.EquivalentTo(resultData), "plain file is equal to encrypted file"); #endregion }
public void EncryptAndDecryptMultipleKeys() { #region Arrange var ecKeyPairInfos = Encryption.NitroKey.EllipticCurveCryptographer.GetEcKeyPairInfos().First(); var encryptionParameter = new HybridEncryption.EncryptionParameter() { PublicKeys = new[] { ecKeyPairInfos.PublicKey.ExportPublicKey() } }; var decrptionParameter = new HybridEncryption.DecryptionParameter { Password = Constants.TestPin }; #endregion #region Act using (var input = File.OpenRead(this.InputFile)) using (var output = File.Create(this.OutputFile)) { HybridEncryption.Encrypt(input, output, encryptionParameter); } using (var input = File.OpenRead(this.OutputFile)) using (var output = File.Create(this.ResultFile)) { HybridEncryption.Decrypt(input, output, decrptionParameter); } #endregion #region Assert var inputData = File.ReadAllBytes(this.InputFile); var outputData = File.ReadAllBytes(this.OutputFile); var resultData = File.ReadAllBytes(this.ResultFile); Assert.That(inputData.Length, Is.LessThan(outputData.Length), "Input file is smaller than output file"); Assert.That(outputData, Is.Not.EquivalentTo(resultData), "Encrypted file is not equal to plain file"); Assert.That(FileOperation.HasFileSignature(this.OutputFile), "HasFileSignature"); Assert.That(inputData.Length, Is.EqualTo(resultData.Length), "size of plain file is equal to encrypted file"); Assert.That(inputData, Is.EquivalentTo(resultData), "plain file is equal to encrypted file"); #endregion }
public void EncryptAndDecryptWithFilename() { #region Arrange var alice = EllipticCurveCryptographer.CreateKeyPair(true); var encryptionParameter = new HybridEncryption.EncryptionParameter() { PublicKeys = new[] { alice.ExportPublicKey() }, Filename = Guid.NewGuid().ToString(), }; var decryptionParameter = new HybridEncryption.DecryptionParameter() { PrivateKey = alice, }; #endregion #region Act using (var input = File.OpenRead(this.InputFile)) using (var output = File.Create(this.OutputFile)) { HybridEncryption.Encrypt(input, output, encryptionParameter); } DecryptInfo info; using (var input = File.OpenRead(this.OutputFile)) using (var output = File.Create(this.ResultFile)) { info = HybridEncryption.Decrypt(input, output, decryptionParameter); } #endregion #region Assert Assert.That(encryptionParameter.Filename, Is.EqualTo(info.FileName), "is decrypted filename equal to input filename"); #endregion }