When writing the following code:
////////////////1st offline SERVER////////////////// //Create Master Private Key with a seed ExtKey privateKey = new ExtKey("16236c2028fd2018eb7049825e6b4f0191de4dbff003579918de7b7348ff06ac"); //create master public key from this privateKey ExtPubKey pubKey = privateKey.Neuter(); //save it's wifStr as key to the next server to use and generate all child keys string wifStr = pubKey.ToString(Network.Main); ////////////////END////////////////// ////////////////2nd online SERVER////////////////// ExtPubKey key = ExtPubKey.Parse(wifStr); //The payment server receive an order, note the server does not need the private key to generate the address uint orderID = 1001; //address created with only extendet publik key BitcoinAddress address = key.Derive(orderID).PubKey.GetAddress(Network.Main); Console.WriteLine(address); ////////////////END//////////////////
Am I using hardened private derivation function ? please explain why . I know that in order to use hardened private derivation function I should derive it from a hardened parent, but how do I know that the parent is hardened parent ?