private ThreadSafeCreateKeyedHashedAlgorithm ( SigningAlgorithm algorithmName ) : KeyedHashAlgorithm | ||
algorithmName | SigningAlgorithm | |
return | KeyedHashAlgorithm |
private KeyedHashAlgorithm ThreadSafeCreateKeyedHashedAlgorithm(SigningAlgorithm algorithmName)
{
string algorithmNameUpper = algorithmName.ToString().ToUpper(CultureInfo.InvariantCulture);
KeyedHashAlgorithm algorithm = null;
bool firstCreation = true;
lock (_keyedHashAlgorithmCreationLock)
{
firstCreation = !_initializedAlgorithmNames.Contains(algorithmNameUpper);
if (firstCreation)
{
algorithm = KeyedHashAlgorithm.Create(algorithmNameUpper);
_initializedAlgorithmNames.Add(algorithmNameUpper);
}
}
if (!firstCreation)
{
algorithm = KeyedHashAlgorithm.Create(algorithmNameUpper);
}
return algorithm;
}