Hi, all

I have a C# code to decrypt data as following

        public static string test(string input, string key)
        {
            if (((input == null) || string.IsNullOrEmpty(input.Trim())) || 
((input == "false") || (input == "null")))
            {
                return string.Empty;
            }
            RijndaelManaged managed = new RijndaelManaged {
                KeySize = 0x100,
                BlockSize = 0x100,
                Mode = CipherMode.CBC,
                Padding = PaddingMode.PKCS7,
                Key = Encoding.ASCII.GetBytes(key),
                IV = Encoding.ASCII.GetBytes(key)
            };
            try
            {
                byte[] buffer = Convert.FromBase64String(input);
                ICryptoTransform transform = managed.CreateDecryptor();
                byte[] bytes = null;
                using (MemoryStream stream = new MemoryStream())
                {
                    using (CryptoStream stream2 = new CryptoStream(stream, 
transform, CryptoStreamMode.Write))
                    {
                        stream2.Write(buffer, 0, buffer.Length);
                    }
                    bytes = stream.ToArray();
                }
                return Encoding.ASCII.GetString(bytes);
            }
            catch (Exception exception)
            {
                Console.Write (exception.ToString ());
                return string.Empty;
            }
        } 

And I have write a golang code as following:

func test1(data, key string) {
        raw, err := base64.StdEncoding.DecodeString(data)
        if err != nil {
                println(err.Error())
                return
        }

        block, err := aes.NewCipher([]byte(key))
        if err != nil {
                println(err.Error())
                return
        }
        mode := cipher.NewCBCDecrypter(block, []byte(key)[:aes.BlockSize])
        mode.CryptBlocks(raw, raw)

        println(string(raw))
}

Besides the PKCS7 padding problem, I can’t get the right answer. Can someone 
help me with this? Where do I get  this IV parameter?
I Can’t set IV as  C# does, because golang just complains about block size 
problem.  

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to