2017 © Pedro Peláez
 

library laravel-aead

Advanced Encryption with Associated Data (AEAD) for Laravel.

image

hernandev/laravel-aead

Advanced Encryption with Associated Data (AEAD) for Laravel.

  • Saturday, April 21, 2018
  • by hernandev
  • Repository
  • 1 Watchers
  • 1 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

LaravelAEAD.

LaravelAEAD is a library which provides Advanced Encryption with Associated Data (AEAD) for Laravel., (*1)

Abstract:

This package replaces, when installed and enabled, the default encryption implementation of Laravel, which currently supports only two variants of the same block cipher, AES-128-CBC and AES-256-CBC., (*2)

The reason for only having two options is probably based on PHP history itself, like the (not so much) rececent depreciation of MCrypt., (*3)

As of PHP 7.2, we can now count on the exceptional libsodium extension, with supports the most secure AEAD construtions and it's variants., (*4)

AEAD stands for Advanced Encryption, with Associated Data, and they are algorithms which combine a stream cipher with a message authentication code (MAC)., (*5)

The result of such combination is a encryption scheme with provides three aspects that are useful for modern applications: - Confidentiality - Integrity - Authenticity, (*6)

For more information on AEAD, I highly recommend reading the libsodium documentation, which states the main parts, but, reading the construction IETF RFC's is also something interesting if you care for security., (*7)

Available Constructions.

Those are the libsodium AEAD constructors, and they respective key for usage with this package., (*8)

AEAD Cipher / Contruction Key Size Nonce Size Config Key (config/app.php)
XChaCha20-Poly1305-IEFT 256 bits 192 bits 'XCHACHA20-POLY1305-IEFT'
ChaCha20-Poly1305-IEFT 256 bits 96 bits 'CHACHA20-POLY1305-IEFT'
ChaCha20-Poly1305 256 bits 64 bits 'CHACHA20-POLY1305'
AES-256-GCM 256 bits 96 bits 'AES-256-GCM'

Installing & Configuring.

Installing the Library., (*9)

composer require hernandev/laravel-aead

Changing the authentication provider (on config/app.php):, (*10)

    // YOU MUST COMMENT OUT THE DEFAULT ENCRYPTION CLASS>
    // Illuminate\Encryption\EncryptionServiceProvider::class,
    // THIS ONE SHOULD BE USED INSTEAD.
    LaravelAEAD\Providers\EncryptionServiceProvider::class,

Configuring the cipher (also on config/app.php):, (*11)

    'cipher' => 'XCHACHA20-POLY1305-IETF',

Usage.

After doing this install, all default Laravel encryption will be performed under the relative constructions / ciphers., (*12)

Meaning if you use encrypt() and decrypt(), they will use this package instead of the default encryption., (*13)

It also means that cookies & session, that should be encrypted, will use it., (*14)

The Versions

21/04 2018

dev-develop

dev-develop

Advanced Encryption with Associated Data (AEAD) for Laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Diego Hernandes

laravel encryption cryptography aead chacha20 xchacha20 poly1305 aes-256-gcm

21/04 2018

dev-master

9999999-dev

Advanced Encryption with Associated Data (AEAD) for Laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Diego Hernandes

laravel encryption cryptography aead chacha20 xchacha20 poly1305 aes-256-gcm

21/04 2018

0.1.2

0.1.2.0

Advanced Encryption with Associated Data (AEAD) for Laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Diego Hernandes

laravel encryption cryptography aead chacha20 xchacha20 poly1305 aes-256-gcm

21/04 2018

0.1.1

0.1.1.0

Advanced Encryption with Associated Data (AEAD) for Laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Diego Hernandes

laravel encryption cryptography aead chacha20 xchacha20 poly1305 aes-256-gcm

21/04 2018

0.1.0

0.1.0.0

Advanced Encryption with Associated Data (AEAD) for Laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Diego Hernandes

laravel encryption cryptography aead chacha20 xchacha20 poly1305 aes-256-gcm