/// <summary> /// Convert a mobile ID to a key. /// </summary> /// <param name="MobileID">The mobileID.</param> /// <param name="MobileKey">Out parameter of the mobile key.</param> /// <returns>The outcome of the operation.</returns> private Response MobileGenerateKey(int MobileID, out long MobileKey, DatabaseConnectivity db) { MobileKey = -1; Response r = new Response(); System.Security.Cryptography.SHA1 sha = new System.Security.Cryptography.SHA1CryptoServiceProvider(); Random rand = new Random(); byte[] randomBytes = new byte[64]; byte[] result; long tempKey; for(;;) { rand.NextBytes(randomBytes); result = sha.ComputeHash(randomBytes); tempKey = BitConverter.ToInt64(result, 0); r = db.MobileGetIDFromKey(tempKey); if(r.error) return r; if(r.message.Trim().Length != 0) continue; r = db.MobileSetKey(MobileID, tempKey); if(r.error) return r; MobileKey = tempKey; return r; } }
/// <summary> /// Conver t amobile Key to a mobileID. /// </summary> /// <param name="MobileKey">The mobileKey.</param> /// <param name="MobileID">Out parameter mobileID.</param> /// <returns>The outcome of the operation.</returns> private Response MobileKeyToID(long MobileKey, out int MobileID, DatabaseConnectivity db) { MobileID = -1; Response r = db.MobileGetIDFromKey(MobileKey); if (r.error) return r; if (r.message.Trim().Length == 0) { r.error = true; r.message = "MobileKey is not valid."; return r; } if (!int.TryParse(r.message.Trim(), out MobileID)) { r.error = true; r.message = "Exception in MobileKeyToID: MobileKey Parse Fail"; return r; } return r; }
/// <summary> /// Conver t amobile Key to a mobileID. /// </summary> /// <param name="MobileKey">The mobileKey.</param> /// <param name="MobileID">Out parameter mobileID.</param> /// <returns>The outcome of the operation.</returns> private ExpResponse MobileKeyToID(long MobileKey, out int MobileID, DatabaseConnectivity db) { MobileID = -1; ExpResponse r = db.MobileGetIDFromKey(MobileKey); if (r.error) return r; if (r.message.Trim().Length == 0) { r.setErMsgStk(true, "Invalid MobileKey: " + MobileKey, Environment.StackTrace); return r; } if (!int.TryParse(r.message.Trim(), out MobileID)) { r.setErMsgStk(true, "Exception in MobileKeyToID: Failed to parse ID from 'key' in DB: '" + r.message.Trim() + "'", Environment.StackTrace); return r; } return r; }