{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1752812859,
"reponame":"libwebsockets",
"desc":"libwebsockets lightweight C networking library",
"owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://libwebsockets.org/repo/libwebsockets",
"f":3,
"items": [
{"schema":"libjg2-1",
"cid":"be169f936c2be4a8dbe5ed6d1a2f91a9",
"commit": {"type":"commit",
"time": 1553316089,
"time_ofs": 480,
"oid_tree": { "oid": "c09f93ec756399c5bc669b714f33bdfd5b025925", "alias": []},
"oid":{ "oid": "53c932e05d8185de81c5c659b7d9039923c97b3b", "alias": []},
"msg": "lws_hex_to_byte_array",
"sig_commit": { "git_time": { "time": 1553316089, "offset": 480 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },
"sig_author": { "git_time": { "time": 1553316089, "offset": 480 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }},
"body": "lws_hex_to_byte_array\n\nConvert ascii hex into byte array"
,
"diff": "diff --git a/include/libwebsockets/lws-misc.h b/include/libwebsockets/lws-misc.h\nindex c6b7b7c..e58cad3 100644\n--- a/include/libwebsockets/lws-misc.h\n+++ b/include/libwebsockets/lws-misc.h\n@@ -402,6 +402,25 @@ lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3);\n LWS_VISIBLE LWS_EXTERN char *\n lws_strncpy(char *dest, const char *src, size_t size);\n \n+/**\n+ * lws_hex_to_byte_array(): convert hex string like 0123456789ab into byte data\n+ *\n+ * \u005cparam h: incoming NUL-terminated hex string\n+ * \u005cparam dest: array to fill with binary decodes of hex pairs from h\n+ * \u005cparam max: maximum number of bytes dest can hold, must be at least half\n+ *\t\tthe size of strlen(h)\n+ *\n+ * This converts hex strings into an array of 8-bit representations, ie the\n+ * input \u0022abcd\u0022 produces two bytes of value 0xab and 0xcd.\n+ *\n+ * Returns number of bytes produced into \u005cp dest, or -1 on error.\n+ *\n+ * Errors include non-hex chars and an odd count of hex chars in the input\n+ * string.\n+ */\n+LWS_VISIBLE LWS_EXTERN int\n+lws_hex_to_byte_array(const char *h, uint8_t *dest, int max);\n+\n /*\n * lws_timingsafe_bcmp(): constant time memcmp\n *\ndiff --git a/lib/core/libwebsockets.c b/lib/core/libwebsockets.c\nindex e750295..3dc3a3a 100644\n--- a/lib/core/libwebsockets.c\n+++ b/lib/core/libwebsockets.c\n@@ -38,6 +38,32 @@ signed char char_to_hex(const char c)\n \n \treturn -1;\n }\n+\n+int\n+lws_hex_to_byte_array(const char *h, uint8_t *dest, int max)\n+{\n+\tuint8_t *odest \u003d dest;\n+\n+\twhile (max-- \u0026\u0026 *h) {\n+\t\tint t \u003d char_to_hex(*h++), t1;\n+\n+\t\tif (!*h || t \u003c 0)\n+\t\t\treturn -1;\n+\n+\t\tt1 \u003d char_to_hex(*h++);\n+\t\tif (t1 \u003c 0)\n+\t\t\treturn -1;\n+\n+\t\t*dest++ \u003d (t \u003c\u003c 4) | t1;\n+\t}\n+\n+\tif (max \u003c 0)\n+\t\treturn -1;\n+\n+\treturn dest - odest;\n+}\n+\n+\n #if !defined(LWS_PLAT_OPTEE)\n \n int lws_open(const char *__file, int __oflag, ...)\n","s":{"c":1752812859,"u": 2118}}
],"g": 2980,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}