summaryrefslogtreecommitdiff
path: root/source4/kdc
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2016-09-29 02:04:00 +0200
committerAndreas Schneider <asn@cryptomilk.org>2017-04-29 23:31:11 +0200
commitbff4311ec4c4a8bcc9cfbee7cbf7cf6138f0c306 (patch)
treea2766976791f0a05fb250ef2ed73650504a801c6 /source4/kdc
parente240cff59137ee3f9234f5eb0da30d70a61cc85d (diff)
downloadsamba-bff4311ec4c4a8bcc9cfbee7cbf7cf6138f0c306.tar.gz
s4-kdc: Use mit_samba_get_pac() in ks_get_pac()
This adds UPN_DNS_INFO to the PAC. Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlet <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source4/kdc')
-rw-r--r--source4/kdc/mit-kdb/kdb_samba_policies.c30
1 files changed, 8 insertions, 22 deletions
diff --git a/source4/kdc/mit-kdb/kdb_samba_policies.c b/source4/kdc/mit-kdb/kdb_samba_policies.c
index 396e6fe9d31..8c3a85b1f1f 100644
--- a/source4/kdc/mit-kdb/kdb_samba_policies.c
+++ b/source4/kdc/mit-kdb/kdb_samba_policies.c
@@ -155,11 +155,10 @@ done:
static krb5_error_code ks_get_pac(krb5_context context,
krb5_db_entry *client,
+ krb5_keyblock *client_key,
krb5_pac *pac)
{
struct mit_samba_context *mit_ctx;
- DATA_BLOB pac_data;
- krb5_data data;
krb5_error_code code;
mit_ctx = ks_get_context(context);
@@ -167,27 +166,15 @@ static krb5_error_code ks_get_pac(krb5_context context,
return KRB5_KDB_DBNOTINITED;
}
- code = mit_samba_get_pac_data(mit_ctx,
- client,
- &pac_data);
+ code = mit_samba_get_pac(mit_ctx,
+ context,
+ client,
+ client_key,
+ pac);
if (code != 0) {
return code;
}
- code = krb5_pac_init(context, pac);
- if (code != 0) {
- goto done;
- }
-
- data = ks_make_data(pac_data.data, pac_data.length);
-
- code = krb5_pac_add_buffer(context, *pac, PAC_LOGON_INFO, &data);
- if (code != 0) {
- goto done;
- }
-
-done:
- free(pac_data.data);
return code;
}
@@ -332,8 +319,7 @@ krb5_error_code kdb_samba_db_sign_auth_data(krb5_context context,
is_as_req = ((flags & KRB5_KDB_FLAG_CLIENT_REFERRALS_ONLY) != 0);
if (is_as_req && (flags & KRB5_KDB_FLAG_INCLUDE_PAC)) {
-
- code = ks_get_pac(context, client, &pac);
+ code = ks_get_pac(context, client, client_key, &pac);
if (code != 0) {
goto done;
}
@@ -350,7 +336,7 @@ krb5_error_code kdb_samba_db_sign_auth_data(krb5_context context,
if (pac == NULL && client != NULL) {
- code = ks_get_pac(context, client, &pac);
+ code = ks_get_pac(context, client, client_key, &pac);
if (code != 0) {
goto done;
}