16進数の文字列を、バイト列に変換するコードです。
再利用できそうなので貼っておきます。
void BytesFromHexString(unsigned char *data, const char *string) {
printf("string:%s\n", string);
int len = (int)strlen(string);
for (int i=0; i<len; i+=2) {
unsigned int x;
sscanf((char *)(string + i), "%02x", &x);
data[i/2] = x;
}
}
(おまけ)バイト列を、16進数文字列でログ出力
void printh(unsigned char* data, unsigned int len) {
for (int i=0; i<len; i++) {
printf("%02x", data[i]);
}
printf("\n");
}
更新情報