use generateKey function