Crypt_GPG
[ class tree: Crypt_GPG ] [ index: Crypt_GPG ] [ all elements ]

Class: Crypt_GPG

Source Location: /Crypt_GPG-0.6.0/GPG.php

Class Overview


A class to use GPG from PHP


Author(s):

Copyright:

  • 2005-2007 silverorange

Methods


Child classes:

Crypt_GPG_Driver_Php
Native PHP Crypt_GPG driver
Crypt_GPG_Driver_GnuPG
PECL gnupg Crypt_GPG driver

Inherited Variables

Inherited Methods


Class Details

[line 80]
A class to use GPG from PHP

This class provides an object oriented interface to GNU Privacy Guard (GPG).

Though GPG can support symmetric-key cryptography, this class is intended only to facilitate public-key cryptography.



[ Top ]


Method Detail

decrypt   [line 500]

string decrypt( string $encrypted_data, [string $passphrase = null])

Decrypts string data using the given passphrase

This method assumes the required private key is available in the keyring and throws an exception if the private key is not available. To add a private key to the keyring, use the Crypt_GPG::importKey() method.

  • Return: the decrypted data.
  • Abstract:
  • Throws: Crypt_GPG_KeyNotFoundException if the private key needed to decrypt the data is not in the user's keyring.
  • Throws: Crypt_GPG_NoDataException if specified data does not contain GPG encrypted data.
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Throws: Crypt_GPG_BadPassphraseException if specified passphrase is incorrect or if a required passphrase is not specified.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::decrypt()
Decrypts string data using the given passphrase
Crypt_GPG_Driver_GnuPG::decrypt()
Decrypts string data using the given passphrase

Parameters:

string   $encrypted_data   —  the data to be decrypted.
string   $passphrase   —  optional. The passphrase of the private key used to encrypt the data. Only required if the private key requires a passphrase.

[ Top ]

deletePrivateKey   [line 375]

void deletePrivateKey( string $key_id)

Deletes a private key from the keyring

If more than one key fingerprint is avaliable for the specified $key_id (for example, if you use a non-unique uid) only the first private key is deleted.

  • Abstract:
  • Throws: Crypt_GPG_KeyNotFoundException if a private key with the given $key_id is not found.
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::deletePrivateKey()
Deletes a private key from the keyring
Crypt_GPG_Driver_GnuPG::deletePrivateKey()
Deletes a private key from the keyring

Parameters:

string   $key_id   —  either the full uid of the private key, the email part of the uid of the private key or the key id of the private key. For example, "Test User (example) <test@example.com>", "test@example.com" or a hexidecimal string.

[ Top ]

deletePublicKey   [line 348]

void deletePublicKey( string $key_id)

Deletes a public key from the keyring

If more than one key fingerprint is avaliable for the specified $key_id (for example, if you use a non-unique uid) only the first public key is deleted.

The private key must be deleted first or an exception will be thrown. See Crypt_GPG::deletePrivateKey().

  • Abstract:
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Throws: Crypt_GPG_KeyNotFoundException if a public key with the given $key_id is not found.
  • Throws: Crypt_GPG_DeletePrivateKeyException if the specified public key has an associated private key on the keyring. The private key must be deleted first.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::deletePublicKey()
Deletes a public key from the keyring
Crypt_GPG_Driver_GnuPG::deletePublicKey()
Deletes a public key from the keyring

Parameters:

string   $key_id   —  either the full uid of the public key, the email part of the uid of the public key or the key id of the public key. For example, "Test User (example) <test@example.com>", "test@example.com" or a hexidecimal string.

[ Top ]

encrypt   [line 464]

string encrypt( string $key_id, string $data, [boolean $armor = true])

Encrypts string data

Data is ASCII armored by default but may optionally be returned as binary.

If this method throws a Crypt_GPG_MissingSelfSignatureException, the public key needs to be signed. Keys may be manually signed using the shell command:

  1. gpg --sign-key <key-id> <named-user>

  • Return: the encrypted data.
  • Abstract:
  • Throws: Crypt_GPG_KeyNotFoundException if the a key with the given $key_id is not found.
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::encrypt()
Encrypts string data
Crypt_GPG_Driver_GnuPG::encrypt()
Encrypts string data

