mirror of
https://codeberg.org/scip/pcp.git
synced 2025-12-16 19:40:57 +01:00
bugfix in encryption key computing, added new feature: derived public keys
This commit is contained in:
3
tests/jot
Executable file
3
tests/jot
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/perl
|
||||
my $rounds = shift;
|
||||
foreach (0 .. $rounds) {print "$_\n";}
|
||||
54
tests/pwhashes.c
Normal file
54
tests/pwhashes.c
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user