Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

82 lines
3.0 KiB

// length of the salt to append to password
#define PASSWORD_SALT_LEN 16
// Primitive functions not shown
#define OLD_HMAC_VERSION 0x01
#define NEW_HMAC_VERSION 0x02
// externally used functions
BOOL FProvEncryptData(
LPCWSTR szUser, // in
LPCWSTR szMasterKey, // in
BYTE rgbPwd[], // in, must be A_SHA_DIGEST_LEN
PBYTE* ppbMyData, // in out
DWORD* pcbMyData); // in out
BOOL FProvDecryptData(
LPCWSTR szUser, // in
LPCWSTR szMasterKey, // in
BYTE rgbPwd[], // in, must be A_SHA_DIGEST_LEN
PBYTE* ppbData, // in out
DWORD* pcbData); // in out
BOOL FCheckPWConfirm(
LPCWSTR szUser, // in
LPCWSTR szMasterKey, // in
BYTE rgbPwd[]); // in
BOOL FPasswordChangeNotify(
LPCWSTR szUser, // in
LPCWSTR szPasswordName,// in
BYTE rgbOldPwd[], // in, must be A_SHA_DIGEST_LEN
DWORD cbOldPwd, // in
BYTE rgbNewPwd[], // in, must be A_SHA_DIGEST_LEN
DWORD cbNewPwd); // in
// performs MAC with location data, making data immovable
BOOL FHMACGeographicallySensitiveData(
LPCWSTR szUser, // in
LPCWSTR szPasswordName, // in
DWORD dwMACVersion, // handle old, new MACs
BYTE rgbPwd[], // in, must be A_SHA_DIGEST_LEN
const GUID* pguidType, // in
const GUID* pguidSubtype, // in
LPCWSTR szItem, // in, may be NULL
PBYTE pbBuf, // in
DWORD cbBuf, // in
BYTE rgbHMAC[]); // out, must be A_SHA_DIGEST_LEN
// given pwd, salt, and ptr to master key buffer,
// decrypts and checks MAC on master key
BOOL FMyDecryptMK(
BYTE rgbSalt[],
DWORD cbSalt,
BYTE rgbPwd[A_SHA_DIGEST_LEN],
BYTE rgbConfirm[A_SHA_DIGEST_LEN],
PBYTE* ppbMK,
DWORD* pcbMK);
BOOL
FMyDecryptMKEx(
BYTE rgbSalt[],
DWORD cbSalt,
BYTE rgbPwd[A_SHA_DIGEST_LEN],
BYTE rgbConfirm[A_SHA_DIGEST_LEN],
PBYTE* ppbMK,
DWORD* pcbMK,
BOOL *pfResetSecurityState
);
// given pwd, salt, and Master Key buffer, MACs and Encrypts Master Key buffer
BOOL FMyEncryptMK(
BYTE rgbSalt[],
DWORD cbSalt,
BYTE rgbPwd[A_SHA_DIGEST_LEN],
BYTE rgbConfirm[A_SHA_DIGEST_LEN],
PBYTE* ppbMK,
DWORD* pcbMK);
// France check
BOOL FIsEncryptionPermitted();