add keygen & add encryption