mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
common: New function hex2fixedbuf.
* common/convert.c (hex2fixedbuf): New. -- This function is useful for converting hex strings received via assuan if they have a known length. For example keygrips or the new UBID. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
a605dbb430
commit
61765136cf
3 changed files with 71 additions and 1 deletions
|
@ -445,6 +445,43 @@ test_hex2str (void)
|
|||
|
||||
|
||||
|
||||
static void
|
||||
test_hex2fixedbuf (void)
|
||||
{
|
||||
static struct {
|
||||
const char *hex;
|
||||
unsigned bufsize;
|
||||
unsigned int resultlen;
|
||||
const char *result;
|
||||
} tests[] = {
|
||||
/* Simple tests. */
|
||||
{ "112233445566778899aabbccddeeff1122", 17, 34,
|
||||
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22"},
|
||||
{ " 112233445566778899aabbccddeeff1122", 17, 35,
|
||||
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22"},
|
||||
{ "112233445566778899aabbccddeeff1122 ", 17, 35,
|
||||
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22"},
|
||||
{ " 112233445566778899aabbccddeeff1122 ", 17, 37,
|
||||
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11\x22"},
|
||||
{ " 112233445566778899aabbccddeeff11 ", 16, 35,
|
||||
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11"},
|
||||
{ " 112233445566778899aabbccddeeff11", 16, 34,
|
||||
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x11"}
|
||||
};
|
||||
char buffer[100]; /* Large enough for all tests. */
|
||||
int idx;
|
||||
unsigned int n;
|
||||
|
||||
for (idx=0; idx < DIM (tests); idx++)
|
||||
{
|
||||
n = hex2fixedbuf (tests[idx].hex, buffer, tests[idx].bufsize);
|
||||
if (n != tests[idx].resultlen)
|
||||
fail (idx);
|
||||
else if (memcmp (buffer, tests[idx].result, tests[idx].bufsize))
|
||||
fail (idx);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
|
@ -458,6 +495,7 @@ main (int argc, char **argv)
|
|||
test_bin2hex ();
|
||||
test_bin2hexcolon ();
|
||||
test_hex2str ();
|
||||
test_hex2fixedbuf ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue