Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func InitUser(username string, password string) (userdataptr *User, err error) {
- random := userlib.Argon2Key([]byte(password), []byte(username), 64)
- enckey, deckey, err := userlib.PKEKeyGen()
- if (err != nil) {
- return nil, err
- }
- signkey, verifykey, err := userlib.DSKeyGen()
- if (err != nil) {
- return nil, err
- }
- userlib.KeystoreSet(username + "publickey", enckey)
- userlib.KeystoreSet(username + "verifykey", verifykey)
- hashedpass, err := userlib.HMACEval(random[:24], []byte(password))
- if (err != nil) {
- return nil, err
- }
- userdata := User{Username: username, Password: hex.EncodeToString(hashedpass), Signkey: deckey, AssymDecKey: signkey}
- msg, err := json.Marshal(&userdata)
- hashedmsg, err := userlib.HMACEval(random[24:48], msg)
- if (err != nil) {
- return nil, err
- }
- hasheduser, err := userlib.HMACEval(random[48:64], []byte(username))
- new_UUID, _ := uuid.FromBytes(hasheduser)
- userlib.DatastoreSet(new_UUID, hashedmsg)
- return &userdata, nil
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement