1

I have a c# dll registered in regasm.exe and I am trying to call it on my classic asp application below is my code part:

I am sending a dictionary object as parameter to the function

Dim parameters                          
    Set parameters=Server.CreateObject("Scripting.Dictionary")
                            For Each Item1 In Request.Form
                                fieldName = Item1
                                fieldValue = Request.Form(Item1)                                
                                parameters.Add fieldName, fieldValue
    Next

Here is where I am calling the function

Set CudExternal=Server.Createobject("CudExternal.Security") 
Set signature = CudExternal.sign(parameters)

When I try to call the function I am getting this error.

Below is my dll code:

public class Security
    {
        private const String SECRET_KEY = "dd6b7d26fb0c4db7891b28718a1a468";

        public string sign(IDictionary<string, string> paramsArray)
        {
            return sign(buildDataToSign(paramsArray), SECRET_KEY);
        }

        private string sign(String data, String secretKey)
        {
            UTF8Encoding encoding = new System.Text.UTF8Encoding();
            byte[] keyByte = encoding.GetBytes(secretKey);

            HMACSHA256 hmacsha256 = new HMACSHA256(keyByte);
            byte[] messageBytes = encoding.GetBytes(data);
            return Convert.ToBase64String(hmacsha256.ComputeHash(messageBytes));
        }

        private string buildDataToSign(IDictionary<string, string> paramsArray)
        {
            String[] signedFieldNames = paramsArray["signed_field_names"].Split(',');
            IList<string> dataToSign = new List<string>();

            foreach (String signedFieldName in signedFieldNames)
            {
                dataToSign.Add(signedFieldName + "=" + paramsArray[signedFieldName]);
            }

            return commaSeparate(dataToSign);
        }

        private string commaSeparate(IList<string> dataToSign)
        {
            return String.Join(",", dataToSign);
        }

        public string outputr(string data)
        {
            return data;
        }
    }

How can I Resolve??...Thanks in Advance.

0 Answers0