Пример #1
0
        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);
        }
Пример #2
0
 internal TrustZoneSharedKey(string trustZoneName, DateTime validFrom, DateTime validTo)
 {
     TrustZoneName = trustZoneName;
     AesKey        = RandomNumberOracle.GetRandomBytes(SharedKeyByteSize);
     ValidFrom     = validFrom;
     ValidTo       = validTo;
 }