taskrambler  0.1.8
Web server and task management solution.
auth/storage.h File Reference
#include <sys/types.h>
#include <openssl/sha.h>
#include "class.h"
#include "storage/storage.h"
+ Include dependency graph for auth/storage.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SALT_SIZE   32
 
#define HASH_SIZE   SHA512_DIGEST_LENGTH
 

Functions

 CLASS (AuthStorage)
 
int hash_pw (const char *, const size_t, unsigned char *, unsigned char **)
 

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 auth/storage.h.

Macro Definition Documentation

#define HASH_SIZE   SHA512_DIGEST_LENGTH

Definition at line 35 of file auth/storage.h.

Referenced by applicationUpdatePassword(), authStorageAuthenticate(), and hash_pw().

#define SALT_SIZE   32

Definition at line 34 of file auth/storage.h.

Referenced by applicationUpdatePassword(), authStorageAuthenticate(), and hash_pw().

Function Documentation

CLASS ( AuthStorage  )

Definition at line 38 of file auth/storage.h.

38  {
39  Storage store;
40 };
int hash_pw ( const char *  ,
const size_t  ,
unsigned char *  ,
unsigned char **   
)
Todo:
In future this should use a more general purpose hash function, which then will be in utils/hash.c

Definition at line 74 of file hash_pw.c.

References FALSE, HASH_SIZE, MEM_FREE, memCalloc(), PBKDF2_ITERATIONS, SALT_SIZE, and TRUE.

Referenced by applicationUpdatePassword(), and authStorageAuthenticate().

79 {
80  if (NULL == *salt) {
81  *salt = memCalloc(SALT_SIZE, sizeof(unsigned char));
82  if (0 > RAND_pseudo_bytes(*salt, SALT_SIZE)) {
83  MEM_FREE(*salt);
84  return FALSE;
85  }
86  }
87 
88  if (0 == PKCS5_PBKDF2_HMAC(
89  password,
90  npassword,
91  *salt,
92  SALT_SIZE,
94  EVP_sha512(),
95  HASH_SIZE,
96  hash)) {
97  MEM_FREE(*salt);
98  return FALSE;
99  }
100 
101  return TRUE;
102 }
#define MEM_FREE(seg)
Definition: memory.h:28
#define SALT_SIZE
Definition: auth/storage.h:34
#define FALSE
Definition: commons.h:28
#define TRUE
Definition: commons.h:27
#define PBKDF2_ITERATIONS
Definition: hash_pw.c:38
void * memCalloc(size_t, size_t)
Definition: memory.c:818
#define HASH_SIZE
Definition: auth/storage.h:35

+ Here is the call graph for this function:

+ Here is the caller graph for this function: