/**
print the data_blob as hex string
**/
-_PUBLIC_ char *data_blob_hex_string(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob)
+_PUBLIC_ char *data_blob_hex_string_lower(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob)
{
int i;
char *hex_string;
return hex_string;
}
+_PUBLIC_ char *data_blob_hex_string_upper(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob)
+{
+ int i;
+ char *hex_string;
+
+ hex_string = talloc_array(mem_ctx, char, (blob->length*2)+1);
+ if (!hex_string) {
+ return NULL;
+ }
+
+ for (i = 0; i < blob->length; i++)
+ slprintf(&hex_string[i*2], 3, "%02X", blob->data[i]);
+
+ hex_string[(blob->length*2)] = '\0';
+ return hex_string;
+}
+
/**
useful for constructing data blobs in test suites, while
avoiding const warnings
/**
print the data_blob as hex string
**/
-_PUBLIC_ char *data_blob_hex_string(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob);
+_PUBLIC_ char *data_blob_hex_string_upper(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob);
+
+/**
+print the data_blob as hex string
+**/
+_PUBLIC_ char *data_blob_hex_string_lower(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob);
/**
useful for constructing data blobs in test suites, while
static bool test_hex_string(struct torture_context *tctx)
{
DATA_BLOB a = data_blob_string_const("\xC\xA\xF\xE");
- torture_assert_str_equal(tctx, data_blob_hex_string(tctx, &a), "0c0a0f0e", "hex string");
+ torture_assert_str_equal(tctx, data_blob_hex_string_lower(tctx, &a), "0c0a0f0e", "hex string");
+ torture_assert_str_equal(tctx, data_blob_hex_string_upper(tctx, &a), "0C0A0F0E", "hex string");
return true;
}
if (r->binary_oid) {
char *partial_oid = NULL;
DATA_BLOB oid_blob = data_blob_const(r->binary_oid, r->length);
- char *hex_str = data_blob_hex_string(ndr, &oid_blob);
+ char *hex_str = data_blob_hex_string_upper(ndr, &oid_blob);
ber_read_partial_OID_String(ndr, oid_blob, (const char **)&partial_oid);
ndr->depth++;
ndr->print(ndr, "%-25s: 0x%s (%s)", "binary_oid", hex_str, partial_oid);
return NULL;
}
- ret = data_blob_hex_string(mem_ctx, &guid_blob);
+ ret = data_blob_hex_string_upper(mem_ctx, &guid_blob);
talloc_free(tmp_mem);
return ret;
}
return talloc_asprintf(mem_ctx, " uuid %s/0x%02x", uuidstr, syntax.if_version);
} else { /* IPX */
return talloc_asprintf(mem_ctx, "IPX:%s",
- data_blob_hex_string(mem_ctx, &epm_floor->rhs.uuid.unknown));
+ data_blob_hex_string_upper(mem_ctx, &epm_floor->rhs.uuid.unknown));
}
case EPM_PROTOCOL_NCACN:
nt_errstr(status));
return LDB_ERR_OPERATIONS_ERROR;
}
- pknb_hexstr = data_blob_hex_string(io->ac, &pknb_blob);
+ pknb_hexstr = data_blob_hex_string_upper(io->ac, &pknb_blob);
if (!pknb_hexstr) {
ldb_oom(ldb);
return LDB_ERR_OPERATIONS_ERROR;
nt_errstr(status));
return LDB_ERR_OPERATIONS_ERROR;
}
- pkb_hexstr = data_blob_hex_string(io->ac, &pkb_blob);
+ pkb_hexstr = data_blob_hex_string_upper(io->ac, &pkb_blob);
if (!pkb_hexstr) {
ldb_oom(ldb);
return LDB_ERR_OPERATIONS_ERROR;
nt_errstr(status));
return LDB_ERR_OPERATIONS_ERROR;
}
- pdb_hexstr = data_blob_hex_string(io->ac, &pdb_blob);
+ pdb_hexstr = data_blob_hex_string_upper(io->ac, &pdb_blob);
if (!pdb_hexstr) {
ldb_oom(ldb);
return LDB_ERR_OPERATIONS_ERROR;
nt_errstr(status));
return LDB_ERR_OPERATIONS_ERROR;
}
- pcb_hexstr = data_blob_hex_string(io->ac, &pcb_blob);
+ pcb_hexstr = data_blob_hex_string_upper(io->ac, &pcb_blob);
if (!pcb_hexstr) {
ldb_oom(ldb);
return LDB_ERR_OPERATIONS_ERROR;
nt_errstr(status));
return LDB_ERR_OPERATIONS_ERROR;
}
- pb_hexstr = data_blob_hex_string(io->ac, &pb_blob);
+ pb_hexstr = data_blob_hex_string_upper(io->ac, &pb_blob);
if (!pb_hexstr) {
ldb_oom(ldb);
return LDB_ERR_OPERATIONS_ERROR;
static int extended_dn_write_hex(struct ldb_context *ldb, void *mem_ctx,
const struct ldb_val *in, struct ldb_val *out)
{
- *out = data_blob_string_const(data_blob_hex_string(mem_ctx, in));
+ *out = data_blob_string_const(data_blob_hex_string_lower(mem_ctx, in));
if (!out->data) {
return -1;
}
(void **)&ret, NULL, false);
return ret;
case REG_BINARY:
- ret = data_blob_hex_string(mem_ctx, &data);
+ ret = data_blob_hex_string_upper(mem_ctx, &data);
return ret;
case REG_DWORD:
if (*(int *)data.data == 0)
if (strcmp(syntaxes[i], a->attributeSyntax_oid) != 0) continue;
- om_hex = data_blob_hex_string(ldb, &a->oMObjectClass);
+ om_hex = data_blob_hex_string_upper(ldb, &a->oMObjectClass);
if (!om_hex) {
return false;
}
if (nt_hash_p) {
DATA_BLOB nt_hash_blob = data_blob_const(nt_hash_p, 16);
- DEBUG(100,("ACCOUNT [%s\\%-25s] NTHASH %s\n", samsync_state->domain_name[0], username, data_blob_hex_string(mem_ctx, &nt_hash_blob)));
+ DEBUG(100,("ACCOUNT [%s\\%-25s] NTHASH %s\n", samsync_state->domain_name[0], username, data_blob_hex_string_upper(mem_ctx, &nt_hash_blob)));
}
if (lm_hash_p) {
DATA_BLOB lm_hash_blob = data_blob_const(lm_hash_p, 16);
- DEBUG(100,("ACCOUNT [%s\\%-25s] LMHASH %s\n", samsync_state->domain_name[0], username, data_blob_hex_string(mem_ctx, &lm_hash_blob)));
+ DEBUG(100,("ACCOUNT [%s\\%-25s] LMHASH %s\n", samsync_state->domain_name[0], username, data_blob_hex_string_upper(mem_ctx, &lm_hash_blob)));
}
nt_status = test_SamLogon(samsync_state->p_netlogon_wksta, mem_ctx, samsync_state->creds_netlogon_wksta,