diff options
Diffstat (limited to 'DistributedPasswordCracker.Server/Models/UserInfo.cs')
-rw-r--r-- | DistributedPasswordCracker.Server/Models/UserInfo.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/DistributedPasswordCracker.Server/Models/UserInfo.cs b/DistributedPasswordCracker.Server/Models/UserInfo.cs new file mode 100644 index 0000000..b4df9e2 --- /dev/null +++ b/DistributedPasswordCracker.Server/Models/UserInfo.cs @@ -0,0 +1,38 @@ +using System; + +namespace DistributedPasswordCracker.Server.Models +{ + /// <summary> + /// username + encrypted password. + /// In the password file we store username + encrypted password. + /// The encrypted password is a byte array (cannot be written to the password file) + /// This must be Base64 encoded (converted to a string) before written to the file + /// </summary> + [Serializable] + class UserInfo + { + public String Username { get; set; } + public String EntryptedPasswordBase64 { get; set; } + public byte[] EntryptedPassword { get; set; } + + public UserInfo(String username, String entryptedPasswordBase64) + { + if (username == null) + { + throw new ArgumentNullException("username"); + } + if (entryptedPasswordBase64 == null) + { + throw new ArgumentNullException("entryptedPasswordBase64"); + } + Username = username; + EntryptedPasswordBase64 = entryptedPasswordBase64; + EntryptedPassword = Convert.FromBase64String(entryptedPasswordBase64); + } + + public override string ToString() + { + return Username + ":" + EntryptedPasswordBase64; + } + } +}
\ No newline at end of file |