const std::string LLSavedLoginEntry::decryptPassword(const LLSD& pwdata) { std::string pw = ""; if (pwdata.isBinary() && pwdata.asBinary().size() == PASSWORD_HASH_LENGTH+1) { LLSD::Binary buffer = pwdata.asBinary(); LLXORCipher cipher(gMACAddress, 6); cipher.decrypt(&buffer[0], PASSWORD_HASH_LENGTH); buffer[PASSWORD_HASH_LENGTH] = '\0'; if (LLStringOps::isHexString(std::string(reinterpret_cast<const char*>(&buffer[0]), PASSWORD_HASH_LENGTH))) { pw.assign(reinterpret_cast<char*>(&buffer[0])); } } return pw; }
LLMaterialID::LLMaterialID(const LLSD& pMaterialID) { llassert(pMaterialID.isBinary()); parseFromBinary(pMaterialID.asBinary()); }