private static GSObject GenerateIdentity(GSObject identity) { identity.Put("providerUID", GenerateString(20)); identity.Put("nickname", GenerateString(20)); identity.Put("firstName", GenerateString(8)); identity.Put("lastName", GenerateString(10)); identity.Put("email", "user_"+GenerateString(16)+ "@" + GenerateString(6) + ".com"); identity.Put("address", GenerateString(30)); GSObject phone = new GSObject(); GSArray phones = new GSArray(); phone.Put("type", "mobile"); phone.Put("number", GenerateString(9)); phones.Add(phone); phone = new GSObject(); phone.Put("type", "home"); phone.Put("number", GenerateString(9)); phones.Add(phone); phone = new GSObject(); phone.Put("type", "work"); phone.Put("number", GenerateString(9)); phones.Add(phone); identity.Put("phones", phones); return identity; }
private void verifyResponseSignature(GSResponse res, string format) { if (!format.Equals("xml", StringComparison.InvariantCultureIgnoreCase)) { GSObject data = res.GetData(); if (null != data) { if (cbMethods.Text.IndexOf("getUserInfo", StringComparison.InvariantCultureIgnoreCase) > -1) { string uid = data.GetString("UID", ""); string uidSig = data.GetString("UIDSignature", ""); string sigTimestamp = data.GetString("signatureTimestamp", ""); if (SigUtils.ValidateUserSignature(uid, sigTimestamp, txtSecKey.Text, uidSig)) { lblVerifiedSig.Text = "Signature is verified"; lblVerifiedSig.ForeColor = Color.Green; } else { lblVerifiedSig.Text = "Invalid signature !!!"; lblVerifiedSig.ForeColor = Color.Red; } } if (cbMethods.Text.IndexOf("getFriendsInfo", StringComparison.InvariantCultureIgnoreCase) > -1) { GSArray friends = data.GetArray("friends"); if (null != friends && friends.Length > 0) { GSObject firstFriend = friends.GetObject(0); string friendSig = firstFriend.GetString("friendshipSignature"); string tsSig = firstFriend.GetString("signatureTimestamp"); string friendUID = firstFriend.GetString("UID"); if (SigUtils.ValidateFriendSignature(txtUID.Text, tsSig, friendUID, txtSecKey.Text, friendSig)) { lblVerifiedSig.Text = "1ST friend's signature is verified"; lblVerifiedSig.ForeColor = Color.Green; } else { lblVerifiedSig.Text = "Invalid signature (1ST friend's) !!!"; lblVerifiedSig.ForeColor = Color.Red; } } } } } }
private static GSArray modifyIdentities(GSArray identitiesCollection) { GSArray array = new GSArray(); foreach (GSArray identitiesArray in identitiesCollection) { GSArray tempArray = new GSArray(); foreach (GSObject identity in identitiesArray) { GSObject tempObject = GenerateIdentity(identity); tempArray.Add(tempObject); } array.Add(tempArray); } return array; }
private static GSArray ReadFromFileRetrieveIdentities(string filename) { string line; GSArray array = new GSArray(); StreamReader file = new StreamReader(filename); while ((line = file.ReadLine()) != null) { try { GSObject temp = new GSObject(line); GSArray tempArray = temp.GetArray("identities", new GSArray()); if (tempArray != null) array.Add(tempArray); } catch { throw new GSException("incorrect input string"); } } file.Close(); return array; }
/// <summary> /// Fetch available public key representation validated by the "kid". /// </summary> /// <param name="kid">The keyId</param> /// <param name="apiDomain">The api domain jwt was obtained, for example us1.gigya.com</param> internal static string FetchPublicKey(string kid, string apiDomain) { var resourceUri = $"https://accounts.{apiDomain}/accounts.getJWTPublicKey?V2=true"; var request = (HttpWebRequest)WebRequest.Create(resourceUri); request.Timeout = 30_000; request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; request.Method = "GET"; request.KeepAlive = false; request.ServicePoint.Expect100Continue = false; GSResponse response; using (var webResponse = (HttpWebResponse)request.GetResponse()) using (var sr = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8)) response = new GSResponse(method: request.Method, responseText: sr.ReadToEnd(), logSoFar: null); if (response.GetErrorCode() == 0) { GSArray keys = response.GetArray("keys", null); if (keys == null || keys.Length == 0) { return(null); // Failed to obtain JWK from response data OR data is empty } foreach (object key in keys) { if (key is GSObject) { string jwtKid = ((GSObject)key).GetString("kid", null); if (jwtKid != null && jwtKid == kid) { return(((GSObject)key).ToJsonString()); } } } } return(null); }
static void TestGSObjectAndGSArray() { // Test object string st1 = "{'key1': 1.1, 'item1':'ITEM1', 'key2': {'item4':'ITEM4'}, 'array1':[1.3,'hello',{'item2':'ITEM2'},[11,12],[{'item3':'ITEM3'}]]}"; GSObject gsObj = new GSObject(st1); st1 = gsObj.ToString(); // Test array string st2 = "[1, 1.2, 'hello', true, null, {}, {'key1':'val1'}, [11, 22, 33, 33.3, false, null, {}, {'key2':'val2', 'key3':[111,222,333]}]]"; GSArray gsArr = new GSArray(st2); st2 = gsArr.ToString(); // Test extracting values from object object y = gsObj.GetArray("array1").GetArray(4).GetObject(0); foreach (var item in gsObj.GetArray("array1")) { object x = item.ToString(); } }
private static void insertIdentities(string userKey, string userSecretKey, string apiKey, int quantity, GSArray identitiesCollection) { }