Surface miCASAReadKey for FireFox extension.
This commit is contained in:
@@ -536,6 +536,51 @@ static int32_t sscsshs_UnescapeSecretIDBuf
|
||||
/* ############################### CODE ENDS HERE ############################# */
|
||||
} /* end of sscsshs_UnescapeSecretIDBuf */
|
||||
|
||||
static int32_t unescapeString(uint8_t *val, uint32_t *valueLen)
|
||||
{
|
||||
uint32_t k,i = 0;
|
||||
uint32_t len = 0;
|
||||
uint8_t *temp;
|
||||
uint32_t rc = NSSCS_SUCCESS;
|
||||
|
||||
len = *valueLen;
|
||||
temp = malloc(len);
|
||||
if (temp)
|
||||
{
|
||||
for(k = i = 0; i < len; i++)
|
||||
{
|
||||
rc = NSSCS_SUCCESS;
|
||||
if(val[i] == (SS_UTF8_T)'\\')
|
||||
{
|
||||
if(i + 1 < len)
|
||||
{
|
||||
if(val[i + 1] == (SS_UTF8_T)'\\'
|
||||
|| val[i + 1] == (SS_UTF8_T)'='
|
||||
|| val[i + 1] == (SS_UTF8_T)':')
|
||||
{
|
||||
temp[k++] = val[i + 1];
|
||||
i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
temp[k] = val[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
temp[k++] = val[i];
|
||||
}
|
||||
} // end for ...
|
||||
temp[k] = '\0';
|
||||
sscs_Utf8Strcpy(val, temp);
|
||||
*valueLen = k;
|
||||
free(temp);
|
||||
return rc;
|
||||
}
|
||||
else
|
||||
return NSSCS_E_PARSER_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@@ -1798,6 +1843,11 @@ miCASAReadKey
|
||||
epPassword,
|
||||
bytesRequired,
|
||||
ext);
|
||||
|
||||
if (rc == NSSCS_SUCCESS)
|
||||
{
|
||||
unescapeString(val, valLen);
|
||||
}
|
||||
|
||||
/* ############################### CODE EXITS HERE ############################# */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user