Esempio n. 1
0
const LLSD LLSavedLoginEntry::encryptPassword(const std::string& password)
{
	LLSD pwdata;

	if (password.size() == PASSWORD_HASH_LENGTH && LLStringOps::isHexString(password))
	{
		LLSD::Binary buffer(PASSWORD_HASH_LENGTH+1);
		LLStringUtil::copy(reinterpret_cast<char*>(&buffer[0]), password.c_str(), PASSWORD_HASH_LENGTH+1);
		buffer[PASSWORD_HASH_LENGTH] = '\0';
		LLXORCipher cipher(gMACAddress, 6);
		cipher.encrypt(&buffer[0], PASSWORD_HASH_LENGTH);
		pwdata.assign(buffer);
	}

	return pwdata;
}
Esempio n. 2
0
//----------------------------------------------------------------------------
// LLControlGroupCLP defintions
//----------------------------------------------------------------------------
void setControlValueCB(const LLCommandLineParser::token_vector_t& value,
                       const std::string& opt_name,
                       LLControlGroup* ctrlGroup)
{
    // *FIX: Do sematic conversion here.
    // LLSD (ImplString) Is no good for doing string to type conversion for...
    // booleans
    // compound types
    // ?...

    LLControlVariable* ctrl = ctrlGroup->getControl(opt_name);
    if(NULL != ctrl)
    {
        switch(ctrl->type())
        {
        case TYPE_BOOLEAN:
            if(value.size() > 1)
            {
                llwarns << "Ignoring extra tokens." << llendl;
            }

            if(value.size() > 0)
            {
                // There's a token. check the string for true/false/1/0 etc.
                BOOL result = false;
                BOOL gotSet = LLStringUtil::convertToBOOL(value[0], result);
                if(gotSet)
                {
                    ctrl->setValue(LLSD(result), false);
                }
            }
            else
            {
                ctrl->setValue(LLSD(true), false);
            }
            break;

        default:
        {
            // For the default types, let llsd do the conversion.
            if(value.size() > 1 && ctrl->isType(TYPE_LLSD))
            {
                // Assume its an array...
                LLSD llsdArray;
                for(unsigned int i = 0; i < value.size(); ++i)
                {
                    LLSD llsdValue;
                    llsdValue.assign(LLSD::String(value[i]));
                    llsdArray.set(i, llsdValue);
                }

                ctrl->setValue(llsdArray, false);
            }
            else if(value.size() > 0)
            {
                if(value.size() > 1)
                {
                    llwarns << "Ignoring extra tokens mapped to the setting: " << opt_name << "." << llendl;
                }

                LLSD llsdValue;
                llsdValue.assign(LLSD::String(value[0]));
                ctrl->setValue(llsdValue, false);
            }
        }
        break;
        }
    }
    else
    {
        llwarns << "Command Line option mapping '"
                << opt_name
                << "' not found! Ignoring."
                << llendl;
    }
}