qualcuno ha esperienze in merito a firma digitale con open ssl ?

devo generare una coppia di chiavi (privata e pubblica)

poi firmare un documento

ed esportare la chiave pubblica in modo che un altra persona possa verificare il documento firmato.

uso linux, quindi mi andrebbe bene sia utilizzare funzioni di libreria, ma anche comandi di shell.