private static (byte[] CipherText, byte[] IV) EncryptData(byte[] data, byte[] key) { Aes aes; if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { aes = new AesCng(); } else { aes = new AesManaged(); } aes.Key = key; var iv = RandomNumberOracle.GetRandomBytes(16); aes.IV = iv; using var encryptor = aes.CreateEncryptor(); byte[] cipherText = encryptor.TransformFinalBlock(data, 0, data.Length); //Log.Verbose($"Encrypting message with key: {key.ToHashedHexString()}"); //Log.Verbose($"Encrypting message with IV: {aes.IV.ToHashedHexString()}"); //Log.Verbose($"Cipher text: {cipherText.ToHashedHexString()}"); //Log.Verbose($"Plaintext: {data.ToHashedHexString()}"); aes.Dispose(); return(cipherText, iv); }
internal TrustZoneSharedKey(string trustZoneName, DateTime validFrom, DateTime validTo) { TrustZoneName = trustZoneName; AesKey = RandomNumberOracle.GetRandomBytes(SharedKeyByteSize); ValidFrom = validFrom; ValidTo = validTo; }