bugfix in encryption key computing, added new feature: derived public keys

This commit is contained in:
TLINDEN
2013-11-02 10:55:25 +01:00
parent 58a3bca8d7
commit 2c4b904165
2 changed files with 57 additions and 0 deletions

3
tests/jot Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/perl
my $rounds = shift;
foreach (0 .. $rounds) {print "$_\n";}

54
tests/pwhashes.c Normal file
View File

@@ -0,0 +1,54 @@
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <sodium.h>
#include <limits.h>
#include "mem.h"
#include "defines.h"
#include "keyprint.h"
#include "key.h"
struct _pw_t {
char hash[65];
UT_hash_handle hh;
};
typedef struct _pw_t pw;
int main() {
int i, t, p;
char *pass = ucmalloc(4);
unsigned char *h;
char tmp[65];
pw *item;
pw *list = NULL;
pw *have = NULL;
for(i=97; i<126; ++i) {
pass[0] = i;
pass[1] = 0;
h = pcp_derivekey(pass);
p =0;
for(t=0; t<32; ++t) {
sprintf(&tmp[p], "%02x", h[t]);
p += 2;
}
have = NULL;
HASH_FIND_STR(list, tmp, have);
if(have == NULL) {
item = ucmalloc(sizeof(pw));
memcpy(item->hash, tmp, 65);
HASH_ADD_STR( list, hash, item );
}
else {
fprintf(stderr, "Error: collision found: %s!\n", have->hash);
return 1;
}
}
fprintf(stderr, "ok\n");
return 0;
}