mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
libcli/auth: add netlogon_creds_{de,en}crypt_samr_CryptPassword()
These will simplify adding the logic for netr_ServerAuthenticateKerberos... BUG: https://bugzilla.samba.org/show_bug.cgi?id=15425 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
This commit is contained in:
parent
851a9b18ec
commit
8eb95a155d
@ -1196,6 +1196,54 @@ NTSTATUS netlogon_creds_encrypt_samr_Password(struct netlogon_creds_CredentialSt
|
||||
true);
|
||||
}
|
||||
|
||||
static NTSTATUS netlogon_creds_crypt_samr_CryptPassword(
|
||||
struct netlogon_creds_CredentialState *creds,
|
||||
struct samr_CryptPassword *pass,
|
||||
enum dcerpc_AuthType auth_type,
|
||||
enum dcerpc_AuthLevel auth_level,
|
||||
bool do_encrypt)
|
||||
{
|
||||
if (creds->negotiate_flags & NETLOGON_NEG_SUPPORTS_AES) {
|
||||
if (do_encrypt) {
|
||||
return netlogon_creds_aes_encrypt(creds,
|
||||
pass->data,
|
||||
ARRAY_SIZE(pass->data));
|
||||
}
|
||||
|
||||
return netlogon_creds_aes_decrypt(creds,
|
||||
pass->data,
|
||||
ARRAY_SIZE(pass->data));
|
||||
}
|
||||
|
||||
return netlogon_creds_arcfour_crypt(creds,
|
||||
pass->data,
|
||||
ARRAY_SIZE(pass->data));
|
||||
}
|
||||
|
||||
NTSTATUS netlogon_creds_decrypt_samr_CryptPassword(struct netlogon_creds_CredentialState *creds,
|
||||
struct samr_CryptPassword *pass,
|
||||
enum dcerpc_AuthType auth_type,
|
||||
enum dcerpc_AuthLevel auth_level)
|
||||
{
|
||||
return netlogon_creds_crypt_samr_CryptPassword(creds,
|
||||
pass,
|
||||
auth_type,
|
||||
auth_level,
|
||||
false);
|
||||
}
|
||||
|
||||
NTSTATUS netlogon_creds_encrypt_samr_CryptPassword(struct netlogon_creds_CredentialState *creds,
|
||||
struct samr_CryptPassword *pass,
|
||||
enum dcerpc_AuthType auth_type,
|
||||
enum dcerpc_AuthLevel auth_level)
|
||||
{
|
||||
return netlogon_creds_crypt_samr_CryptPassword(creds,
|
||||
pass,
|
||||
auth_type,
|
||||
auth_level,
|
||||
true);
|
||||
}
|
||||
|
||||
union netr_LogonLevel *netlogon_creds_shallow_copy_logon(TALLOC_CTX *mem_ctx,
|
||||
enum netr_LogonInfoClass level,
|
||||
const union netr_LogonLevel *in)
|
||||
|
@ -104,6 +104,14 @@ NTSTATUS netlogon_creds_encrypt_samr_Password(struct netlogon_creds_CredentialSt
|
||||
struct samr_Password *pass,
|
||||
enum dcerpc_AuthType auth_type,
|
||||
enum dcerpc_AuthLevel auth_level);
|
||||
NTSTATUS netlogon_creds_decrypt_samr_CryptPassword(struct netlogon_creds_CredentialState *creds,
|
||||
struct samr_CryptPassword *pass,
|
||||
enum dcerpc_AuthType auth_type,
|
||||
enum dcerpc_AuthLevel auth_level);
|
||||
NTSTATUS netlogon_creds_encrypt_samr_CryptPassword(struct netlogon_creds_CredentialState *creds,
|
||||
struct samr_CryptPassword *pass,
|
||||
enum dcerpc_AuthType auth_type,
|
||||
enum dcerpc_AuthLevel auth_level);
|
||||
union netr_LogonLevel *netlogon_creds_shallow_copy_logon(TALLOC_CTX *mem_ctx,
|
||||
enum netr_LogonInfoClass level,
|
||||
const union netr_LogonLevel *in);
|
||||
|
Loading…
Reference in New Issue
Block a user