public void TestDecrypt(string signed) { string subDir = "bson_session"; if (!string.IsNullOrWhiteSpace(signed)) { subDir = "signed_" + subDir; } else { publicKeyVerifier = publicKeyVerifier.SafeDispose(); } var subPath = Util.TestDataPath(TEST_DATA, subDir, "unofficial"); var sessionMaterialInput = (WebBase64)File.ReadAllLines(Path.Combine(subPath, "session.out")).First(); var sessionCiphertextInput = (WebBase64)File.ReadAllLines(Path.Combine(subPath, "ciphertext.out")).First(); using ( var sessionCrypter = new SessionCrypter(privateKeyDecrypter, sessionMaterialInput, publicKeyVerifier, new BsonSessionKeyPacker())) { var plaintext = sessionCrypter.Decrypt(sessionCiphertextInput); Expect(plaintext, Is.EqualTo(input)); } }
public void PublicVerifyAttached() { var path = TestData(Location); using (var verifier = new AttachedVerifier(path + ".public")) { var primarySignature = (WebBase64) File.ReadAllLines(Path.Combine(path, "2.attached")).First(); Expect(verifier.Verify(primarySignature), Is.True); } }
public void PublicVerifyAttachedSecret() { var path = TestData(Location); using (var verifier = new AttachedVerifier(path + ".public")) { var primarySignature = (WebBase64) File.ReadAllLines(Path.Combine(path, "2.secret.attached")).First(); Expect(verifier.Verify(primarySignature, Keyczar.Keyczar.RawStringEncoding.GetBytes("secret")), Is.True); } }
public void VerifyAttached() { var path = TestData(Location); using (var verifier = new AttachedVerifier(path)) { var primarySignature = (WebBase64)File.ReadAllLines(Path.Combine(path, "2.attached")).First(); Expect(verifier.Verify(primarySignature), Is.True); } }
public void VerifyAttachedSecret() { var path = TestData(Location); using (var verifier = new AttachedVerifier(path)) { var primarySignature = (WebBase64)File.ReadAllLines(Path.Combine(path, "2.secret.attached")).First(); Expect(verifier.Verify(primarySignature, Keyczar.Keyczar.RawStringEncoding.GetBytes("secret")), Is.True); } }
public void VerifyAttachedStrictFail() { var path = TestData("java-junk-dsa"); using (var verifier = new AttachedVerifier(path)) { verifier.Config.StrictDsaVerification = true; var primarySignature = (WebBase64)File.ReadAllLines(Path.Combine(path, "2.attached")).First(); Expect(verifier.Verify(primarySignature), Is.False); } }
public void TestSignAndVerify(String subDir, string nestDir) { var subPath = Util.TestDataPath(TEST_DATA, subDir, nestDir); using (var signer = new AttachedSigner(subPath)) using (var verifier = new AttachedVerifier(subPath)) { var signedoutput = signer.Sign(input); Expect(signer.Verify(signedoutput), Is.True); Expect(verifier.Verify(signedoutput), Is.True); } }
public void TestSignAndVerifyMessageBad(String subDir, string nestDir) { var subPath = Util.TestDataPath(TEST_DATA, subDir, nestDir); using (var signer = new AttachedSigner(subPath)) using (var verifier = new AttachedVerifier(subPath)) { var signedoutput = signer.Sign(input); var badoutput = signedoutput.ToBytes(); badoutput[10] ^= 9; Expect(() => signer.VerifiedMessage(badoutput), Throws.InstanceOf <InvalidCryptoDataException>()); Expect(() => verifier.VerifiedMessage(badoutput), Throws.InstanceOf <InvalidCryptoDataException>()); } }
public void TestSignAndVerifyBad(String subDir, string nestDir) { var subPath = Util.TestDataPath(TEST_DATA, subDir, nestDir); using (var signer = new AttachedSigner(subPath)) using (var verifier = new AttachedVerifier(subPath)) { var signedoutput = signer.Sign(input); var badoutput = signedoutput.ToBytes(); badoutput[10] ^= 9; Expect(signer.Verify(badoutput), Is.False); Expect(verifier.Verify(badoutput), Is.False); } }
public void DecryptSignedSession() { var path = TestData(Location); var signpath = TestData(SignLocation); var material = (WebBase64)File.ReadAllLines(Path.Combine(path, "2.signedsession.material")).First(); var ciphertext = (WebBase64)File.ReadAllLines(Path.Combine(path, "2.signedsession.ciphertext")).First(); using (var crypter = new Crypter(path)) using (var verifier = new AttachedVerifier(signpath)) using (var sessionCrypter = new SessionCrypter(crypter, material, verifier)) { var decrypted = sessionCrypter.Decrypt(ciphertext); Expect(decrypted, Is.EqualTo(Input)); } }
public void DecryptSignedSession() { var path = TestData(Location); var signpath = TestData(SignLocation); var material = (WebBase64) File.ReadAllLines(Path.Combine(path, "2.signedsession.material")).First(); var ciphertext = (WebBase64) File.ReadAllLines(Path.Combine(path, "2.signedsession.ciphertext")).First(); using (var crypter = new Crypter(path)) using (var verifier = new AttachedVerifier(signpath)) using (var sessionCrypter = new SessionCrypter(crypter, material, verifier)) { var decrypted = sessionCrypter.Decrypt(ciphertext); Expect(decrypted, Is.EqualTo(Input)); } }
public void TestSignAndTryVerifyMessageBad(String subDir, string nestDir) { var subPath = Util.TestDataPath(TEST_DATA, subDir, nestDir); using (var signer = new AttachedSigner(subPath)) using (var verifier = new AttachedVerifier(subPath)) { var signedoutput = signer.Sign(input); byte[] verifiedOutput; byte[] verifiedOutput2; var badoutput = signedoutput.ToBytes(); badoutput[10] ^= 9; Expect(signer.TryGetVerifiedMessage(badoutput, out verifiedOutput), Is.False); Expect(verifier.TryGetVerifiedMessage(badoutput, out verifiedOutput2), Is.False); } }
public void TestSignAndVerifyShort(String subDir, string nestDir) { var subPath = Util.TestDataPath(TEST_DATA, subDir, nestDir); using (var signer = new AttachedSigner(subPath)) using (var verifier = new AttachedVerifier(subPath)) { var signedoutput = signer.Sign(input); var badoutput = signedoutput.ToBytes(); badoutput[10] ^= 9; var badlength = new byte[12]; Array.Copy(badoutput, badlength, badlength.Length); Expect(() => signer.Verify(badlength), Throws.InstanceOf <InvalidCryptoDataException>()); Expect(() => verifier.Verify(badlength), Throws.InstanceOf <InvalidCryptoDataException>()); } }
public void TwoKeysWithSameHashTimeoutAttachedVerify(string dir) { var subPath = Util.TestDataPath(TEST_DATA, dir); using (var verifier = new AttachedVerifier(subPath)) { var activeSignature = (WebBase64)File.ReadAllLines(Path.Combine(subPath, "1.attached")).First(); var primarySignature = (WebBase64)File.ReadAllLines(Path.Combine(subPath, "2.attached")).First(); string activeVerifiedMessage; var activeVerify = verifier.TryGetVerifiedMessage(activeSignature, out activeVerifiedMessage); Expect(activeVerify, Is.True); Expect(activeVerifiedMessage, Is.EqualTo(input)); string primaryVerifiedMessage; var primaryVerify = verifier.TryGetVerifiedMessage(primarySignature, out primaryVerifiedMessage); Expect(primaryVerify, Is.True); Expect(primaryVerifiedMessage, Is.EqualTo(input)); } }
public void TestSignAndTryVerifyMessage(String subDir, string nestDir) { var subPath = Util.TestDataPath(TEST_DATA, subDir, nestDir); using (var signer = new AttachedSigner(subPath)) using (var verifier = new AttachedVerifier(subPath)) { var signedoutput = signer.Sign(input); string verifiedOutput; string verifiedOutput2; Expect(signer.TryGetVerifiedMessage(signedoutput, out verifiedOutput), Is.True); Expect(verifier.TryGetVerifiedMessage(signedoutput, out verifiedOutput2), Is.True); Expect(verifiedOutput, Is.EqualTo(input)); Expect(verifiedOutput2, Is.EqualTo(input)); } }
public void TestDecrypt(string signed) { string subDir = "bson_session"; if (!string.IsNullOrWhiteSpace(signed)) { subDir = "signed_" + subDir; } else { publicKeyVerifier = publicKeyVerifier.SafeDispose(); } var subPath = Util.TestDataPath(TEST_DATA, subDir, "unofficial"); var sessionMaterialInput = (WebBase64) File.ReadAllLines(Path.Combine(subPath, "session.out")).First(); var sessionCiphertextInput = (WebBase64) File.ReadAllLines(Path.Combine(subPath, "ciphertext.out")).First(); using ( var sessionCrypter = new SessionCrypter(privateKeyDecrypter, sessionMaterialInput, publicKeyVerifier, new BsonSessionKeyPacker())) { var plaintext = sessionCrypter.Decrypt(sessionCiphertextInput); Expect(plaintext, Is.EqualTo(input)); } }
public void TestSignAndVerifyMessageBad(String subDir, string nestDir) { var subPath = Util.TestDataPath(TEST_DATA, subDir, nestDir); using (var signer = new AttachedSigner(subPath)) using (var verifier = new AttachedVerifier(subPath)) { var signedoutput = signer.Sign(input); var badoutput = signedoutput.ToBytes(); badoutput[10] ^= 9; Expect(() => signer.VerifiedMessage(badoutput), Throws.InstanceOf<InvalidCryptoDataException>()); Expect(() => verifier.VerifiedMessage(badoutput), Throws.InstanceOf<InvalidCryptoDataException>()); } }
public void TestSignAndVerifyShort(String subDir, string nestDir) { var subPath = Util.TestDataPath(TEST_DATA, subDir, nestDir); using (var signer = new AttachedSigner(subPath)) using (var verifier = new AttachedVerifier(subPath)) { var signedoutput = signer.Sign(input); var badoutput = signedoutput.ToBytes(); badoutput[10] ^= 9; var badlength = new byte[12]; Array.Copy(badoutput, badlength, badlength.Length); Expect(() => signer.Verify(badlength), Throws.InstanceOf<InvalidCryptoDataException>()); Expect(() => verifier.Verify(badlength), Throws.InstanceOf<InvalidCryptoDataException>()); } }
public void Setup() { privateKeyDecrypter = new Crypter(Util.TestDataPath(TEST_DATA, "rsa")); publicKeyVerifier = new AttachedVerifier(Util.TestDataPath(TEST_DATA, "dsa.public")); }