Beispiel #1
0
        public string GenAuthXML_KYC_OTP(string aadharNo = "", string publicKey = "", string pid = "", string txn = "")
        {
            if (!string.IsNullOrEmpty(aadharNo))
            {
                txn = aadharNo + System.DateTime.Now.ToString("yyyyMMddHHmmss:fff");
                txn = "UKC:" + txn;
            }
            else
            {
                txn = "UKC:" + txn;
            }



            Enc xx = new Enc(Convert.FromBase64String(publicKey));

            //Generate Session Key
            byte[] sessionKey = xx.generateSessionKey();
            //Now Encrypt Session Key using Public Certificate of UIDAI
            byte[] encryptedSessionKey = xx.encryptUsingPublicKey(sessionKey);

            byte[] pidXmlBytes = Encoding.UTF8.GetBytes(pid);
            //Encrypt PID block using Session Key
            byte[] encXMLPIDData = xx.encryptUsingSessionKey(sessionKey, pidXmlBytes);
            //Calculate HMAC of PID Block
            byte[] hmac = xx.generateSha256Hash(pidXmlBytes);
            //Encrypt HMAC using Session Key
            byte[] encryptedHmacBytes = xx.encryptUsingSessionKey(sessionKey, hmac);
            //Get Certificate Identifier from Public Key
            string certificateIdentifier = xx.getCertificateIdentifier();


            XmlDocument XDAuth  = new XmlDocument();
            XmlNode     docNode = XDAuth.CreateXmlDeclaration("1.0", "UTF-8", "yes");

            XDAuth.AppendChild(docNode);
            XmlNode Root = XDAuth.AppendChild(XDAuth.CreateElement("Auth", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            SetAttribute(XDAuth, Root, "uid", aadharNo.Trim());
            SetAttribute(XDAuth, Root, "tid", "public");
            SetAttribute(XDAuth, Root, "ac", "STGNIC0011");
            SetAttribute(XDAuth, Root, "sa", "AIMS");
            SetAttribute(XDAuth, Root, "ver", "1.6");
            SetAttribute(XDAuth, Root, "txn", txn);
            SetAttribute(XDAuth, Root, "lk", "AIMS");
            SetAttribute(XDAuth, Root, "xmlns", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0");


            XmlNode Meta = Root.AppendChild(XDAuth.CreateElement("Meta", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            SetAttribute(XDAuth, Meta, "udc", "NICTEST");
            SetAttribute(XDAuth, Meta, "fdc", "NC");
            SetAttribute(XDAuth, Meta, "idc", "NA");
            SetAttribute(XDAuth, Meta, "pip", "127.0.0.1");
            SetAttribute(XDAuth, Meta, "lot", "P");
            SetAttribute(XDAuth, Meta, "lov", "110092");

            XmlNode Skey = Root.AppendChild(XDAuth.CreateElement("Skey", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            SetAttribute(XDAuth, Skey, "ci", certificateIdentifier);
            Skey.InnerXml = Convert.ToBase64String(encryptedSessionKey);

            XmlNode Uses = Root.AppendChild(XDAuth.CreateElement("Uses", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            XDAuth.DocumentElement.AppendChild(Uses);
            SetAttribute(XDAuth, Uses, "otp", "y");
            SetAttribute(XDAuth, Uses, "pin", "n");
            SetAttribute(XDAuth, Uses, "pfa", "n");
            SetAttribute(XDAuth, Uses, "pa", "n");
            SetAttribute(XDAuth, Uses, "pi", "n");
            SetAttribute(XDAuth, Uses, "bio", "n");


            XmlNode Data = Root.AppendChild(XDAuth.CreateElement("Data", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            SetAttribute(XDAuth, Data, "type", "X");
            Data.InnerXml = Convert.ToBase64String(encXMLPIDData);

            XmlNode Hmac2 = Root.AppendChild(XDAuth.CreateElement("Hmac", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            Hmac2.InnerXml = Convert.ToBase64String(encryptedHmacBytes);

            return(XDAuth.OuterXml);
        }
Beispiel #2
0
        public string GenAuthXML_Demographic(string aadharNo = "", string PersonName = "", string PersonPincode = "", string publicKey = "", string AllDetailsEntered = "", string pid = "")
        {
            //Values from web.config
            string pip = System.Configuration.ConfigurationManager.AppSettings["ProxyIP"].ToString();
            string sa  = System.Configuration.ConfigurationManager.AppSettings["SA"].ToString();
            string lk  = System.Configuration.ConfigurationManager.AppSettings["LicenseKey"].ToString();

            //Generate Own Transaction ID for Identification of rach transaction
            string TxnHashVal = GetSHA1HashData(AllDetailsEntered);

            Enc xx = new Enc(Convert.FromBase64String(publicKey));

            //Generate Session Key
            byte[] sessionKey = xx.generateSessionKey();
            //Now Encrypt Session Key using Public Certificate of UIDAI
            byte[] encryptedSessionKey = xx.encryptUsingPublicKey(sessionKey);

            byte[] pidXmlBytes = Encoding.UTF8.GetBytes(pid);
            //Encrypt PID block using Session Key
            byte[] encXMLPIDData = xx.encryptUsingSessionKey(sessionKey, pidXmlBytes);
            //Calculate HMAC of PID Block
            byte[] hmac = xx.generateSha256Hash(pidXmlBytes);
            //Encrypt HMAC using Session Key
            byte[] encryptedHmacBytes = xx.encryptUsingSessionKey(sessionKey, hmac);
            //Get Certificate Identifier from Public Key
            string      certificateIdentifier = xx.getCertificateIdentifier();
            XmlDocument XDAuth  = new XmlDocument();
            XmlNode     docNode = XDAuth.CreateXmlDeclaration("1.0", "UTF-8", "yes");

            XDAuth.AppendChild(docNode);
            XmlNode Root = XDAuth.AppendChild(XDAuth.CreateElement("Auth", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            SetAttribute(XDAuth, Root, "uid", aadharNo.Trim());
            SetAttribute(XDAuth, Root, "tid", "public");
            SetAttribute(XDAuth, Root, "sa", sa);
            SetAttribute(XDAuth, Root, "txn", TxnHashVal);
            SetAttribute(XDAuth, Root, "lk", lk);
            SetAttribute(XDAuth, Root, "xmlns", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0");
            XmlNode Uses = Root.AppendChild(XDAuth.CreateElement("Uses", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            XDAuth.DocumentElement.AppendChild(Uses);

            if (!string.IsNullOrEmpty(PersonPincode) && !string.IsNullOrEmpty(PersonName))
            {
                SetAttribute(XDAuth, Uses, "pi", "y");
                SetAttribute(XDAuth, Uses, "pa", "y");
            }
            else
            {
                if (!string.IsNullOrEmpty(PersonPincode))
                {
                    SetAttribute(XDAuth, Uses, "pi", "n");
                    SetAttribute(XDAuth, Uses, "pa", "y");
                }
                else
                {
                    SetAttribute(XDAuth, Uses, "pi", "y");
                    SetAttribute(XDAuth, Uses, "pa", "n");
                }
            }
            SetAttribute(XDAuth, Uses, "pfa", "n");
            SetAttribute(XDAuth, Uses, "bio", "n");
            SetAttribute(XDAuth, Uses, "bt", "");
            SetAttribute(XDAuth, Uses, "pin", "n");
            SetAttribute(XDAuth, Uses, "otp", "n");
            XmlNode Meta = Root.AppendChild(XDAuth.CreateElement("Meta", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            SetAttribute(XDAuth, Meta, "udc", "TEST");
            SetAttribute(XDAuth, Meta, "pip", pip);
            SetAttribute(XDAuth, Meta, "fdc", "NC");
            SetAttribute(XDAuth, Meta, "idc", "NA");
            SetAttribute(XDAuth, Meta, "lot", "P");
            SetAttribute(XDAuth, Meta, "lov", "110092");
            XmlNode Skey = Root.AppendChild(XDAuth.CreateElement("Skey", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            SetAttribute(XDAuth, Skey, "ci", certificateIdentifier);
            Skey.InnerXml = Convert.ToBase64String(encryptedSessionKey);
            XmlNode Data = Root.AppendChild(XDAuth.CreateElement("Data", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            SetAttribute(XDAuth, Data, "type", "X");
            Data.InnerXml = Convert.ToBase64String(encXMLPIDData);

            XmlNode Hmac2 = Root.AppendChild(XDAuth.CreateElement("Hmac", "http://www.uidai.gov.in/authentication/uid-auth-request/1.0"));

            Hmac2.InnerXml = Convert.ToBase64String(encryptedHmacBytes);

            return(XDAuth.OuterXml);
        }