Skip to content

paragonie/quill

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 

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

About

Library for quickly and easily writing data to a Chronicle instance

Resources

License

Stars

Watchers

Forks

Languages