public void TestSecureStringReader() { foreach (SecureString ss in MakeStrings()) { Assert.AreEqual(TEST_PASSWORD, SecureStringUtils.ToTextReader(ss).ReadToEnd()); StringBuilder sb = new StringBuilder(); using (TextReader r = SecureStringUtils.ToTextReader(ss)) { while (r.Peek() != -1) { sb.Append((char)r.Read()); int i = r.Read(); if (i != -1) { sb.Append((char)i); } } } Assert.AreEqual(TEST_PASSWORD, sb.ToString()); char[] buffer = new char[TEST_PASSWORD.Length]; using (TextReader r = new UnicodeReader(SecureStringUtils.ToStream(ss))) { for (int i = 0; i < buffer.Length; i++) { Assert.AreEqual(1, r.ReadBlock(buffer, i, buffer.Length - i)); } Assert.AreEqual(0, r.ReadBlock(buffer, 0, buffer.Length)); } Assert.AreEqual(TEST_PASSWORD, new string(buffer)); } }
public void TestSecureStringToStream() { byte[] expect = Encoding.Unicode.GetBytes(TEST_PASSWORD); foreach (SecureString ss in MakeStrings()) { Assert.AreEqual(expect, IOStream.ReadAllBytes(SecureStringUtils.ToStream(ss))); Assert.AreEqual(TEST_PASSWORD, IOStream.ReadAllText(SecureStringUtils.ToStream(ss), Encoding.Unicode)); } }