chunk_to_hex() adaptations

This commit is contained in:
Andreas Steffen 2008-04-25 06:39:41 +00:00
parent 5e6bbf4f77
commit 36fecdb8a3
2 changed files with 14 additions and 15 deletions

View File

@ -45,7 +45,7 @@ struct private_storage_t {
static int login(private_storage_t *this, char *username, char *password)
{
hasher_t *hasher;
chunk_t hash, data;
chunk_t hash, data, hex_str;
size_t username_len, password_len;
int uid = 0;
char *str;
@ -65,18 +65,18 @@ static int login(private_storage_t *this, char *username, char *password)
memcpy(data.ptr + username_len, password, password_len);
hasher->get_hash(hasher, data, hash.ptr);
hasher->destroy(hasher);
str = chunk_to_hex(hash, FALSE);
hex_str = chunk_to_hex(hash, NULL, FALSE);
enumerator = this->db->query(this->db,
"SELECT oid FROM users WHERE username = ? AND password = ?;",
DB_TEXT, username, DB_TEXT, str,
DB_TEXT, username, DB_TEXT, hex_str.ptr,
DB_INT);
if (enumerator)
{
enumerator->enumerate(enumerator, &uid);
enumerator->destroy(enumerator);
}
free(str);
free(hex_str.ptr);
return uid;
}

View File

@ -37,7 +37,6 @@
#include <debug.h>
#include <asn1/asn1.h>
#include <asn1/pem.h>
#include <asn1/ttodata.h>
#include <credentials/certificates/x509.h>
#include <credentials/certificates/ac.h>
#include <utils/optionsfrom.h>
@ -115,7 +114,8 @@ static chunk_t read_serial(void)
mpz_t number;
char buf[BUF_LEN], buf1[BUF_LEN];
chunk_t last_serial = { buf1, BUF_LEN};
chunk_t hex_serial = { buf, BUF_LEN };
chunk_t last_serial = { buf1, BUF_LEN };
chunk_t serial;
FILE *fd = fopen(OPENAC_SERIAL, "r");
@ -126,15 +126,10 @@ static chunk_t read_serial(void)
if (fd)
{
if (fscanf(fd, "%s", buf))
if (fscanf(fd, "%s", hex_serial.ptr))
{
err_t ugh = ttodata(buf, 0, 16, last_serial.ptr, BUF_LEN, &last_serial.len);
if (ugh != NULL)
{
DBG1(" error reading serial number from %s: %s",
OPENAC_SERIAL, ugh);
}
hex_serial.len = strlen(hex_serial.ptr);
last_serial = chunk_from_hex(hex_serial, last_serial.ptr);
}
fclose(fd);
}
@ -166,9 +161,13 @@ static void write_serial(chunk_t serial)
if (fd)
{
chunk_t hex_serial;
DBG1(" serial number is %#B", &serial);
fprintf(fd, "%#B\n", &serial);
hex_serial = chunk_to_hex(serial, NULL, FALSE);
fprintf(fd, "%.*s\n", hex_serial.len, hex_serial.ptr);
fclose(fd);
free(hex_serial.ptr);
}
else
{