P7M Viewer for Mac OS X

1–2 minutes

Recently I convinced my boss in switching from Windows-based clients to Mac OS X ones. Unfortunately one of the activity we dealt with required the ability of reading P7M files, that’s files that have been digitally signed and encoded in PCKS#7 SMIME Mail.

I searched a lot but wasn’t able to find a P7M viewer for Mac OS X… With Windows Acrobat Reader itself reads the P7M, while Acrobat for Mac doesn’t…, so I started investigating.

The command line to decode a P7M file is pretty easy:

openssl smime -decrypt -in file_in.pdf.p7m -inform DER -verify -noverify -out file_out.pdf

So the deal was to allow any user to view the files without having to deal with the Terminal.

Luckily enough with a great help from my friend Marco Balestra, we quickly hacked an AppleScript Application that can be used to decrypt the P7M, launch the viewer, and then delete the temporary file.

Here you find it attached. Just Unzip it, right click on the P7M and select “Open with…”

Obviously it comes with no warranties of any kind 🙂

Ermh… I forgot the attachment, here it is: OpenP7M

Andrea Brancatelli Avatar

Comments

14 responses to “P7M Viewer for Mac OS X”

  1. edi Avatar
    edi

    volevo scaricare il file ma il link e morto!!

    1. skeyby Avatar
      skeyby

      Hai ragione. Lo sistemo tra breve.

      1. edi Avatar
        edi

        grazie 🙂

  2. skeyby Avatar
    skeyby

    Ho (finalmente) corretto il link. Scusa per il ritardo 🙂

    1. edi Avatar
      edi

      grazie 🙂

  3. Antonio Avatar
    Antonio

    Prima di tutto volevo ringraziare chi ha fatto lo script e ci ha spiegato come decodificare i p7m dal terminale.
    Poi volevo segnalare che sia dal terminale sia ovviamente dallo script che per alcuni p7m il trucco non funziona e non si riesce a decodificare il file, qualcuno sa xche?

    1. skeyby Avatar
      skeyby

      Probabilmente sono p7m base64…

      Aprili con textedit e vedi se sono binari o testuali. Nel secondo caso la procedura è diversa.

      1. Antonio Avatar
        Antonio

        Grazie di avermi risposto!
        Si ai ragione il p7m e testuale aprendolo con textedit inizia così
        —–BEGIN PKCS7—–
        MIMDAn4GCSqGSIb3DQEHAqCDAwJuMIMDAmkCAQExDzANBglghkgBZQMEAgEFADCD
        AvmlBgkqhkiG9w0BBwGggwL5lQSDAvmQJVBERi0xLjQKJcOkw7zDtsOfCjIgMCBv
        YmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4

        quale la procedura giusta?
        Ti ringrazio

        Antonio

      2. skeyby Avatar
        skeyby

        Devi decodificarlo da base64.

        Da terminale:

        openssl base64 -d -in -out

        Dove file in input è il p7m che hai ora, e fileinoutput è il p7m binario da creare. A quel punto vai di openp7m.

        Ciao

      3. Antonio Avatar
        Antonio

        OK funziona !!!!!!!
        Grazie 1000000000000 della dritta
        ora vedo se sono capace di modificare il tuo script e renderlo “universale”, e poi telo ripasso a te e alla comunitĂ 
        Grazie ancora, era umiliante dover passare da windows x aprire i p7m

      4. Antonio Avatar
        Antonio

        Sono riuscito a fare uno script universale, cioe che determina se il file e un base64 o un binario, ma non essendo molto pratico di Apple script , ho fatto uno script bash del terminale, eccolo qui

        #!/bin/bash
        echo “Trascina qui il file p7m”
        read file
        test=$(head -c 10 “$file”)
        echo $test
        if [ “$test” == “—–BEGIN” ]
        then
        openssl base64 -d -in “$file” -out “$file.pdf”
        else
        openssl smime -decrypt -in “$file” -inform DER -verify -noverify -out “$file.pdf”
        fi
        exit 0

        ho anche cercato di riprodurre la stessa funzionalitĂ  dello script di skeyby facendo un applicazione Autometor, ma non funziona bene come l’Apple script, ad ogni modo la potete scaricare da qui
        https://dl.dropboxusercontent.com/u/5663561/OpenP7M%20universal.app.zip

        P.S.
        qualcuno riesce a sistemare lo script in apple script?
        grazie a tutti

  4. Antonio Avatar
    Antonio

    Ho trovato dover a l’inghippo, ora lo script funziona sempre bene, in pratica cancellavo il file prima ancora che venisse aperto, ho risolto il tutto aggiungendo il comando sleep ecco lo script corretto

    https://dl.dropboxusercontent.com/u/5663561/OpenP7M%20universal.app.zip

    ora pero mi viene in mente che un file firmato p7m, non e necessariamente un pdf, vabo x il momento mi accontento

  5. Alex Avatar
    Alex

    Hi
    Can you please share this viewer again ?
    Link is not working

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.