Parameters:

string   $key_id   —  the full uid of the public key to use for encryption. For example, "Test User (example) <test@example.com>".
string   $data   —  the data to be encrypted.
boolean   $armor   —  optional. If true, ASCII armored data is returned; otherwise, binary data is returned. Defaults to true.

[ Top ]

__construct (Constructor)   [line 253]

Crypt_GPG __construct( [array $options = null])

Creates a new Crypt_GPG object

The Crypt_GPG::factory() method must be used to instantiate a Crypt_GPG object.

  • Abstract:
  • Access: protected

Overridden in child classes as:

Crypt_GPG_Driver_Php::__construct()
Creates a new GPG object that uses PHP's native process manipulation functions to control the GPG process
Crypt_GPG_Driver_GnuPG::__construct()
Creates a new GPG object that uses the gnupg PECL extension to control the GPG process

Parameters:

array   $options   —  optional. An array of options used to create the GPG object. All options must be optional and are represented as key-value pairs.

[ Top ]

exportPublicKey   [line 314]

string exportPublicKey( string $key_id, [boolean $armor = true])

Exports a public key from the keyring

The exported key remains on the keyring. To delete the public key, use Crypt_GPG::deletePublicKey().

If more than one key fingerprint is avaliable for the specified $key_id (for example, if you use a non-unique uid) only the first public key is exported.

  • Return: the public key data.
  • Abstract:
  • Throws: Crypt_GPG_KeyNotFoundException if a public key with the given $key_id is not found.
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::exportPublicKey()
Exports a public key from the keyring
Crypt_GPG_Driver_GnuPG::exportPublicKey()
Exports a public key from the keyring

Parameters:

string   $key_id   —  either the full uid of the public key, the email part of the uid of the public key or the key id of the public key. For example, "Test User (example) <test@example.com>", "test@example.com" or a hexidecimal string.
boolean   $armor   —  optional. If true, ASCII armored data is returned; otherwise, binary data is returned. Defaults to true.

[ Top ]

factory   [line 221]

Crypt_GPG factory( [string $driver = 'php'], [array $options = array()])

Static factory method to create a new GPG object using the specified backend driver

This allows developers to write code using a standard interface and optionally switch to a PECL-based implementation with minimal fuss at a later date.

  • Return: a GPG object powered by the speficied driver.
  • Access: public

Parameters:

string   $driver   —  optional. The name of the driver to use. Valid driver names are 'php' for a native PHP driver and 'gnupg' for a PECL-powered driver. If not specified, the native PHP driver is used.
array   $options   —  optional. An array of options passed to the driver's constructor. All options must be optional and are represented as key-value pairs. See documentation of a specific driver for details on what options are available.

[ Top ]

getFingerprint   [line 427]

string getFingerprint( string $key_id, [integer $format = self::FORMAT_NONE])

Gets a key fingerprint from the keyring

If more than one key fingerprint is avaliable (for example, if you use a non-unique user id) only the first key fingerprint is returned.

  • Return: the fingerprint of the key, or null if no fingerprint is found for the given $key_id.
  • Abstract:
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::getFingerprint()
Gets a key fingerprint from the keyring
Crypt_GPG_Driver_GnuPG::getFingerprint()
Gets a key fingerprint from the keyring

Parameters:

string   $key_id   —  either the full user id of the key, the email part of the user id of the key, or the key id of the key. For example, "Test User (example) <test@example.com>", "test@example.com" or a hexidecimal string.
integer   $format   —  optional. How the fingerprint should be formatted. Use Crypt_GPG::FORMAT_X509 for X.509 certificate format, Crypt_GPG::FORMAT_CANONICAL for the format used by GnuPG output and Crypt_GPG::FORMAT_NONE for no formatting. Defaults to Crypt_GPG::FORMAT_NONE.

[ Top ]

getKeys   [line 396]

array getKeys( [string $key_id = ''])

