public CrackerThread(ECCCracker parent, UInt32 threadId)
            {
                this.parent   = parent;
                this.parent   = parent;
                this.threadId = threadId;

                thread = new Thread(this.Callback);

                // Create useable key structure without keyscalar.
                keyStore    = new byte[8 + 48 * 3];
                keyStore[0] = 0x45;                 // E
                keyStore[1] = 0x43;                 // C
                keyStore[2] = 0x4B;                 // K
                keyStore[3] = 0x34;
                keyStore[4] = 48;
                Array.Copy(parent.EccPublicKey, parent.EccPublicKeyCurveXOffset, keyStore, 8, 48);
                Array.Copy(parent.EccPublicKey, parent.EccPublicKeyCurveYOffset, keyStore, 8 + 48, 48);
            }
			public CrackerThread(ECCCracker parent, UInt32 threadId) {
				this.parent = parent;
				this.parent = parent;
				this.threadId = threadId;

				thread = new Thread(this.Callback);

				// Create useable key structure without keyscalar.
				keyStore = new byte[8 + 48 * 3];
				keyStore[0] = 0x45; // E
				keyStore[1] = 0x43; // C
				keyStore[2] = 0x4B; // K
				keyStore[3] = 0x34;
				keyStore[4] = 48; 
				Array.Copy(parent.EccPublicKey, parent.EccPublicKeyCurveXOffset, keyStore, 8, 48);
				Array.Copy(parent.EccPublicKey, parent.EccPublicKeyCurveYOffset, keyStore, 8 + 48, 48);
			}
        /// <summary>
        /// The entry point of the program, where the program control starts and ends.
        /// </summary>
        public static void Main()
        {
            ECCCracker myCracker = new ECCCracker();

            myCracker.Run();
        }
		/// <summary>
		/// The entry point of the program, where the program control starts and ends.
		/// </summary>
		public static void Main() {
			ECCCracker myCracker = new ECCCracker();
			myCracker.Run();
		}