PHP Manual
Prev |  | Next

# openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6)

openssl_pkcs7_encrypt -- Encrypt an S/MIME message

## Description

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, long flags])

Warning
This function is EXPERIMENTAL. The behaviour of this function, the name of this function, and anything else documented about this function may change without notice in a future release of PHP. Use this function at your own risk.

openssl_pkcs7_encrypt() takes the contents of the file named `infile` and encrypts them using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by `recipcerts`, which is either a lone X.509 certificate, or an array of X.509 certificates. `headers` is an array of headers that will be prepended to the data after it has been encrypted. `flags` can be used to specify options that affect the encoding process - see PKCS7 constants. `headers` can be either an associative array keyed by header name, or an indexed array, where each element contains a single header line.

Example 1. openssl_pkcs7_encrypt() example

    // the message you want to encrypt and send to your secret agent
    // in the field, known as nighthawk.  You have his certificate
    // in the file nighthawk.pem
    $data = <<<EOD
    Nighthawk,

    Top secret, for your eyes only!

    The enemy is closing in! Meet me at the cafe at 8.30am
    to collect your forged passport!

    HQ
    EOD;

    // load key
    $key = implode("", file("nighthawk.pem"));

    // save message to file
    $fp = fopen("msg.txt", "w");
    fwrite($fp, $data);
    fclose($fp);

    // encrypt it
    if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
        array("To" => "nighthawk@example.com", // keyed
    syntax
              "From: HQ <hq@example.com>", // indexed syntax
              "Subject" => "Eyes only")))
    {
        // message encrypted - send it!
        exec(ini_get("sendmail_path") . " < enc.txt");
    }

Prev | Home | Next
openssl_pkcs7_decrypt | Up | openssl_pkcs7_sign