Subresource integrity helper for Crystal. More info on SRI: https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity
-
Add the dependency to your
shard.yml
:dependencies: sri_hash: github: anamba/sri_hash.cr
-
Run
shards install
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"
- 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
- Aaron Namba - creator and maintainer