Guest User

Untitled

a guest
Feb 12th, 2016
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. public class Account extends Saveable {
  2. @Expose
  3. private String id, capeURL;
  4. @Expose
  5. private boolean premium;
  6. @Expose
  7. private HashMap<String, UserStatus> relationships = new HashMap<String, UserStatus>();
  8. @Expose
  9. private HashMap<String, String> aliases = new HashMap<String, String>();
  10. private String loginUser, loginPass, display;
  11. @Expose
  12. private String cryptoUser, cryptoPass, cryptoDisplay;
  13.  
  14. /**
  15. * Constructor for loading from text AES encrypted text file.
  16. *
  17. * @param id
  18. */
  19. public Account(String id) {
  20. this.id = id;
  21. setFolderType(SubFolder.Alt);
  22. load();
  23. }
  24.  
  25. /**
  26. * Constructor for initially creating the alt.
  27. *
  28. * @param loginUser
  29. * @param loginPass
  30. */
  31. public Account(String loginUser, String loginPass) {
  32. this.loginUser = loginUser;
  33. this.loginPass = loginPass;
  34. display = loginUser;
  35. premium = true;
  36. id = (loginUser.contains("@")) ? loginUser.substring(0, loginUser.indexOf("@")) : loginUser;
  37. updateCrypto();
  38. setFolderType(SubFolder.Alt);
  39. }
  40.  
  41. /**
  42. * Loads non-saved values by running the encrypted saved values back through
  43. * AES.
  44. */
  45. @Override
  46. public Saveable load() {
  47. Account loaded = (Account) super.load();
  48. try {
  49. id = loaded.getID();
  50. loginUser = Crypto.decrypt(getSecret(), loaded.getCryptoUser());
  51. loginPass = Crypto.decrypt(getSecret(), loaded.getCryptoPass());
  52. display = Crypto.decrypt(getSecret(), loaded.getCryptoDisplay());
  53. premium = loaded.premium;
  54. } catch (Exception e) {
  55. e.printStackTrace();
  56. }
  57. updateCrypto();
  58. return this;
  59. }
  60.  
  61. private SecretKeySpec getSecret() {
  62. byte[] secret = Crypto.getUserKey(16);
  63. return new SecretKeySpec(secret, 0, secret.length, "AES");
  64. }
  65.  
  66. public String getUser() {
  67. return loginUser;
  68. }
  69.  
  70. public String getPass() {
  71. return loginPass;
  72. }
  73.  
  74. public String getDisplay() {
  75. return display;
  76. }
  77.  
  78. public String getID() {
  79. return id;
  80. }
  81.  
  82. public String getCapeURL() {
  83. return capeURL;
  84. }
  85.  
  86. public boolean hasCape() {
  87. return capeURL != null && capeURL.length() > 7;
  88. }
  89.  
  90. public void setPremium(boolean premium) {
  91. this.premium = premium;
  92. }
  93.  
  94. public boolean isPremium() {
  95. return premium;
  96. }
  97.  
  98. public HashMap<String, String> getAliases() {
  99. return aliases;
  100. }
  101.  
  102. public HashMap<String, UserStatus> getRelationships() {
  103. return relationships;
  104. }
  105.  
  106. /**
  107. * Updates a user's alias.
  108. *
  109. * @param username
  110. * @param newName
  111. */
  112. public void setAlias(String username, String newName) {
  113. if (aliases.containsKey(username)) {
  114. aliases.remove(username);
  115. }
  116. aliases.put(username, newName);
  117. }
  118.  
  119. /**
  120. * Returns text with aliased names replaced.
  121. *
  122. * @param username
  123. * @param text
  124. * @return
  125. */
  126. public String getAliasedText(String username, String text) {
  127. return text.replace(username, aliases.get(username));
  128. }
  129.  
  130. public UserStatus getRelation(String username) {
  131. if (!relationships.containsKey(username)) {
  132. return relationships.get(username);
  133. }
  134. return null;
  135. }
  136.  
  137. public void setRelationships(HashMap<String, UserStatus> relationships) {
  138. this.relationships = relationships;
  139. }
  140.  
  141. public void setPass(String loginPass) {
  142. this.loginPass = loginPass;
  143. }
  144.  
  145. public String getCryptoUser() {
  146. return cryptoUser;
  147. }
  148.  
  149. public String getCryptoPass() {
  150. return cryptoPass;
  151. }
  152.  
  153. public String getCryptoDisplay() {
  154. return cryptoDisplay;
  155. }
  156.  
  157. public void setUser(String loginUser) {
  158. this.loginUser = loginUser;
  159. }
  160.  
  161. public void setDisplay(String display) {
  162. this.display = display;
  163. }
  164.  
  165. /**
  166. * Populates the encrypted varients of the plaintext values.
  167. */
  168. public void updateCrypto() {
  169. try {
  170. cryptoUser = Crypto.encrypt(getSecret(), loginUser);
  171. cryptoPass = Crypto.encrypt(getSecret(), loginPass);
  172. cryptoDisplay = Crypto.encrypt(getSecret(), display);
  173. } catch (Exception e) {
  174. e.printStackTrace();
  175. }
  176. }
  177.  
  178. @Override
  179. public String getFileName() {
  180. return id + ".json";
  181. }
  182. }
Add Comment
Please, Sign In to add comment