Пример #1
0
        /// <summary>
        /// Create the info section for the cast call.
        /// </summary>
        /// <returns>The infor section.</returns>
        internal XElement CreateCastCallInfoSection()
        {
            XElement content = new XElement("content",
                                            new XElement("app-id", AppIdInstance.ToString()),
                                            new XElement("hmac", "HMACSHA256"),
                                            new XElement("signing-time", DateTime.UtcNow.ToString("O"))
                                            );

            XElement outer = new XElement("outer", content);

            XmlReader reader = outer.CreateReader();

            reader.MoveToContent();
            string s = reader.ReadInnerXml();

            s = HealthVaultService.GetOuterXml(content);

            string hmac = MobilePlatform.ComputeSha256Hmac(Convert.FromBase64String(SharedSecret), s);

            XElement info = new XElement("info",
                                         new XElement("auth-info",
                                                      new XElement("app-id", AppIdInstance.ToString()),
                                                      new XElement("credential",
                                                                   new XElement("appserver2",
                                                                                new XElement("hmacSig", hmac,
                                                                                             new XAttribute("algName", "HMACSHA256")
                                                                                             ),
                                                                                content
                                                                                )
                                                                   )
                                                      )
                                         );

            return(info);
        }