public void constructor_with_string_should_initialize_instance( [Values("", "a", "ab", "abc")] string value) { var result = new PasswordEvidence(value); var decryptedPassword = new DecryptedSecureString(result.SecurePassword); decryptedPassword.GetChars().Should().Equal(value); }
public void SecurePassword_should_return_expected_result( [Values("", "a", "ab", "abc")] string value) { var subject = CreateSubject(value); var result = subject.SecurePassword; var decryptedPassword = new DecryptedSecureString(result); decryptedPassword.GetChars().Should().Equal(value); }
public void constructor_should_initialize_instance() { var secureString = new SecureString(); var result = new DecryptedSecureString(secureString); result._chars().Should().BeNull(); result._charsHandle().IsAllocated.Should().BeFalse(); result._charsIntPtr().Should().Be(IntPtr.Zero); result._disposed().Should().BeFalse(); result._secureString().Should().BeSameAs(secureString); result._utf8Bytes().Should().BeNull(); result._utf8BytesHandle().IsAllocated.Should().BeFalse(); }
private static string GetSignature(string stringToSign, SecureString secretAccessKey, string date, string region, string service) { using (var decryptedSecureString = new DecryptedSecureString(secretAccessKey)) { var aws4SecretAccessKeyChars = "AWS4".Concat(decryptedSecureString.GetChars()).ToArray(); var aws4SecretAccessKeyBytes = Encoding.ASCII.GetBytes(aws4SecretAccessKeyChars); var kDateBlock = Hmac256(aws4SecretAccessKeyBytes, Encoding.ASCII.GetBytes(date)); Array.Clear(aws4SecretAccessKeyChars, 0, aws4SecretAccessKeyChars.Length); Array.Clear(aws4SecretAccessKeyBytes, 0, aws4SecretAccessKeyBytes.Length); var kRegionBlock = Hmac256(kDateBlock, Encoding.ASCII.GetBytes(region)); var kServiceBlock = Hmac256(kRegionBlock, Encoding.ASCII.GetBytes(service)); var kSigningBlock = Hmac256(kServiceBlock, Encoding.ASCII.GetBytes("aws4_request")); return(BsonUtils.ToHexString(Hmac256(kSigningBlock, Encoding.ASCII.GetBytes(stringToSign)))); } }
// private methods private bool Equals(SecureString x, SecureString y) { if (object.ReferenceEquals(x, y)) { return(true); } if (object.ReferenceEquals(x, null) || object.ReferenceEquals(y, null)) { return(false); } using (var dx = new DecryptedSecureString(x)) using (var dy = new DecryptedSecureString(y)) { var xchars = dx.GetChars(); var ychars = dy.GetChars(); return(Equals(xchars, ychars)); } }
public static GCHandle _utf8BytesHandle(this DecryptedSecureString obj) { var fieldInfo = typeof(DecryptedSecureString).GetField("_utf8BytesHandle", BindingFlags.NonPublic | BindingFlags.Instance); return((GCHandle)fieldInfo.GetValue(obj)); }
public static byte[] _utf8Bytes(this DecryptedSecureString obj) { var fieldInfo = typeof(DecryptedSecureString).GetField("_utf8Bytes", BindingFlags.NonPublic | BindingFlags.Instance); return((byte[])fieldInfo.GetValue(obj)); }
public static SecureString _secureString(this DecryptedSecureString obj) { var fieldInfo = typeof(DecryptedSecureString).GetField("_secureString", BindingFlags.NonPublic | BindingFlags.Instance); return((SecureString)fieldInfo.GetValue(obj)); }
public static bool _disposed(this DecryptedSecureString obj) { var fieldInfo = typeof(DecryptedSecureString).GetField("_disposed", BindingFlags.NonPublic | BindingFlags.Instance); return((bool)fieldInfo.GetValue(obj)); }
public static IntPtr _charsIntPtr(this DecryptedSecureString obj) { var fieldInfo = typeof(DecryptedSecureString).GetField("_charsIntPtr", BindingFlags.NonPublic | BindingFlags.Instance); return((IntPtr)fieldInfo.GetValue(obj)); }