summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/util/data_blob.c19
-rw-r--r--lib/util/data_blob.h7
-rw-r--r--lib/util/tests/data_blob.c3
-rw-r--r--librpc/ndr/ndr_drsuapi.c2
-rw-r--r--librpc/ndr/uuid.c2
-rw-r--r--librpc/rpc/binding.c2
-rw-r--r--source4/dsdb/samdb/ldb_modules/password_hash.c10
-rw-r--r--source4/lib/ldb-samba/ldif_handlers.c2
-rw-r--r--source4/lib/registry/util.c2
-rw-r--r--source4/torture/ldap/schema.c2
-rw-r--r--source4/torture/rpc/samsync.c4
11 files changed, 39 insertions, 16 deletions
diff --git a/lib/util/data_blob.c b/lib/util/data_blob.c
index 825d8cf88c..6e7557f8ef 100644
--- a/lib/util/data_blob.c
+++ b/lib/util/data_blob.c
@@ -153,7 +153,7 @@ _PUBLIC_ int data_blob_cmp(const DATA_BLOB *d1, const DATA_BLOB *d2)
/**
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;
@@ -173,6 +173,23 @@ _PUBLIC_ char *data_blob_hex_string(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob)
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
diff --git a/lib/util/data_blob.h b/lib/util/data_blob.h
index ffde51cf33..c294533960 100644
--- a/lib/util/data_blob.h
+++ b/lib/util/data_blob.h
@@ -96,7 +96,12 @@ _PUBLIC_ int data_blob_cmp(const DATA_BLOB *d1, const DATA_BLOB *d2);
/**
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
diff --git a/lib/util/tests/data_blob.c b/lib/util/tests/data_blob.c
index f0b02b8d17..53330a4afd 100644
--- a/lib/util/tests/data_blob.c
+++ b/lib/util/tests/data_blob.c
@@ -78,7 +78,8 @@ static bool test_cmp(struct torture_context *tctx)
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;
}
diff --git a/librpc/ndr/ndr_drsuapi.c b/librpc/ndr/ndr_drsuapi.c
index bfc3c75b4e..15f2f842bd 100644
--- a/librpc/ndr/ndr_drsuapi.c
+++ b/librpc/ndr/ndr_drsuapi.c
@@ -91,7 +91,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaOID(struct ndr_print *ndr, const char *
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);
diff --git a/librpc/ndr/uuid.c b/librpc/ndr/uuid.c
index 004a8d35cc..df17d7824e 100644
--- a/librpc/ndr/uuid.c
+++ b/librpc/ndr/uuid.c
@@ -291,7 +291,7 @@ _PUBLIC_ char *GUID_hexstring(TALLOC_CTX *mem_ctx, const struct GUID *guid)
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;
}
diff --git a/librpc/rpc/binding.c b/librpc/rpc/binding.c
index 734471451b..20c3a389f1 100644
--- a/librpc/rpc/binding.c
+++ b/librpc/rpc/binding.c
@@ -113,7 +113,7 @@ const char *epm_floor_string(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor)
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:
diff --git a/source4/dsdb/samdb/ldb_modules/password_hash.c b/source4/dsdb/samdb/ldb_modules/password_hash.c
index 7779a1752b..8791db2bc4 100644
--- a/source4/dsdb/samdb/ldb_modules/password_hash.c
+++ b/source4/dsdb/samdb/ldb_modules/password_hash.c
@@ -1137,7 +1137,7 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
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;
@@ -1169,7 +1169,7 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
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;
@@ -1200,7 +1200,7 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
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;
@@ -1229,7 +1229,7 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
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;
@@ -1255,7 +1255,7 @@ static int setup_supplemental_field(struct setup_password_fields_io *io)
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;
diff --git a/source4/lib/ldb-samba/ldif_handlers.c b/source4/lib/ldb-samba/ldif_handlers.c
index 9467bef873..d8edeb0beb 100644
--- a/source4/lib/ldb-samba/ldif_handlers.c
+++ b/source4/lib/ldb-samba/ldif_handlers.c
@@ -784,7 +784,7 @@ static int ldif_write_replUpToDateVector(struct ldb_context *ldb, void *mem_ctx,
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;
}
diff --git a/source4/lib/registry/util.c b/source4/lib/registry/util.c
index a1897eff2e..038b23fc87 100644
--- a/source4/lib/registry/util.c
+++ b/source4/lib/registry/util.c
@@ -68,7 +68,7 @@ _PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx,
(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)
diff --git a/source4/torture/ldap/schema.c b/source4/torture/ldap/schema.c
index 7fe171691a..b0a4892d7a 100644
--- a/source4/torture/ldap/schema.c
+++ b/source4/torture/ldap/schema.c
@@ -356,7 +356,7 @@ static bool test_dump_sorted_syntax(struct ldb_context *ldb, struct test_rootDSE
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;
}
diff --git a/source4/torture/rpc/samsync.c b/source4/torture/rpc/samsync.c
index 52df4eb6b9..19060c69a9 100644
--- a/source4/torture/rpc/samsync.c
+++ b/source4/torture/rpc/samsync.c
@@ -593,11 +593,11 @@ static bool samsync_handle_user(struct torture_context *tctx, TALLOC_CTX *mem_ct
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,