public async Task GenerateFingerprintTest()
        {
            var apiKey       = Environment.GetEnvironmentVariable("baelor-test-apikey");
            var fingerprints = await FingerprintManager.GenerateFingerprint(apiKey);

            Assert.True(fingerprints.Count() == FingerprintManager.FingerprintCount);
        }
        public async Task TestIvGeneration()
        {
            var apiKey       = Environment.GetEnvironmentVariable("baelor-test-apikey");
            var fingerprints = await FingerprintManager.GenerateFingerprint(apiKey);

            var cryptoManagaer = new CryptographyManager(new FingerprintManager(fingerprints));

            var ivA = cryptoManagaer.GenerateNewIv();
            var ivB = cryptoManagaer.GenerateNewIv();

            Assert.False(ivA == ivB);
            Assert.True(ivA.Length * 8 == CryptographyManager.BlockBitSize);
            Assert.True(ivB.Length * 8 == CryptographyManager.BlockBitSize);
        }
        public async Task TestEncryptionAndDecryption(string data)
        {
            var apiKey       = Environment.GetEnvironmentVariable("baelor-test-apikey");
            var fingerprints = await FingerprintManager.GenerateFingerprint(apiKey);

            var cryptoManagaer = new CryptographyManager(new FingerprintManager(fingerprints));

            var key = cryptoManagaer.GenerateNewKey();
            var iv  = cryptoManagaer.GenerateNewIv();

            var encryptedDataFingerprints      = cryptoManagaer.Encrypt(Encoding.ASCII.GetBytes(data), key, iv);
            var formattedEncryptedFingerprints = "";

            foreach (var fingerprint in encryptedDataFingerprints)
            {
                formattedEncryptedFingerprints += fingerprint.Lyric + "\n";
            }
            formattedEncryptedFingerprints = formattedEncryptedFingerprints.TrimEnd('\n');

            var decryptedData      = cryptoManagaer.Decrypt(formattedEncryptedFingerprints, key, iv);
            var decryptedPlainText = Encoding.ASCII.GetString(decryptedData);

            Assert.True(data == decryptedPlainText);
        }