public void encryptDecryptTo(int n) { var msg = PrivateBox.RandomBytes(1024); var keys = new System.Collections.Generic.List <KeyPair>(); for (int i = 0; i < keys.Count; i++) { keys[i] = PublicKeyBox.GenerateKeyPair(); } var ctxt = PrivateBox.Multibox(msg, keys.Select(x => x.PublicKey).ToArray(), n); // a recipient key may open the message. foreach (var key in keys) { Assert.AreEqual(PrivateBox.MultiboxOpen(ctxt, key.PrivateKey, n), msg); } }
public void TestErrorsWhenMaxIsMoreThan255OrLessThan1() { var msg = "hello there!"; var ctxt = PrivateBox.Multibox(msg, new byte[][] { alice.PublicKey, bob.PublicKey }); var pk = alice.PublicKey; var sk = alice.PrivateKey; Assert.Catch(new TestDelegate(delegate { PrivateBox.Multibox(msg, new byte[][] { pk, pk, pk, pk }, -1); })); Assert.Catch(new TestDelegate(delegate { PrivateBox.MultiboxOpen(ctxt, sk, 256); })); Assert.Pass(); }
public void TestErrorsWhenTooManyRecipients() { var msg = "hello there!"; var pubKeys = new byte[][] { alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, alice.PublicKey, }; Assert.Catch(new TestDelegate(delegate { PrivateBox.Multibox(msg, pubKeys); })); }