Advertisement
Guest User

Untitled

a guest
Mar 8th, 2019
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. func InitUser(username string, password string) (userdataptr *User, err error) {
  2. random := userlib.Argon2Key([]byte(password), []byte(username), 64)
  3. enckey, deckey, err := userlib.PKEKeyGen()
  4.  
  5. if (err != nil) {
  6. return nil, err
  7. }
  8.  
  9. signkey, verifykey, err := userlib.DSKeyGen()
  10.  
  11. if (err != nil) {
  12. return nil, err
  13. }
  14.  
  15. userlib.KeystoreSet(username + "publickey", enckey)
  16. userlib.KeystoreSet(username + "verifykey", verifykey)
  17. hashedpass, err := userlib.HMACEval(random[:24], []byte(password))
  18.  
  19. if (err != nil) {
  20. return nil, err
  21. }
  22.  
  23. userdata := User{Username: username, Password: hex.EncodeToString(hashedpass), Signkey: deckey, AssymDecKey: signkey}
  24. msg, err := json.Marshal(&userdata)
  25.  
  26. hashedmsg, err := userlib.HMACEval(random[24:48], msg)
  27.  
  28. if (err != nil) {
  29. return nil, err
  30. }
  31.  
  32. hasheduser, err := userlib.HMACEval(random[48:64], []byte(username))
  33. new_UUID, _ := uuid.FromBytes(hasheduser)
  34. userlib.DatastoreSet(new_UUID, hashedmsg)
  35.  
  36. return &userdata, nil
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement