PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Scott Arciszewski   PHP Quill   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Read me
Class: PHP Quill
Write data to a Chronicle server using encryption
Author: By
Last change:
Date: 1 year ago
Size: 2,768 bytes
 

Contents

Class file image Download

Quill

Build Status Latest Stable Version Latest Unstable Version License Downloads

Quill is a library for publishing data to a Chronicle instance. Requires PHP 7.1 or newer. PHP 7.2+ is recommended.

A monolog handler is also available.

Installing

composer require paragonie/quill

Usage

<?php

use ParagonIE\ConstantTime\Base64UrlSafe;
use ParagonIE\Quill\Quill;
use ParagonIE\Sapient\CryptographyKeys\{
    SigningSecretKey,
    SigningPublicKey
};

$quill = (new Quill())
    ->setChronicleURL('https://chronicle-public-test.paragonie.com/chronicle')
    ->setServerPublicKey(
        new SigningPublicKey(
            Base64UrlSafe::decode('3BK4hOYTWJbLV5QdqS-DFKEYOMKd-G5M9BvfbqG1ICI=')
        )
    )
    ->setClientID('Your Client ID provided by the Chronicle here')
    ->setClientSecretKey(
        new SigningSecretKey('/Loaded from the filesystem or something./')
    );

$quill->write("Important security notice goes here.");

Writing Data (Unencrypted)

There are two main API methods that do the same thing but differ in their return values:

  • `write(string $input): ResponseInterface` * Returns the PSR-7 Response object, or throws an exception
  • `blindWrite(string $input): bool` * Returns `TRUE` or `FALSE`

Writing Data (Symmetric Encryption)

If you want to encrypt your messages using a shared encryption key:

  • `writeEncrypted(string $input, SharedEncryptionKey $key): ResponseInterface` * Returns the PSR-7 Response object, or throws an exception
  • `blindWriteEncrypted(string $input, SharedEncryptionKey $key): bool` * Returns `TRUE` or `FALSE`

Writing Data (Asymmetric Encryption)

If you want to encrypt your messages using a public-key cryptography:

  • `writeSealed(string $input, SealingPublicKey $key): ResponseInterface` * Returns the PSR-7 Response object, or throws an exception
  • `blindWriteSealed(string $input, SealingPublicKey $key): bool` * Returns `TRUE` or `FALSE`