private child key
let I
IF index ≥ 2^31 (hardened key)
I = HMAC-SHA512(parent_private_key, chaincode)
****ELSE
I = HMAC-SHA512(parent_public_key, chaincode)
I_l, I_r = I.split()
child_private_key = I_l
child_chaincode = I_r
public child key (neutered)
public child key
If index **≥** 2^31 (hardened key)
return failure
ELSE
HMAC-SHA512(parent_public_key, chaincode)
// same as the above.
private child key: Not possible.