krb5-samba: interdomain trust uses different salt principal
[samba.git] / source3 / passdb / machine_account_secrets.c
index 40511f96a8b0ea941be10c2d1b39cc6a770a5520..a96bf1c0b6acfb5c7baa7c5d01addcfb3aeff828 100644 (file)
@@ -36,6 +36,7 @@
 #include "lib/crypto/crypto.h"
 #include "lib/krb5_wrap/krb5_samba.h"
 #include "lib/util/time_basic.h"
+#include "../libds/common/flags.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_PASSDB
@@ -1317,7 +1318,7 @@ NTSTATUS secrets_fetch_or_upgrade_domain_info(const char *domain,
 
        last_set_time = secrets_fetch_pass_last_set_time(domain);
        if (last_set_time == 0) {
-               return NT_STATUS_OK;
+               return NT_STATUS_CANT_ACCESS_DOMAIN_INFO;
        }
        unix_to_nt_time(&last_set_nt, last_set_time);
 
@@ -1601,7 +1602,7 @@ NTSTATUS secrets_store_JoinCtx(const struct libnet_JoinCtx *r)
                ret = smb_krb5_salt_principal(info->domain_info.dns_domain.string,
                                              info->account_name,
                                              NULL /* userPrincipalName */,
-                                             true /* is_computer */,
+                                             UF_WORKSTATION_TRUST_ACCOUNT,
                                              info, &p);
                if (ret != 0) {
                        status = krb5_to_nt_status(ret);