30 bool StoreSecret(
const wxString& aService,
const wxString& aKey,
const wxString& aSecret )
32 wxString display = aService + wxS(
":" ) + aKey;
35 wxScopedCharBuffer utf8Secret = aSecret.utf8_str();
37 CREDENTIALW cred = { 0 };
38 cred.Type = CRED_TYPE_GENERIC;
39 cred.TargetName = (LPWSTR) display.wc_str();
40 cred.CredentialBlobSize = (DWORD) utf8Secret.length();
41 cred.CredentialBlob = (LPBYTE) utf8Secret.data();
42 cred.Persist = CRED_PERSIST_ENTERPRISE;
44 return CredWriteW( &cred, 0 );
47 bool GetSecret(
const wxString& aService,
const wxString& aKey, wxString& aSecret )
49 wxString display = aService + wxS(
":" ) + aKey;
51 CREDENTIALW* cred =
nullptr;
52 bool result = CredReadW( display.wc_str(), CRED_TYPE_GENERIC, 0, &cred );
56 aSecret = wxString::FromUTF8( (
const char*) cred->CredentialBlob,
57 cred->CredentialBlobSize );
wxString result
Test unit parsing edge cases and error handling.