taskrambler  v0.1.8
Web server and task management solution.
update_password.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include "class.h"
#include "auth.h"
#include "user.h"
#include "storage/storage.h"
#include "application/application.h"
#include "interface/indexable.h"
#include "utils/memory.h"
#include "commons.h"
+ Include dependency graph for update_password.c:

Go to the source code of this file.

Macros

#define _GNU_SOURCE
 

Functions

int applicationUpdatePassword (Application this, Credential cred, User user)
 

Detailed Description

Author
Georg Hopp

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file update_password.c.

Macro Definition Documentation

#define _GNU_SOURCE

Definition at line 23 of file update_password.c.

Function Documentation

int applicationUpdatePassword ( Application  this,
Credential  cred,
User  user 
)

Definition at line 41 of file update_password.c.

References CRED_PWD, FALSE, hash_pw(), HASH_SIZE, indexUuid(), MEM_FREE, SALT_SIZE, storageUpdate(), and TRUE.

Referenced by applicationCreateUser().

45 {
46  unsigned char hash_data[SALT_SIZE+HASH_SIZE];
47  unsigned char * salt = NULL;
48  unsigned char * hash = hash_data+SALT_SIZE;
49  Uuid index;
50 
51  if (FALSE == hash_pw(
52  CRED_PWD(cred).pass,
53  CRED_PWD(cred).npass,
54  hash,
55  &salt)) {
56  return FALSE;
57  }
58 
59  memcpy(hash_data, salt, SALT_SIZE);
60  MEM_FREE(salt);
61 
62  index = indexUuid(user, this->user_namespace);
64  this->passwords,
65  (char *)(index->uuid).value,
66  sizeof((index->uuid).value),
67  (char *)hash_data,
68  SALT_SIZE + HASH_SIZE);
69  delete(index);
70 
71  return TRUE;
72 }
#define MEM_FREE(seg)
Definition: memory.h:28
StoragePutResult storageUpdate(Storage, char *, size_t, char *, size_t)
#define SALT_SIZE
Definition: auth/storage.h:34
#define FALSE
Definition: commons.h:28
#define TRUE
Definition: commons.h:27
int hash_pw(const char *, const size_t, unsigned char *, unsigned char **)
Definition: hash_pw.c:74
#define HASH_SIZE
Definition: auth/storage.h:35
Uuid indexUuid(void *, Uuid)
Definition: indexable.c:33
#define CRED_PWD(c)
Definition: credential.h:30

+ Here is the call graph for this function:

+ Here is the caller graph for this function: