P7M Viewer for Mac OS X

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

14 pensieri riguardo “P7M Viewer for Mac OS X”

  1. 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. Probabilmente sono p7m base64…

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

      1. 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. 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. 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. 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

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

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