public static T CreateDesignData <T>(params string[] propertyValues) where T : class { if (typeof(T).Name.Contains("EcKeyPairInfo")) { var seed = Encoding.UTF8.GetBytes(propertyValues.Aggregate((s, s1) => s + s1)); seed = SHA1.Create().ComputeHash(seed); var key = ToHexString(seed); if (!KeyStorage.ContainsKey(key)) { KeyStorage.Add(key, EncryptionSuite.Encryption.EllipticCurveCryptographer.CreateKeyPair(false)); } return(new EncryptionSuite.Contract.EcKeyPairInfo() { TokenLabel = propertyValues[1], ManufacturerId = "Nitrokey", CurveDescription = "brainpoolP320r1 (320 bit)", ECParamsData = StringToByteArray("06092b2403030208010109"), PublicKey = KeyStorage[key], EcIdentifier = new EcIdentifier() { KeyLabel = propertyValues[0], TokenSerialNumber = propertyValues[2] } } as T); } return(default(T)); }
private void AddToKeyStorage(string strKey, string strValue) { if (!KeyStorage.ContainsKey(strKey)) { KeyStorage.Add(strKey, strValue); } else { KeyStorage[strKey] = strValue; } }