SMIME Utility Home Page

12.12.2010, Sampo Kellomäki (
Smime tool is a set of utilities for doing smime signatures as well as
basic key generation and certificate authority functions. It does

        - sign and encrypt email and other S/MIME messages
        - verify signatures and decrypt messages
        - generate keys, certification requests, and self signed certificates
        - certificate authority: sign certificate requests into certificates
        - convert pem format to and from PKCS12 (allows importing and
          exporting keys to and from Netscape (and probably Outlook Express))
        - interoperates with Netscape mail reader, will probably interoperate
          with Outlook Express
        - standards compliant uses S/MIME, PKCS12, and pem

Included in the package

        - smime command line tool
        - smimeutil library (written in C)
        - perl module to access all of the above functionality (SMIMEUtil::)
        - tutorial (the README file)
        - documentation (the simeutil.h file ;-)


        - provide smime capability for popular mail readers, such as elm,
          pine, or mh
        - CGI scripts that send S/MIME mail
        - Mail processing robots that read S/MIME mail
        - S/MIME over http
        - Archieve signed documents in S/MIME format
        - be your own certification authority

        ./smime -cs private password smime  # clear sign
        ./smime -cv cert data              # verify clear sig
        ./smime -ds private passwd smime-sig       # make detached sig
        ./smime -dv file smime  # sign
        ./smime -qs signing-cert-info      # find out who signed
        ./smime -v cert signer-dn          # verify signature

        ./smime -vc cacert smime-ent         # encrypt
        ./smime -d private password mime   # decrypt

        ./smime -qr cert.pem     # sign a req

        ./smime -p12-pem p12pw pempw x.pem  # convert PKCS12 to pem
        ./smime -pem-p12 pempw p12pw x.p12

        ./smime -m type1 file1 type2 file2 type3 file3 smime

        ./smime -kg attr passwd req.pem priv_ss.pem  # keygen

        ./smime -base64 file.base64
        ./smime -unbase64 file
        ./smime -mime text/plain mime-entity
        ./smime -mime_base64 image/gif mime-entity
        ./smime -split dirprefix out
        ./smime -cat out   # copy input to output using slurp and barf

        ./smime -kg 'description=Test' secret req.pem ss.pem