add async keygen