diff options
author | Joseph Sutton <josephsutton@catalyst.net.nz> | 2022-09-24 12:36:25 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2022-10-05 04:23:33 +0000 |
commit | 84796220965527a56ac492d04f220b39ce279cf4 (patch) | |
tree | cfb7778bf757335132757af02baebef43a7e914b /lib/krb5_wrap | |
parent | 27a2ee0d1d9a7f3360537a0a806e827272242823 (diff) | |
download | samba-84796220965527a56ac492d04f220b39ce279cf4.tar.gz |
lib:krb5_wrap: Add helper functions to make krb5_data structure
These will be used in following commits.
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'lib/krb5_wrap')
-rw-r--r-- | lib/krb5_wrap/krb5_samba.c | 30 | ||||
-rw-r--r-- | lib/krb5_wrap/krb5_samba.h | 5 |
2 files changed, 35 insertions, 0 deletions
diff --git a/lib/krb5_wrap/krb5_samba.c b/lib/krb5_wrap/krb5_samba.c index ec7c905ab00..4afec815b0d 100644 --- a/lib/krb5_wrap/krb5_samba.c +++ b/lib/krb5_wrap/krb5_samba.c @@ -938,6 +938,36 @@ krb5_error_code smb_krb5_copy_data_contents(krb5_data *p, #endif } +/* + * @brief put a buffer reference into a krb5_data struct + * + * @param[in] data The data to reference + * @param[in] length The length of the data to reference + * @return krb5_data + * + * Caller should not free krb5_data. + */ +krb5_data smb_krb5_make_data(void *data, + size_t len) +{ + krb5_data d; + +#ifdef SAMBA4_USES_HEIMDAL + d.data = (uint8_t *)data; + d.length = len; +#else + d.magic = KV5M_DATA; + d.data = data; + d.length = len; +#endif + return d; +} + +krb5_data smb_krb5_data_from_blob(DATA_BLOB blob) +{ + return smb_krb5_make_data(blob.data, blob.length); +} + bool smb_krb5_get_smb_session_key(TALLOC_CTX *mem_ctx, krb5_context context, krb5_auth_context auth_context, diff --git a/lib/krb5_wrap/krb5_samba.h b/lib/krb5_wrap/krb5_samba.h index 942f787d12a..2bb04ba5a46 100644 --- a/lib/krb5_wrap/krb5_samba.h +++ b/lib/krb5_wrap/krb5_samba.h @@ -383,6 +383,11 @@ krb5_error_code smb_krb5_copy_data_contents(krb5_data *p, const void *data, size_t len); +krb5_data smb_krb5_make_data(void *data, + size_t len); + +krb5_data smb_krb5_data_from_blob(DATA_BLOB blob); + int smb_krb5_principal_get_type(krb5_context context, krb5_const_principal principal); |