php-privacy/openpgp

PHP Privacy - The OpenPGP library in PHP language

2.0.3 2024-11-05 09:05 UTC

README

PHP Privacy is an implementation of the OpenPGP standard in PHP language. It implements RFC 9580 and provides encryption with public key or symmetric cryptographic algorithms, digital signatures, compression, and key management.

Requirement

  • PHP 8.1.x or later,
  • phpseclib library provides cryptography algorithms,
  • Argon2 for Argon2 string-to-key,
  • (optional) PHPUnit to run tests,

Features

Installation

Via Composer

$ composer require php-privacy/openpgp

or just add it to your composer.json file directly.

{
    "require": {
        "php-privacy/openpgp": "^2.0"
    }
}

Basic usage of PHP Privacy

Sign and verify cleartext message

<?php declare(strict_types=1);

require_once 'vendor/autoload.php';

use OpenPGP\OpenPGP;

$armoredPublicKey = '-----BEGIN PGP PUBLIC KEY BLOCK-----';
$armoredPrivateKey = '-----BEGIN PGP PRIVATE KEY BLOCK-----';
$passphrase = 'Your passphrase';

$publicKey = OpenPGP::readPublicKey($armoredPublicKey);
$privateKey = OpenPGP::decryptPrivateKey($armoredPrivateKey, $passphrase);
$cleartextMessage = OpenPGP::createCleartextMessage('Hello, PHP Privacy!');
$signedMessage = $cleartextMessage->sign([$privateKey]);
$verifications = $signedMessage->verify([$publicKey]);

Licensing

BSD 3-Clause

For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.