MCPcopy Create free account
hub / github.com/bailey27/cppcryptfs / RetrievePassword

Method RetrievePassword

cppcryptfs/ui/savedpasswords.cpp:150–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148}
149
150BOOL SavedPasswords::RetrievePassword(LPCWSTR path, LPWSTR password_buf, DWORD password_buf_len)
151{
152 wstring hash;
153
154 if (!GetPathHash(path, hash))
155 return FALSE;
156
157 BYTE *p = NULL;
158 UINT len = 0;
159 if (!theApp.GetProfileBinary(SAVED_PASSWORDS_SECTION, hash.c_str(), &p, &len))
160 return FALSE;
161
162 DATA_BLOB pw_blob;
163 DATA_BLOB enc_pw_blob;
164
165 DATA_BLOB optional_entropy;
166 const char *entropy = OPTIONAL_ENTROPY;
167 optional_entropy.cbData = (DWORD)strlen(entropy);
168 optional_entropy.pbData = (BYTE*)entropy;
169
170 enc_pw_blob.cbData = len;
171 enc_pw_blob.pbData = p;
172
173 BOOL bResult = CryptUnprotectData(&enc_pw_blob, NULL, &optional_entropy, NULL, NULL, 0, &pw_blob);
174
175 if (!bResult) {
176 delete[] p;
177 return FALSE;
178 }
179
180 wcscpy_s(password_buf, password_buf_len, (WCHAR*)pw_blob.pbData);
181
182 SecureZeroMemory(pw_blob.pbData, pw_blob.cbData);
183
184 LocalFree(pw_blob.pbData);
185
186 delete[] p;
187
188 return TRUE;
189}
190
191int SavedPasswords::GetSavedPasswordsCount()
192{

Callers

nothing calls this directly

Calls 1

GetPathHashFunction · 0.85

Tested by

no test coverage detected