sri_hash.cr
sri_hash.cr - Generates SRI hash or complete script tag for a resource
Subresource integrity helper for Crystal. More info on SRI: https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity
Installation
-
Add the dependency to your
shard.yml
:dependencies: sri_hash: github: anamba/sri_hash.cr
-
Run
shards install
Usage
require "sri_hash"
SRIHash.from_string("Example text") # -> "sha256-ljgfRyA+rQLdERYr90sJ9dRLkTYUnUIAHmR1dX6cvmQ="
# downloads file using http-client, then computes hash
# NOTE: adds defer by default (pass defer: false to override)
SRIHash.script_tag("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.0/jquery.slim.min.js") # -> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.0/jquery.slim.min.js" integrity="sha256-ZaXnYkHGqIhqTbJ6MB4l9Frs/r7U4jlx7ir8PJYBqbI=" crossorigin="anonymous" defer></script>
Algorithm defaults to sha256 (like cdnjs), but can be changed, either on individual calls or globally:
SRIHash.from_string("Example text", "sha384") # -> "sha384-ccLtG4S0txUiu3s0kEOUSiKfr3poGC+i1midiPHzO/aDkeHwlXnP4ozRKWqOREqn"
SRIHash.settings.algorithm = "sha384"
SRIHash.from_string("Example text") # -> "sha384-ccLtG4S0txUiu3s0kEOUSiKfr3poGC+i1midiPHzO/aDkeHwlXnP4ozRKWqOREqn"
Contributing
- Fork it (https://github.com/anamba/sri_hash.cr/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
- Aaron Namba - creator and maintainer
Repository
sri_hash.cr
Owner
Statistic
- 4
- 0
- 0
- 0
- 0
- about 4 years ago
- April 17, 2019
License
MIT License
Links
Synced at
Thu, 08 May 2025 17:04:34 GMT
Languages