本文整理汇总了C++中CItemData::GetPassword方法的典型用法代码示例。如果您正苦于以下问题:C++ CItemData::GetPassword方法的具体用法?C++ CItemData::GetPassword怎么用?C++ CItemData::GetPassword使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItemData
的用法示例。
在下文中一共展示了CItemData::GetPassword方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoBrowse
void PasswordSafeFrame::DoBrowse(CItemData &item, bool bAutotype)
{
CItemData* pci = &item;
StringX sx_pswd;
if (pci->IsDependent()) {
CItemData *pbci = m_core.GetBaseEntry(pci);
ASSERT(pbci != NULL);
sx_pswd = pbci->GetPassword();
if (pci->IsShortcut())
pci = pbci;
} else
sx_pswd = pci->GetPassword();
wxString cs_command = towxstring(pci->GetURL());
if (!cs_command.IsEmpty()) {
std::vector<size_t> vactionverboffsets;
StringX sxautotype = PWSAuxParse::GetAutoTypeString(*pci, m_core,
vactionverboffsets);
LaunchBrowser(cs_command, sxautotype, vactionverboffsets, bAutotype);
#ifdef NOT_YET
SetClipboardData(sx_pswd);
UpdateLastClipboardAction(CItemData::PASSWORD);
#endif
UpdateAccessTime(item);
}
}
示例2: ReadRecord
int PWSfileV1V2::ReadV2Header()
{
m_hdr.m_nCurrentMajorVersion = 1;
m_hdr.m_nCurrentMinorVersion = 0;
CItemData header;
// need to fallback to V17, since the header
// is always written in this format
VERSION sv = m_curversion;
m_curversion = V17;
int status = ReadRecord(header);
// restore after reading V17-format header
m_curversion = sv;
if (status == SUCCESS) {
const StringX version = header.GetPassword();
// Compare to AltVersionString due to silly mistake
// "2.0" as well as "pre-2.0" are actually 2.0. sigh.
if (version == VersionString || version == AltVersionString) {
status = SUCCESS;
m_hdr.m_nCurrentMajorVersion = 2;
} else
status = WRONG_VERSION;
}
if (status == SUCCESS)
m_hdr.m_prefString = header.GetNotes();
return status;
}
示例3: GetAutoTypeString
StringX PWSAuxParse::GetAutoTypeString(const CItemData &ci,
const PWScore &core,
std::vector<size_t> &vactionverboffsets)
{
// Set up all the data (a shortcut entry will change all of them!)
StringX sxgroup = ci.GetGroup();
StringX sxtitle = ci.GetTitle();
StringX sxuser = ci.GetUser();
StringX sxpwd = ci.GetPassword();
StringX sxnotes = ci.GetNotes();
StringX sxurl = ci.GetURL();
StringX sxemail = ci.GetEmail();
StringX sxautotype = ci.GetAutoType();
if (ci.IsAlias()) {
const CItemData *pbci = core.GetBaseEntry(&ci);
if (pbci != NULL) {
sxpwd = pbci->GetPassword();
} else { // Problem - alias entry without a base!
ASSERT(0);
}
} else if (ci.IsShortcut()) {
const CItemData *pbci = core.GetBaseEntry(&ci);
if (pbci != NULL) {
sxgroup = pbci->GetGroup();
sxtitle = pbci->GetTitle();
sxuser = pbci->GetUser();
sxpwd = pbci->GetPassword();
sxnotes = pbci->GetNotes();
sxurl = pbci->GetURL();
sxemail = pbci->GetEmail();
sxautotype = pbci->GetAutoType();
} else { // Problem - shortcut entry without a base!
ASSERT(0);
}
} // ci.IsShortcut()
// If empty, try the database default
if (sxautotype.empty()) {
sxautotype = PWSprefs::GetInstance()->
GetPref(PWSprefs::DefaultAutotypeString);
// If still empty, take this default
if (sxautotype.empty()) {
// checking for user and password for default settings
if (!sxpwd.empty()){
if (!sxuser.empty())
sxautotype = DEFAULT_AUTOTYPE;
else
sxautotype = _T("\\p\\n");
}
}
}
return PWSAuxParse::GetAutoTypeString(sxautotype, sxgroup,
sxtitle, sxuser, sxpwd,
sxnotes, sxurl, sxemail,
vactionverboffsets);
}
示例4: Command
UpdatePasswordCommand::UpdatePasswordCommand(CommandInterface *pcomInt,
CItemData &ci,
const StringX sxNewPassword)
: Command(pcomInt), m_sxNewPassword(sxNewPassword)
{
m_entry_uuid = ci.GetUUID();
m_old_status = ci.GetStatus();
m_sxOldPassword = ci.GetPassword();
m_sxOldPWHistory = ci.GetPWHistory();
ci.GetXTime(m_tttOldXTime);
}
示例5: OnTrayBrowse
void DboxMain::OnTrayBrowse(UINT nID)
{
ASSERT(((nID >= ID_MENUITEM_TRAYBROWSE1) && (nID <= ID_MENUITEM_TRAYBROWSEMAX)) ||
((nID >= ID_MENUITEM_TRAYBROWSEPLUS1) && (nID <= ID_MENUITEM_TRAYBROWSEPLUSMAX)));
CItemData ci;
const bool bDoAutotype = (nID >= ID_MENUITEM_TRAYBROWSEPLUS1) &&
(nID <= ID_MENUITEM_TRAYBROWSEPLUSMAX);
if (!bDoAutotype) {
if (!GetRUEntry(m_RUEList, nID - ID_MENUITEM_TRAYBROWSE1, ci))
return;
} else {
if (!GetRUEntry(m_RUEList, nID - ID_MENUITEM_TRAYBROWSEPLUS1, ci))
return;
}
if (ci.IsShortcut()) {
if (!SafeGetBaseEntry(ci, ci))
return;
}
if (!ci.IsURLEmpty()) {
std::vector<size_t> vactionverboffsets;
StringX sxAutotype = PWSAuxParse::GetAutoTypeString(ci.GetAutoType(),
ci.GetGroup(), ci.GetTitle(),
ci.GetUser(),
ci.GetPassword(), ci.GetPreviousPassword(),
ci.GetNotes(), ci.GetURL(), ci.GetEmail(),
vactionverboffsets);
LaunchBrowser(ci.GetURL().c_str(), sxAutotype, vactionverboffsets, bDoAutotype);
if (PWSprefs::GetInstance()->GetPref(PWSprefs::CopyPasswordWhenBrowseToURL)) {
SetClipboardData(ci.GetPassword());
UpdateLastClipboardAction(CItemData::PASSWORD);
}
}
UpdateAccessTime(ci.GetUUID());
}
示例6: OnTrayCopyPassword
void DboxMain::OnTrayCopyPassword(UINT nID)
{
ASSERT((nID >= ID_MENUITEM_TRAYCOPYPASSWORD1) && (nID <= ID_MENUITEM_TRAYCOPYPASSWORDMAX));
CItemData ci;
if (!GetRUEntry(m_RUEList, nID - ID_MENUITEM_TRAYCOPYPASSWORD1, ci))
return;
if (ci.IsDependent()) {
if (!SafeGetBaseEntry(ci, ci))
return; // fail safely in release
}
const StringX cs_password = ci.GetPassword();
SetClipboardData(cs_password);
UpdateLastClipboardAction(CItemData::PASSWORD);
UpdateAccessTime(ci.GetUUID());
}
示例7: ItemDisplayString
wxString PWSTreeCtrl::ItemDisplayString(const CItemData &item) const
{
PWSprefs *prefs = PWSprefs::GetInstance();
const wxString title = item.GetTitle().c_str();
wxString disp = title;
if (prefs->GetPref(PWSprefs::ShowUsernameInTree)) {
const wxString user = item.GetUser().c_str();
if (!user.empty())
disp += wxT(" [") + user + wxT("]");
}
if (prefs->GetPref(PWSprefs::ShowPasswordInTree)) {
const wxString passwd = item.GetPassword().c_str();
if (!passwd.empty())
disp += wxT(" {") + passwd + wxT("}");
}
return disp;
}
示例8: ASSERT
int PWSfileV1V2::WriteRecord(const CItemData &item)
{
ASSERT(m_fd != NULL);
ASSERT(m_curversion != UNKNOWN_VERSION);
int status = SUCCESS;
switch (m_curversion) {
case V17:
{
// 1.x programs totally ignore the type byte, hence safe to write it
// (no need for two WriteCBC functions)
// Note that 2.0 format still requires that the header be in this format,
// So that old programs reading new databases won't crash,
// This introduces a small security issue, in that the header is known text,
// making the password susceptible to a dictionary attack on the first block,
// rather than the hash^n in the beginning of the file.
// we can help minimize this here by writing a random byte in the "type"
// byte of the first block.
StringX name = item.GetName();
// If name field already exists - use it. This is for the 2.0 header, as well as for files
// that were imported and re-exported.
if (name.empty()) {
// The name in 1.7 consists of title + SPLTCHR + username
// DEFUSERNAME was used in previous versions, but 2.0 converts this upon import
// so it is not an issue here.
// Prepend 2.0 group field to name, if not empty
// i.e. group "finances" name "broker" -> "finances.broker"
StringX group = item.GetGroup();
StringX title = item.GetTitle();
if (!group.empty()) {
group += _T(".");
group += title;
title = group;
}
name = title;
name += SPLTCHR;
name += item.GetUser();
}
unsigned char dummy_type;
PWSrand::GetInstance()->GetRandomData(&dummy_type, 1);
WriteCBC(dummy_type, name);
WriteCBC(CItemData::PASSWORD, item.GetPassword());
WriteCBC(CItemData::NOTES, ReMergeNotes(item));
break;
}
case V20:
{
{
uuid_array_t uuid_array;
item.GetUUID(uuid_array);
PWSfile::WriteCBC(CItemData::UUID, uuid_array, sizeof(uuid_array_t));
}
WriteCBC(CItemData::GROUP, item.GetGroup());
WriteCBC(CItemData::TITLE, item.GetTitle());
WriteCBC(CItemData::USER, item.GetUser());
WriteCBC(CItemData::PASSWORD, item.GetPassword());
WriteCBC(CItemData::NOTES, ReMergeNotes(item));
WriteCBC(CItemData::END, _T(""));
break;
}
default:
ASSERT(0);
status = UNSUPPORTED_VERSION;
}
return status;
}
示例9: Merge
//.........这里部分代码省略.........
if (otherItem.IsDependent())
continue;
if (subgroup_bset &&
!otherItem.Matches(subgroup_name, subgroup_object, subgroup_function))
continue;
const StringX sx_otherGroup = otherItem.GetGroup();
const StringX sx_otherTitle = otherItem.GetTitle();
const StringX sx_otherUser = otherItem.GetUser();
StringX sxMergedEntry;
Format(sxMergedEntry, GROUPTITLEUSERINCHEVRONS,
sx_otherGroup.c_str(), sx_otherTitle.c_str(), sx_otherUser.c_str());
ItemListConstIter foundPos = Find(sx_otherGroup, sx_otherTitle, sx_otherUser);
otherItem.GetUUID(base_uuid);
memcpy(new_base_uuid, base_uuid, sizeof(new_base_uuid));
bTitleRenamed = false;
if (foundPos != GetEntryEndIter()) {
// Found a match, see if other fields also match
CItemData curItem = GetEntry(foundPos);
// Can't merge into a protected entry. If we were going to - add instead
unsigned char ucprotected;
curItem.GetProtected(ucprotected);
stringT str_diffs(_T("")), str_temp;
int diff_flags = 0;
int32 cxtint, oxtint;
time_t cxt, oxt;
if (otherItem.GetPassword() != curItem.GetPassword()) {
diff_flags |= MRG_PASSWORD;
LoadAString(str_temp, IDSC_FLDNMPASSWORD);
str_diffs += str_temp + _T(", ");
}
if (otherItem.GetNotes() != curItem.GetNotes()) {
diff_flags |= MRG_NOTES;
LoadAString(str_temp, IDSC_FLDNMNOTES);
str_diffs += str_temp + _T(", ");
}
if (otherItem.GetURL() != curItem.GetURL()) {
diff_flags |= MRG_URL;
LoadAString(str_temp, IDSC_FLDNMURL);
str_diffs += str_temp + _T(", ");
}
if (otherItem.GetAutoType() != curItem.GetAutoType()) {
diff_flags |= MRG_AUTOTYPE;
LoadAString(str_temp, IDSC_FLDNMAUTOTYPE);
str_diffs += str_temp + _T(", ");
}
if (otherItem.GetPWHistory() != curItem.GetPWHistory()) {
diff_flags |= MRG_HISTORY;
LoadAString(str_temp, IDSC_FLDNMPWHISTORY);
str_diffs += str_temp + _T(", ");
}
// Don't test policy or symbols if either entry is using a named policy
// as these are meaningless to compare
if (otherItem.GetPolicyName().empty() && curItem.GetPolicyName().empty()) {
示例10: CompareEntries
bool CCompareResultsDlg::CompareEntries(st_CompareData *pst_data)
{
CItemData::FieldBits bsConflicts;
bsConflicts.reset();
ItemListIter iter;
iter = m_pcore0->Find(pst_data->uuid0);
CItemData currentItem = iter->second;
iter = m_pcore1->Find(pst_data->uuid1);
CItemData compItem = iter->second;
StringX sxCurrentPassword, sxComparisonPassword;
if (currentItem.GetEntryType() == CItemData::ET_ALIAS ||
currentItem.GetEntryType() == CItemData::ET_SHORTCUT) {
CItemData *pci_base = m_pcore0->GetBaseEntry(¤tItem);
sxCurrentPassword == pci_base->GetPassword();
} else
sxCurrentPassword == currentItem.GetPassword();
if (compItem.GetEntryType() == CItemData::ET_ALIAS ||
compItem.GetEntryType() == CItemData::ET_SHORTCUT) {
CItemData *pci_base = m_pcore1->GetBaseEntry(&compItem);
sxComparisonPassword == pci_base->GetPassword();
} else
sxComparisonPassword == compItem.GetPassword();
if (m_bsFields.test(CItemData::PASSWORD) &&
sxCurrentPassword != sxComparisonPassword)
bsConflicts.flip(CItemData::PASSWORD);
if (m_bsFields.test(CItemData::NOTES) &&
FieldsNotEqual(currentItem.GetNotes(), compItem.GetNotes(), m_bTreatWhiteSpaceasEmpty))
bsConflicts.flip(CItemData::NOTES);
if (m_bsFields.test(CItemData::CTIME) &&
currentItem.GetCTime() != compItem.GetCTime())
bsConflicts.flip(CItemData::CTIME);
if (m_bsFields.test(CItemData::PMTIME) &&
currentItem.GetPMTime() != compItem.GetPMTime())
bsConflicts.flip(CItemData::PMTIME);
if (m_bsFields.test(CItemData::ATIME) &&
currentItem.GetATime() != compItem.GetATime())
bsConflicts.flip(CItemData::ATIME);
if (m_bsFields.test(CItemData::XTIME) &&
currentItem.GetXTime() != compItem.GetXTime())
bsConflicts.flip(CItemData::XTIME);
if (m_bsFields.test(CItemData::RMTIME) &&
currentItem.GetRMTime() != compItem.GetRMTime())
bsConflicts.flip(CItemData::RMTIME);
if (m_bsFields.test(CItemData::XTIME_INT)) {
int current_xint, comp_xint;
currentItem.GetXTimeInt(current_xint);
compItem.GetXTimeInt(comp_xint);
if (current_xint != comp_xint)
bsConflicts.flip(CItemData::XTIME_INT);
}
if (m_bsFields.test(CItemData::URL) &&
FieldsNotEqual(currentItem.GetURL(), compItem.GetURL(),
m_bTreatWhiteSpaceasEmpty))
bsConflicts.flip(CItemData::URL);
if (m_bsFields.test(CItemData::AUTOTYPE) &&
FieldsNotEqual(currentItem.GetAutoType(), compItem.GetAutoType(),
m_bTreatWhiteSpaceasEmpty))
bsConflicts.flip(CItemData::AUTOTYPE);
if (m_bsFields.test(CItemData::PWHIST) &&
currentItem.GetPWHistory() != compItem.GetPWHistory())
bsConflicts.flip(CItemData::PWHIST);
if (m_bsFields.test(CItemData::POLICY) &&
currentItem.GetPWPolicy() != compItem.GetPWPolicy())
bsConflicts.flip(CItemData::POLICY);
if (m_bsFields.test(CItemData::POLICYNAME) &&
currentItem.GetPolicyName() != compItem.GetPolicyName())
bsConflicts.flip(CItemData::POLICYNAME);
if (m_bsFields.test(CItemData::RUNCMD) &&
currentItem.GetRunCommand() != compItem.GetRunCommand())
bsConflicts.flip(CItemData::RUNCMD);
if (m_bsFields.test(CItemData::DCA) &&
currentItem.GetDCA() != compItem.GetDCA())
bsConflicts.flip(CItemData::DCA);
if (m_bsFields.test(CItemData::SHIFTDCA) &&
currentItem.GetShiftDCA() != compItem.GetShiftDCA())
bsConflicts.flip(CItemData::SHIFTDCA);
if (m_bsFields.test(CItemData::EMAIL) &&
currentItem.GetEmail() != compItem.GetEmail())
bsConflicts.flip(CItemData::EMAIL);
if (m_bsFields.test(CItemData::PROTECTED) &&
currentItem.GetProtected() != compItem.GetProtected())
bsConflicts.flip(CItemData::PROTECTED);
if (m_bsFields.test(CItemData::SYMBOLS) &&
currentItem.GetSymbols() != compItem.GetSymbols())
bsConflicts.flip(CItemData::SYMBOLS);
if (m_bsFields.test(CItemData::KBSHORTCUT) &&
currentItem.GetKBShortcut() != compItem.GetKBShortcut())
bsConflicts.flip(CItemData::KBSHORTCUT);
return bsConflicts.none();
}
示例11: DoCopyPassword
void PasswordSafeFrame::DoCopyPassword(CItemData &item)
{
PWSclipboard::GetInstance()->SetData(item.GetPassword());
UpdateAccessTime(item);
}