internal string GenerateChallengeSignature(InstaApiVersion apiVersion,
                                                   string signatureKey,
                                                   string csrfToken,
                                                   out string deviceid)
        {
            if (string.IsNullOrEmpty(signatureKey))
            {
                signatureKey = apiVersion.SignatureKey;
            }

            var api = new InstaApiRequestChallengeMessage
            {
                CsrtToken         = csrfToken,
                DeviceId          = DeviceId,
                Guid              = Guid,
                LoginAttemptCount = "1",
                Password          = Password,
                PhoneId           = PhoneId,
                Username          = Username,
                AdId              = AdId
            };
            var res = InstaCryptoHelper.CalculateHash(
                signatureKey,
                JsonConvert.SerializeObject(api));

            deviceid = DeviceId;
            return(res);
        }
        internal string GenerateSignature(InstaApiVersion apiVersion, string signatureKey)
        {
            if (string.IsNullOrEmpty(signatureKey))
            {
                signatureKey = apiVersion.SignatureKey;
            }

            return(InstaCryptoHelper.CalculateHash(
                       signatureKey,
                       JsonConvert.SerializeObject(this)));
        }
        internal string GenerateSignature(InstaApiVersion apiVersion, string signatureKey, out string deviceid)
        {
            if (string.IsNullOrEmpty(signatureKey))
            {
                signatureKey = apiVersion.SignatureKey;
            }

            var res = InstaCryptoHelper.CalculateHash(
                signatureKey,
                JsonConvert.SerializeObject(this));

            deviceid = DeviceId;
            return(res);
        }