diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2021-11-19 04:33:53 +0200 | 
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2021-11-19 04:33:53 +0200 | 
| commit | caa780fd3a752377f86f7928c8b374951cbe3783 (patch) | |
| tree | 1d3da4ad7cf60d18126fd4519e2ee4d2cd82556b /indra/newview/llsechandler_basic.cpp | |
| parent | b10f0bbd46e5119521a7b560db4a7bfa339276dc (diff) | |
| parent | 9957c28ddc5e5c129af2db662da7d69f1509af65 (diff) | |
Merge branch 'master' into DRTVWR-544-maint
# Conflicts:
#	indra/newview/llvoicevivox.cpp
Diffstat (limited to 'indra/newview/llsechandler_basic.cpp')
| -rw-r--r-- | indra/newview/llsechandler_basic.cpp | 32 | 
1 files changed, 27 insertions, 5 deletions
diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp index b4853d270a..6b06abaf99 100644 --- a/indra/newview/llsechandler_basic.cpp +++ b/indra/newview/llsechandler_basic.cpp @@ -1310,8 +1310,8 @@ LLSecAPIBasicHandler::~LLSecAPIBasicHandler()  	_writeProtectedData();  } -void LLSecAPIBasicHandler::_readProtectedData() -{	 +void LLSecAPIBasicHandler::_readProtectedData(unsigned char *unique_id, U32 id_len) +{  	// attempt to load the file into our map  	LLPointer<LLSDParser> parser = new LLSDXMLParser();  	llifstream protected_data_stream(mProtectedDataFilename.c_str(),  @@ -1322,9 +1322,7 @@ void LLSecAPIBasicHandler::_readProtectedData()  		U8 buffer[BUFFER_READ_SIZE];  		U8 decrypted_buffer[BUFFER_READ_SIZE];  		int decrypted_length;	 -		unsigned char unique_id[MAC_ADDRESS_BYTES]; -        LLMachineID::getUniqueID(unique_id, sizeof(unique_id)); -		LLXORCipher cipher(unique_id, sizeof(unique_id)); +		LLXORCipher cipher(unique_id, id_len);  		// read in the salt and key  		protected_data_stream.read((char *)salt, STORE_SALT_SIZE); @@ -1376,6 +1374,30 @@ void LLSecAPIBasicHandler::_readProtectedData()  	}  } +void LLSecAPIBasicHandler::_readProtectedData() +{ +    unsigned char unique_id[MAC_ADDRESS_BYTES]; +    try +    { +        // try default id +        LLMachineID::getUniqueID(unique_id, sizeof(unique_id)); +        _readProtectedData(unique_id, sizeof(unique_id)); +    } +    catch(LLProtectedDataException&) +    { +        // try with legacy id, it will return false if it is identical to getUniqueID +        // or if it is not assigned/not in use +        if (LLMachineID::getLegacyID(unique_id, sizeof(unique_id))) +        { +            _readProtectedData(unique_id, sizeof(unique_id)); +        } +        else +        { +            throw; +        } +    } +} +  void LLSecAPIBasicHandler::_writeProtectedData()  {	  	std::ostringstream formatted_data_ostream;  | 
