105

GitHub - paragonie/quill: Library for quickly and easily writing data to a Chron...

 6 years ago
source link: https://github.com/paragonie/quill
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Quill

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 Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK