Example #1
0
        /// <summary>
        /// Decrypt the encryptedTuple.
        /// </summary>
        /// <param name="context">Your Android Context, likely your Activity or Service</param>
        /// <param name="alias">Alias is the name you are using for the key, use sensible name</param>
        /// <param name="encryptedTuple">Encrypted tuple.</param>
        public static string Decrypt(Context context, string alias, EncryptedTuple encryptedTuple)
        {
            var confidentialKeyWrapper = new SecretKeyWrapper(context, alias);
            var secretKeys             = confidentialKeyWrapper.CheckMacAndDecrypt(encryptedTuple.EncryptedSymmetricKey);

            return(AesCbcWithIntegrity.DecryptString(new AesCbcWithIntegrity.CipherTextIvMac(encryptedTuple.EncryptedText), secretKeys));
        }
Example #2
0
        /// <summary>
        /// Encrypt the specified clearText.
        /// </summary>
        /// <param name="context">Your Android Context, likely your Activity or Service</param>
        /// <param name="alias">Alias is the name you are using for the key, use sensible name</param>
        /// <param name="clearText">The content you want to encrypt</param>
        public static EncryptedTuple Encrypt(Context context, string alias, string clearText)
        {
            var secretKeys             = AesCbcWithIntegrity.GenerateKey();
            var confidentialKeyWrapper = new SecretKeyWrapper(context, alias);
            var encryptedSymmetricKey  = confidentialKeyWrapper.EncryptedThenMac(secretKeys);

            var encryptedBundle = AesCbcWithIntegrity.Encrypt(Encoding.UTF8.GetBytes(clearText), secretKeys);

            return(new EncryptedTuple(encryptedBundle.ToString(), encryptedSymmetricKey));
        }