Пример #1
0
        /// <summary>
        /// When overridden in a descendant class, serializes the object into XML according to Aadhaar API specification.
        /// </summary>
        /// <param name="elementName">The name of the element.</param>
        /// <returns>An instance of <see cref="XElement"/>.</returns>
        protected override XElement SerializeXml(string elementName)
        {
            ValidateNull(Uses, nameof(Uses));
            ValidateNull(DeviceInfo, nameof(DeviceInfo));
            ValidateNull(KeyInfo, nameof(KeyInfo));
            ValidateNull(Data, nameof(Data));
            ValidateEmptyString(AadhaarNumber, nameof(AadhaarNumber));
            ValidateEmptyString(Hmac, nameof(Hmac));

            var authRequest = base.SerializeXml(elementName);

            authRequest.Add(new XAttribute("uid", AadhaarNumber),
                            new XAttribute("ver", AuthVersion),
                            Uses.ToXml("Uses"),
                            DeviceInfo.ToXml("Meta"),
                            KeyInfo.ToXml("Skey"),
                            Data.ToXml("Data"),
                            new XElement("Hmac", Hmac));
            if (Token != null)
            {
                authRequest.Add(Token.ToXml("Tkn"));
            }

            Signer?.ComputeSignature(authRequest);

            return(authRequest);
        }
Пример #2
0
        /// <summary>
        /// When overridden in a descendant class, serializes the object into XML according to Aadhaar API specification.
        /// </summary>
        /// <param name="elementName">The name of the element.</param>
        /// <returns>An instance of <see cref="XElement"/>.</returns>
        /// <exception cref="ArgumentNullException"><see cref="DeviceInfo"/>, <see cref="KeyInfo"/> or <see cref="Data"/> is null.</exception>
        /// <exception cref="ArgumentException"><see cref="AadhaarNumber"/> or <see cref="Hmac"/> is empty.</exception>
        protected virtual XElement SerializeXml(string elementName)
        {
            ValidateNull(DeviceInfo, nameof(DeviceInfo));
            ValidateNull(KeyInfo, nameof(KeyInfo));
            ValidateNull(Data, nameof(Data));
            ValidateEmptyString(AadhaarNumber, nameof(AadhaarNumber));
            ValidateEmptyString(Hmac, nameof(Hmac));

            var deviceContext = new XElement(elementName,
                                             new XAttribute("uid", AadhaarNumber),
                                             new XAttribute("tid", Terminal),
                                             new XAttribute("ts", Timestamp.ToString(AadhaarHelper.TimestampFormat, CultureInfo.InvariantCulture)),
                                             DeviceInfo.ToXml("Meta"),
                                             KeyInfo.ToXml("Skey"),
                                             Data.ToXml("Data"),
                                             new XElement("Hmac", Hmac));

            return(deviceContext);
        }
Пример #3
0
        /// <summary>
        /// When overridden in a descendant class, serializes the object into XML according to Aadhaar API specification.
        /// </summary>
        /// <param name="elementName">The name of the element.</param>
        /// <returns>An instance of <see cref="XElement"/>.</returns>
        /// <exception cref="System.ArgumentNullException"><see cref="DeviceInfo"/>, <see cref="KeyInfo"/> or <see cref="Data"/> is null.</exception>
        /// <exception cref="System.ArgumentException"><see cref="AadhaarNumber"/> or <see cref="Hmac"/> is empty.</exception>
        protected override XElement SerializeXml(string elementName)
        {
            ValidateNull(DeviceInfo, nameof(DeviceInfo));
            ValidateNull(KeyInfo, nameof(KeyInfo));
            ValidateNull(Data, nameof(Data));
            ValidateEmptyString(AadhaarNumber, nameof(AadhaarNumber));
            ValidateEmptyString(Hmac, nameof(Hmac));

            var bfdRequest = base.SerializeXml(elementName);
            var meta       = DeviceInfo.ToXml("Meta");

            meta.Attribute("idc").Remove();
            bfdRequest.Add(new XAttribute("uid", AadhaarNumber),
                           new XAttribute("ver", BfdVersion),
                           meta,
                           KeyInfo.ToXml("Skey"),
                           Data.ToXml("Data"),
                           new XElement("Hmac", Hmac));

            Signer?.ComputeSignature(bfdRequest);

            return(bfdRequest);
        }