Gets the available keys in the keyring
  • Return: an array of Crypt_GPG_Key objects.
  • See: Crypt_GPG_Key
  • Abstract:
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::getKeys()
Gets the available keys in the keyring
Crypt_GPG_Driver_GnuPG::getKeys()
Gets the available keys in the keyring

Parameters:

string   $key_id   —  optional. Only keys with that match the specified pattern are returned. The pattern may be part of a user id, a key id or a key fingerprint. If not specified, all keys are returned.

[ Top ]

importKey   [line 281]

array importKey( string $data)

Imports a public or private key into the keyring

Keys may be removed from the keyring using Crypt_GPG::deletePublicKey() or Crypt_GPG::deletePrivateKey().

  • Return: an associative array containing the following elements:
    • fingerprint: the key fingerprint of the imported key,
    • public_imported: the number of public keys imported,
    • public_unchanged: the number of unchanged public keys,
    • private_imported: the number of private keys imported,
    • private_unchanged: the number of unchanged private keys.
  • Abstract:
  • Throws: Crypt_GPG_NoDataException if the key data is missing or if the data is is not valid key data.
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::importKey()
Imports a public or private key into the keyring
Crypt_GPG_Driver_GnuPG::importKey()
Imports a public or private key into the keyring

Parameters:

string   $data   —  the key data to be imported.

[ Top ]

sign   [line 549]

string sign( string $key_id, string $data, [string $passphrase = null], [boolean $mode = self::SIGN_MODE_NORMAL], [boolean $armor = true])

Signs data using the given key and passphrase

Data may be signed using any one of the three available signing modes:

  • Return: the signed data, or the signature data if a detached signature is requested.
  • Abstract:
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Throws: Crypt_GPG_KeyNotFoundException if the private key is not in the user's keyring. Signing data requires the private key.
  • Throws: Crypt_GPG_BadPassphraseException if specified passphrase is incorrect or if a required passphrase is not specified.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::sign()
Signs data using the given key and passphrase
Crypt_GPG_Driver_GnuPG::sign()
Signs data using the given key and passphrase

Parameters:

string   $key_id   —  either the full uid of the private key, the email part of the uid of the private key or the key id of the private key. For example, "Test User (example) <test@example.com>", "test@example.com" or a hexidecimal string.
string   $data   —  the data to be signed.
string   $passphrase   —  optional. The passphrase of the private key used to sign the data. Only required if the private key requires a passphrase. Specify null for no passphrase.
boolean   $mode   —  otional. The data signing mode to use. Should be one of Crypt_GPG::SIGN_MODE_NORMAL, Crypt_GPG::SIGN_MODE_CLEAR or Crypt_GPG::SIGN_MODE_DETACHED. If not specified, defaults to Crypt_GPG::SIGN_MODE_NORMAL.
boolean   $armor   —  optional. If true, ASCII armored data is returned; otherwise, binary data is returned. Defaults to true. This has no effect if the mode Crypt_GPG::SIGN_MODE_CLEAR is used.

[ Top ]

verify   [line 581]

Crypt_GPG_Signature verify( string $signed_data, [string $signature = ''])

Verifies signed data

The Crypt_GPG::decrypt() method may be used to get the original message if the signed data is not clearsigned and does not have a detached signature.

  • Return: the signature details of the signed data. If the signature is valid, the $valid property of the returned object will be true.
  • See: Crypt_GPG_Signature
  • Abstract:
  • Throws: Crypt_GPG_Exception if an unknown or unexpected error occurs. Use Crypt_GPG::$debug and file a bug report if these exceptions occur.
  • Throws: Crypt_GPG_NoDataException if the provided data is not signed data.
  • Access: public

Overridden in child classes as:

Crypt_GPG_Driver_Php::verify()
Verifies signed data
Crypt_GPG_Driver_GnuPG::verify()
Verifies signed data

Parameters:

string   $signed_data   —  the signed data to be verified.
string   $signature   —  optional. If verifying data signed using a detached signature, this must be the detached signature data. The data that was signed is specified in $signed_data.

[ Top ]


Documentation generated on Mon, 11 Mar 2019 15:19:34 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.