/* * macssp.h * MSUAM * * Created by mconrad on Sun Sep 30 2001. * Copyright (c) 2001 Microsoft Corp. All rights reserved. * */ #ifndef __MAC_SSP__ #define __MAC_SSP__ #include #include "descrypt.h" #include "ntstatus.h" #include "ntlmsspv2.h" #include "ntlmsspi.h" #include "ntlmssp.h" #include "crypt.h" #include "sspdebug.h" // // From ntsam.h // #define SAM_MAX_PASSWORD_LENGTH 256 // // From sampass.h // typedef struct //_SAMPR_USER_PASSWORD { UInt16 Buffer[SAM_MAX_PASSWORD_LENGTH]; DWORD Length; }SAMPR_USER_PASSWORD, *PSAMPR_USER_PASSWORD; //typedef struct _SAMPR_USER_PASSWORD __RPC_FAR *PSAMPR_USER_PASSWORD; typedef struct _SAMPR_ENCRYPTED_USER_PASSWORD { UCHAR Buffer[516]; }SAMPR_ENCRYPTED_USER_PASSWORD, *PSAMPR_ENCRYPTED_USER_PASSWORD; typedef ENCRYPTED_LM_OWF_PASSWORD ENCRYPTED_NT_OWF_PASSWORD; typedef ENCRYPTED_NT_OWF_PASSWORD* PENCRYPTED_NT_OWF_PASSWORD; HRESULT MacSspHandleNtlmv2ChallengeMessage( IN PCSTR pszUserName, IN PCSTR pszDomainName, IN PCSTR pszWorkstation, IN PCSTR pszCleartextPassword, IN ULONG cbChallengeMessage, IN CHALLENGE_MESSAGE* pChallengeMessage, IN OUT ULONG* pNegotiateFlags, OUT ULONG* pcbAuthenticateMessage, OUT AUTHENTICATE_MESSAGE** ppAuthenticateMessage, OUT USER_SESSION_KEY* pUserSessionKey ); HRESULT MacSspGenerateChallengeMessage( IN CHAR pChallengeToClient[MSV1_0_CHALLENGE_LENGTH], OUT ULONG* pcbChallengeMessage, OUT CHALLENGE_MESSAGE** ppChallengeMessage ); BOOL MacSspCalculateLmResponse( IN PLM_CHALLENGE LmChallenge, IN PLM_OWF_PASSWORD LmOwfPassword, OUT PLM_RESPONSE LmResponse ); BOOL MacSspCalculateLmOwfPassword( IN PLM_PASSWORD LmPassword, OUT PLM_OWF_PASSWORD LmOwfPassword ); BOOL MacSspEncryptBlock( IN PCLEAR_BLOCK ClearBlock, IN PBLOCK_KEY BlockKey, OUT PCYPHER_BLOCK CypherBlock ); BOOL MacSspEncryptLmOwfPwdWithLmOwfPwd( IN PLM_OWF_PASSWORD DataLmOwfPassword, IN PLM_OWF_PASSWORD KeyLmOwfPassword, OUT PENCRYPTED_LM_OWF_PASSWORD EncryptedLmOwfPassword ); BOOL MacSspEncryptNtOwfPwdWithNtOwfPwd( IN PNT_OWF_PASSWORD DataNtOwfPassword, IN PNT_OWF_PASSWORD KeyNtOwfPassword, OUT PENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword ); BOOL MacSspSampEncryptLmPasswords( LPSTR OldUpcasePassword, LPSTR NewUpcasePassword, LPSTR NewPassword, PSAMPR_ENCRYPTED_USER_PASSWORD NewEncryptedWithOldLm, PENCRYPTED_NT_OWF_PASSWORD OldLmOwfEncryptedWithNewLm ); OSStatus MacSspSamiEncryptPasswords( IN PUNICODE_STRING oldPassword, IN PUNICODE_STRING newPassword, OUT PSAMPR_ENCRYPTED_USER_PASSWORD NewEncryptedWithOldNt, OUT PENCRYPTED_NT_OWF_PASSWORD OldNtOwfEncryptedWithNewNt ); OSStatus MacSspSamiEncryptPasswordsANSI( IN PCSTR oldPassword, IN PCSTR newPassword, OUT PSAMPR_ENCRYPTED_USER_PASSWORD NewEncryptedWithOldNt, OUT PENCRYPTED_NT_OWF_PASSWORD OldNtOwfEncryptedWithNewNt ); OSStatus MacSspSamiEncryptCStringPasswords( IN PCSTR oldPassword, IN PCSTR newPassword, OUT PSAMPR_ENCRYPTED_USER_PASSWORD NewEncryptedWithOldNt, OUT PENCRYPTED_NT_OWF_PASSWORD OldNtOwfEncryptedWithNewNt ); OSStatus MacSspSamiEncryptPStringPasswords( IN Str255 oldPassword, IN Str255 newPassword, OUT PSAMPR_ENCRYPTED_USER_PASSWORD NewEncryptedWithOldNt, OUT PENCRYPTED_NT_OWF_PASSWORD OldNtOwfEncryptedWithNewNt ); #endif //__MAC_SSP__