/libsodiumfacade

A wrapper/facade class for PHP's Libsodium extension functions. Covers symmetric and public key encryption functions.

Primary LanguagePHPMIT LicenseMIT

Libsodium Facade

GitHub tag (latest SemVer)   PHP v8.0+   PHP v8.1+   License: MIT
follow on Twitter  Sponsor Project

A wrapper/facade class for PHP's LibSodium extension. Providing symmetric and public key encryption and decryption static methods, and key generation methods.

Hex-encoded: All output converted to hex. Inputs expect hex-encoded values.

Install

Via Composer:

composer require syntaxseed/libsodium

Or add to composer.json:

"require": {
    "syntaxseed/libsodium": "^1.0"
},

Static Functions

  • Symmetric Encryption (one secret key)

    • generateSymmetricKey()
    • symmetricEncrypt($secretString, $symmetricKey)
    • symmetricDecrypt($encryptedString, $nonce, $key)
  • Public-Key Encryption (public/private key pair)

    • generateKeyPair()
    • publicKeyEncrypt($secretString, $theirPublicKey, $ourPrivateKey)
    • publicKeyDecrypt($encryptedString, $nonce, $ourPublicKey, $theirPrivateKey)

Usage

See examples/ directory.

Changelog

  • v1.0.0 - (2018-10-27) Created. Added to GitHub.
    • v1.0.1 - (2018-10-27) Update readme, add Composer instructions.
    • v1.0.2 - (2022-02-02) Test for PHP 8.0. Add example usage file.
    • v1.0.3 - (2022-03-13) Test for PHP 8.1. Fix PSR formatting.