lucky_encrypted
lucky_encrypted
An type for Lucky framework Avram that's encrypt a string before saving to a database and decrypts when getting it from db.
it use defaults from Lucky's message encryptor class, which is using when last checked aes-256-cbc and the digest is sha1
You only need one column, as both the iv and the data is saved in one, splitted.
Installation
-
Add the dependency to your
shard.yml:dependencies: lucky_encrypted: github: microgit-com/lucky_encrypted -
Run
shards install
Usage
-
add
require "lucky_encrypted"in shards.cr -
Create an column for the encrypted string you want to save with lucky migration, i use
otp_secretas example. -
set a config for LuckyEncrypted:
# In config/lucky_encrypted.cr require "./server" # To get the configuration from the server LuckyEncrypted.configure do |settings| settings.secret = Lucky::Server.settings.secret_key_base endyou can use lucky's secret key base or generate a different secret with
lucky gen.secret_key -
Add the type
LuckyEncrypted::StringEncryptedas type for that column in the model:column otp_secret : LuckyEncrypted::StringEncrypted
it shall now work. (famous last words)
Development
using stdlib spec and all. so just use the test and so forth.
Contributing
- Fork it (https://github.com/microgit-com/lucky_encrypted/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Håkan Nylén - creator and maintainer