finally got pbp key export/import to work. in order to make it happen, pbp needs to be patched (see pbp issue#10 for details!) to enable padding.

This commit is contained in:
git@daemon.de
2014-02-06 16:30:50 +01:00
parent d1d169b1fc
commit 7d715ba880
6 changed files with 173 additions and 32 deletions

View File

@@ -36,7 +36,7 @@ static void prep_base85(void)
int decode_85(char *dst, const char *buffer, int len)
{
prep_base85();
int pos = 0;
say1("len: %d\n", len);
say2("decode 85 <%.*s>\n", len / 4 * 5, buffer);
while (len) {
@@ -47,13 +47,13 @@ int decode_85(char *dst, const char *buffer, int len)
ch = *buffer++;
de = de85[ch];
if (--de < 0)
return error("invalid base85 alphabet <%c>\n", ch);
return error("invalid base85 alphabet <%02x> de: %d\n", ch, de);
acc = acc * 85 + de;
} while (--cnt);
ch = *buffer++;
de = de85[ch];
if (--de < 0)
return error("invalid base85 alphabet <%c>\n", ch);
if (--de < 0 && ch != '\0')
return error("invalid base85 alphabet <%02x> left\n", ch);
/* Detect overflow. */
@@ -63,8 +63,7 @@ int decode_85(char *dst, const char *buffer, int len)
acc += de;
/* say1(" %08x\n", acc); */
say1("%.5s", buffer-5);
say2("=> %08x (len: %d)\n", acc, len);
say2(" => %08x (len: %d)\n", acc, len);
cnt = (len < 4) ? len : 4;
len -= cnt;
do {

View File

@@ -60,9 +60,17 @@ void _xorbuf(unsigned char *iv, unsigned char *buf, size_t xlen) {
/* print some binary data to stderr */
void _dump(char *n, unsigned char *d, size_t s) {
fprintf(stderr, "%s (%ld): ", n, s);
int l = strlen(n) + 9;
fprintf(stderr, "%s (%04ld): ", n, s);
size_t i;
for (i=0; i<s; ++i)
int c;
for (i=0; i<s; ++i) {
fprintf(stderr, "%02x", d[i]);
if(i % 36 == 35 && i > 0) {
fprintf(stderr, "\n");
for(c=0; c<l; ++c)
fprintf(stderr, " ");
}
}
fprintf(stderr, "\n");
}