CryptUpdateProtectedState 함수(dpapi.h)
CryptUpdateProtectedState 함수는 사용자의 SID(보안 식별자)가 변경된 후 현재 사용자의 master 키를 마이그레이션합니다. 이 함수는 사용자가 한 도메인에서 다른 도메인으로 이동한 후 암호화된 데이터를 보존하는 데 사용할 수 있습니다.
구문
DPAPI_IMP BOOL CryptUpdateProtectedState(
[in] PSID pOldSid,
[in] LPCWSTR pwszOldPassword,
[in] DWORD dwFlags,
[out] DWORD *pdwSuccessCount,
[out] DWORD *pdwFailureCount
);
매개 변수
[in] pOldSid
사용자의 이전 SID를 포함하는 SID 구조체의 주소입니다. 이 SID는 이전 master 키를 찾는 데 사용됩니다. 이 매개 변수가 NULL이면 현재 사용자 SID에 대한 master 키가 마이그레이션됩니다.
이 매개 변수 또는 pwszOldPassword 매개 변수는 NULL일 수 있지만 둘 다 그렇지는 않습니다.
[in] pwszOldPassword
SID를 변경하기 전에 사용자의 암호를 포함하는 null로 종료된 유니코드 문자열에 대한 포인터입니다. 이 암호는 이전 master 키의 암호를 해독하는 데 사용됩니다. 이 매개 변수가 NULL이면 현재 사용자의 암호가 사용됩니다.
이 매개 변수 또는 pOldSid 매개 변수는 NULL일 수 있지만 둘 다 그렇지는 않습니다.
[in] dwFlags
사용되지 않습니다. 0이어야 합니다.
[out] pdwSuccessCount
성공적으로 마이그레이션된 master 키 수를 수신하는 DWORD 변수의 주소입니다.
[out] pdwFailureCount
암호를 해독할 수 없는 master 키 수를 수신하는 DWORD 변수의 주소입니다.
하나 이상의 master 키를 해독할 수 없는 경우 반드시 오류가 되는 것은 아닙니다. 일부 사용자는 정체되어 오랫동안 암호 해독할 수 없는 master 키를 보유할 수 있습니다. 이 문제가 발생할 수 있는 한 가지 방법은 로컬 사용자의 암호가 관리적으로 재설정된 경우입니다.
반환 값
함수가 성공하면 반환 값은 TRUE입니다.
함수가 실패하면 반환 값은 FALSE입니다. 확장된 오류 정보는 GetLastError를 호출합니다. 몇 가지 가능한 오류 코드에는 다음이 포함됩니다.
반환 코드 | 설명 |
---|---|
|
매개 변수 중 하나에는 유효하지 않은 값이 포함되어 있습니다. |
|
메모리 할당 오류가 발생했습니다. |
|
이전 암호를 암호화할 수 없습니다. |
설명
이 함수는 이전 암호를 사용하여 이전 master 키 디렉터리에 있는 사용자의 모든 master 키를 해독하고 사용자의 현재 암호로 암호화된 사용자의 현재 master 키 디렉터리에 저장합니다.
이 함수는 키가 마이그레이션되는 사용자 계정에서 호출되어야 합니다.
이 함수가 이전 master 키를 성공적으로 마이그레이션할 수 있으면 이전 master 키가 자동으로 삭제됩니다. 암호를 해독할 수 없는 마스터 키는 삭제되지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | dpapi.h |
라이브러리 | Crypt32.lib |
DLL | Crypt32.dll |