The iOS il2cpp implementation of System.Security.Cryptography.RandomNumberGenerator, which is called by the initialization of KeyedHashAlgorithm.Create for a given algorithm name, is not threadsafe. We keep track of which algorithms have been initialized, and retain a lock if this is the first time we create a particular algorithm.