Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/microgit-com/lucky_encrypted
attribute_encrypted in Crystal for Lucky
https://github.com/microgit-com/lucky_encrypted
crystal encryption lucky-framework
Last synced: about 1 month ago
JSON representation
attribute_encrypted in Crystal for Lucky
- Host: GitHub
- URL: https://github.com/microgit-com/lucky_encrypted
- Owner: microgit-com
- License: mit
- Created: 2020-02-23T20:17:48.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-02-13T17:47:54.000Z (over 1 year ago)
- Last Synced: 2024-04-20T11:31:51.575Z (5 months ago)
- Topics: crystal, encryption, lucky-framework
- Language: Crystal
- Size: 16.6 KB
- Stars: 12
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
lucky_encrypted:
github: microgit-com/lucky_encrypted
```2. 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_secret` as example.
* set a config for LuckyEncrypted:
```crystal
# 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
end
```
you can use lucky's secret key base or generate a different secret with `lucky gen.secret_key`* Add the type `LuckyEncrypted::StringEncrypted` as 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
1. Fork it ()
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request## Contributors
- [Håkan Nylén](https://github.com/confact) - creator and maintainer