{"id":193,"date":"2009-01-03T13:11:54","date_gmt":"2009-01-03T17:11:54","guid":{"rendered":"http:\/\/steve.vinoski.net\/blog\/?p=193"},"modified":"2009-01-03T13:11:54","modified_gmt":"2009-01-03T17:11:54","slug":"more-sha-in-erlang","status":"publish","type":"post","link":"https:\/\/steve.vinoski.net\/blog\/2009\/01\/03\/more-sha-in-erlang\/","title":{"rendered":"More SHA in Erlang"},"content":{"rendered":"<p>Yesterday I posted a <a href=\"\/blog\/2009\/01\/02\/sha-256-in-erlang\/\">SHA-256 Erlang module<\/a>, but I figured since other SHA algorithms are similar, I might as well finish the job. I grabbed the <a href=\"http:\/\/csrc.nist.gov\/publications\/fips\/fips180-2\/fips180-2withchangenotice.pdf\">Secure Hash Standard<\/a> and went to work.<\/p>\n<p>The resulting new module is named <a href=\"\/code\/sha2.html\">sha2<\/a> and it implements SHA-224, SHA-256, SHA-384, and SHA-512.<\/p>\n<ul>\n<li><a href=\"\/code\/sha2.erl\">Code<\/a><\/li>\n<li>Light <a href=\"\/code\/sha2.html\">documentation<\/a><\/li>\n<li>Tests are included in the module but you get the test vectors <a href=\"http:\/\/www.aarongifford.com\/computers\/sha2-1.0.tar.gz\">here<\/a><\/li>\n<li>It&#8217;s open source, <a href=\"http:\/\/www.opensource.org\/licenses\/bsd-license.php\">BSD license<\/a><\/li>\n<\/ul>\n<p>I hope you find it useful.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday I posted a SHA-256 Erlang module, but I figured since other SHA algorithms are similar, I might as well finish the job. I grabbed the Secure Hash Standard and went to work. The resulting new module is named sha2 and it implements SHA-224, SHA-256, SHA-384, and SHA-512. Code Light documentation Tests are included in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[58,4],"tags":[169,140],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-code","category-erlang","tag-code","tag-erlang"],"_links":{"self":[{"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/comments?post=193"}],"version-history":[{"count":15,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":208,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/posts\/193\/revisions\/208"}],"wp:attachment":[{"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/media?parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/categories?post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/steve.vinoski.net\/blog\/wp-json\/wp\/v2\/tags?post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}