Respondiendo a mi propia pregunta, ya que no puedo encontrar esto documentado en ninguna parte.
El problema aquí es que la compilación OpenSSL incluida con OS X no viene compilada con CMS compatible. Para habilitar el soporte de CMS, tendrá que compilar su propia versión de OpenSSL.
Primero, clona el espejo OpenSSL Github:
git clone [email protected]:openssl/openssl.git
Compruebe una versión estable, por ejemplo 1.0.2:
cd openssl
git checkout OpenSSL_1_0_2
Configure el compilado para habilitar el soporte de CMS:
./Configure darwin64-x86_64-cc enable-cms
Luego crea e instala openssl:
make
make install
Si todo va bien, ahora debes tener tu versión seleccionada de OpenSSL instalada en /usr/local/ssl/bin/openssl
. Al ejecutar /usr/local/ssl/bin/openssl cms
, debería ver lo siguiente:
/usr/local/ssl/bin/openssl cms
Usage cms [options] cert.pem ...
where options are
-encrypt encrypt message
-decrypt decrypt encrypted message
(...)
Tenga en cuenta que esto no anulará la instalación de openssl incluida, por lo que deberá modificar su ruta o usar el binario directamente.