let canl generate the public and private key and decide the algorithms
etc.