Git Product home page Git Product logo

crypt's Introduction

Crypt

Build Status Coverage Total Downloads License

CakePHP 3 behavior to allow (a)symmetric encryption/decryption of data by the ORM.

Special thanks to security experts @ircmaxell & @voodooKobra for reviewing the work.

**USE AT YOUR OWN RISK.

Install

Using Composer:

composer require muffin/crypt:dev-master

You then need to load the plugin. You can use the shell command:

bin/cake plugin load Muffin/Crypt

or by manually adding statement shown below to bootstrap.php:

Plugin::load('Muffin/Crypt');

Usage

By default, the behavior will use the Cake\Utility\Security and not decrypt every find operation. Both configuration could be overridden when setting up the behavior:

$this->addBehavior('Muffin/Crypt.Crypt', [
    'fields' => ['cc_number', 'cc_cvv'],
    'strategy' => '\Muffin\Crypt\Model\Behavior\Strategy\AsymmetricStrategy',
    'implementedEvents' => [
        'Model.beforeSave' => 'beforeSave',
        'Model.beforeFind' => 'beforeFind',
    ]
]);

If the fields you are encrypting are of a specific type (i.e. POINT), and if specified when configuring the behavior, the behavior will take care of transforming the data back and forth. If using a custom type, make sure it is added to your table.

$this->addBehavior('Muffin/Crypt.Crypt', [
    'fields' => ['location' => 'point'],
]);

Patches & Features

  • Fork
  • Mod, fix
  • Test - this is important, so it's not unintentionally broken
  • Commit - do not mess with license, todo, version, etc. (if you do change any, bump them into commits of their own that I can ignore when I pull)
  • Pull request - bonus point for topic branches

To ensure your PRs are considered for upstream, you MUST follow the CakePHP coding standards.

Bugs & Feedback

http://github.com/usemuffin/crypt/issues

License

Copyright (c) 2015, Use Muffin and licensed under The MIT License.

crypt's People

Contributors

admad avatar chrisshick avatar jadb avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.