I'm not aware of any standard way of implementing what you're requesting. However, you can take as model the kind of system used in EFS (and other similar software solution):
- Have someone create the group chat. The creator will generate a unique key valid only for this specific chat.
- Each chat message is encrypted using a symmetric encryption algorythm using the unique session (chat room) key.
- Each time a new client joins, he will have to ask an existing chat member for the key (how you authenticate that new client is out of scope). That chat key is being encrypted by the sender using the new client's public key.
The main problem with this is how to vet for the new client: obviously, you need to perform that validation in a "strong" way because once someone obtains the session key, all messages - past and future using that key can be decrypted.
If your sessions are supposed to last for a long time, it might be useful to have some mechanism for key re-negotiation at some point.
Also, since in this system the initial client decides on the encryption key, you will have to be very careful about how that key is chosen as not to weaken the whole security by using a simple key and you should implement some way for the other parties in the conversation to reject a "weak" key (not forcing a renegotiation, just rejecting the connection)