+ Start a Discussion
Santosh UppalaSantosh Uppala 

convert c# code to apex

Hi all,

I am facing issues while converting C# code to apex. Below is the C# code:

using System.IO;
using System.Security.Cryptography;
using System.Text;

            //REST API keys for encryption
            const string key = "a678-78js-986s-iujk-8769";
            const string IV = "ohjk-0987-6h7j-12sg-678j";

            //PlainTest of credentials along with DT in UTC for auth
            string plainText = username + Environment.NewLine +
                               password + Environment.NewLine +

            //Check the input
            if (plainText == null || plainText.Length == 0)
                throw new ArgumentNullException("plaintext", "plaintext cannot be blank.");
            if (key == null || key.Length == 0)
                throw new ArgumentNullException("key", "key cannot be blank.");

            //Get the input as bytes
            byte[] buffPlain = Encoding.UTF8.GetBytes(plainText);

            //Create and setup the crypto objects
            RijndaelManaged crypt = new RijndaelManaged();
            MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
            crypt.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(key));
            crypt.IV = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(IV));
            crypt.Mode = CipherMode.CBC;

            //Create the memory streams
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, crypt.CreateEncryptor(), CryptoStreamMode.Write);

            //Write the data through the crypto stream into the memory stream
                cs.Write(buffPlain, 0, buffPlain.Length);
                //Close the streams

                //Clear the crypto objects;

            //Get the encrypted bytes
            byte[] buffEnc = ms.ToArray();
            StringBuilder ret = new StringBuilder();

            //Convert the bytes to hex with a length of 2
            foreach (byte b in buffEnc)
                ret.AppendFormat("{0:X2}", b);

            return ret.ToString();
Briana L.Briana L.
You may find this repository very useful for converting your code: