Buenas
El uso de claves depende de lo que quieras hacer en tu aplicación y cómo quieras hacerlo.
Existen dos operaciones que aunque son parecidas se diferencian en algunos aspectos: Cifrar y Firmar.
Teniendo un par de claves (pública y privada) , si cifras algo con una clave pública, sólo el poseedor de la clave privada asociada a esa clave pública podrá descrifrar el mensaje encriptado. Digo el poseedor, porque lo normal es que la clave privada no se vaya repartiendo por ahi, sino que esté asociada a cada usuario/servicio/etc.
Si por el contrario vas a enviar información cifrada y quieres que cualquiera (que tenga tu clave pública claro) pueda ver esa información, se usa la clave privada para cifrar esa información.
Con esto ocultamos contenido.
Otra cosa es la firma, que se usa para comprobar la integridad de la información.
Para ello primero se hace un hash de la información, y se cifra con la clave privada dicho hash, que se enviará junto con la información.
Al recibirla, para comprobar que esa información no ha sido alterada, se hace el hash de la información otra vez y se comprueba que ese hash es idéntico al que se obtiene cuando se descifra el hash recibido con la clave pública.
Esto indica que el mensaje firmado no ha sido tocado, pero no quiere decir que porque lo firmes con tu clave privada lo hayas enviado tú, ya que si te pillan la clave pueden firmar cosas como si fueras tú.
Una vez dicho esto, y usando una de las dos operaciones (cifrar o firmar) que más se ajuste a tu aplicación, la solución que propones es la que me parece correcta.
Es decir, tú generas las claves y guardas ambas.
El usuario entra en su panel y se descarga su clave privada (o ambas) y las configura en el modulo de Drupal.
Ya en el modulo de Drupal es donde se debería encriptar o firmar la información que se envía a tu aplicación y usar las clave correspondiente en un extremo, según la que hayas utilizado en el otro.
Yo en la aplicación que estoy trabajando, como se basa en relaciones de confianza (me creo que nadie va a suplantar a nadie), utilizo operaciones de firma.
Espero no haberme equivocado en nada y que te sirva de ayuda.