mirror of
https://github.com/samba-team/samba.git
synced 2025-03-20 22:50:26 +03:00
samba-tool: add virtualKerberosSalt attribute to 'user getpassword/syncpasswords'
This might be useful for someone, but at least it's very useful for tests. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13539 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> (cherry picked from commit 39c281a23673691bab621de1a632d64df2c1c102)
This commit is contained in:
parent
ab0e26af17
commit
58b3c86497
@ -199,6 +199,9 @@ for (alg, attr) in [("5", "virtualCryptSHA256"), ("6", "virtualCryptSHA512")]:
|
||||
for x in range(1, 30):
|
||||
virtual_attributes["virtualWDigest%02d" % x] = {}
|
||||
|
||||
# Add Kerberos virtual attributes
|
||||
virtual_attributes["virtualKerberosSalt"] = {}
|
||||
|
||||
virtual_attributes_help = "The attributes to display (comma separated). "
|
||||
virtual_attributes_help += "Possible supported virtual attributes: %s" % ", ".join(sorted(virtual_attributes.keys()))
|
||||
if len(disabled_virtual_attributes) != 0:
|
||||
@ -1220,6 +1223,16 @@ class GetPasswordCommand(Command):
|
||||
# first matching scheme
|
||||
return (None, scheme_match)
|
||||
|
||||
def get_kerberos_ctr():
|
||||
primary_krb5 = get_package("Primary:Kerberos-Newer-Keys")
|
||||
if primary_krb5 is None:
|
||||
primary_krb5 = get_package("Primary:Kerberos")
|
||||
if primary_krb5 is None:
|
||||
return (0, None)
|
||||
krb5_blob = ndr_unpack(drsblobs.package_PrimaryKerberosBlob,
|
||||
primary_krb5)
|
||||
return (krb5_blob.version, krb5_blob.ctr)
|
||||
|
||||
# We use sort here in order to have a predictable processing order
|
||||
for a in sorted(virtual_attributes.keys()):
|
||||
if not a.lower() in lower_attrs:
|
||||
@ -1271,6 +1284,11 @@ class GetPasswordCommand(Command):
|
||||
v = get_package("Primary:SambaGPG", min_idx=-1)
|
||||
if v is None:
|
||||
continue
|
||||
elif a == "virtualKerberosSalt":
|
||||
(krb5_v, krb5_ctr) = get_kerberos_ctr()
|
||||
if krb5_v not in [3, 4]:
|
||||
continue
|
||||
v = krb5_ctr.salt.string
|
||||
elif a.startswith("virtualWDigest"):
|
||||
primary_wdigest = get_package("Primary:WDigest")
|
||||
if primary_wdigest is None:
|
||||
@ -1387,6 +1405,9 @@ for which virtual attributes are supported in your environment):
|
||||
https://msdn.microsoft.com/en-us/library/cc245680.aspx
|
||||
is incorrect
|
||||
|
||||
virtualKerberosSalt: This results the salt string that is used to compute
|
||||
Kerberos keys from a UTF-8 cleartext password.
|
||||
|
||||
virtualSambaGPG: The raw cleartext as stored in the
|
||||
'Primary:SambaGPG' buffer inside of the
|
||||
supplementalCredentials attribute.
|
||||
@ -1554,6 +1575,9 @@ for supported virtual attributes in your environment):
|
||||
https://msdn.microsoft.com/en-us/library/cc245680.aspx
|
||||
is incorrect.
|
||||
|
||||
virtualKerberosSalt: This results the salt string that is used to compute
|
||||
Kerberos keys from a UTF-8 cleartext password.
|
||||
|
||||
virtualSambaGPG: The raw cleartext as stored in the
|
||||
'Primary:SambaGPG' buffer inside of the
|
||||
supplementalCredentials attribute.
|
||||
|
Loading…
x
Reference in New Issue
Block a user