From 9bf140036f28476da2ed9a186854b00f7b3d2979 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 14 Apr 2023 19:20:17 +0300 Subject: [PATCH] SHAKE it --- handler.go | 8 ++++++++ meta4/parse.go | 6 ++++++ meta4/scheme.go | 2 ++ 3 files changed, 16 insertions(+) diff --git a/handler.go b/handler.go index e17583c..30b1c1e 100644 --- a/handler.go +++ b/handler.go @@ -286,6 +286,14 @@ IndexLookuped: w.Header().Add("Digest", "Streebog-512="+ base64.StdEncoding.EncodeToString(forHTTP.Streebog512)) } + if forHTTP.SHAKE128 != nil { + w.Header().Add("Digest", "SHAKE128="+ + base64.StdEncoding.EncodeToString(forHTTP.SHAKE128)) + } + if forHTTP.SHAKE256 != nil { + w.Header().Add("Digest", "SHAKE256="+ + base64.StdEncoding.EncodeToString(forHTTP.SHAKE256)) + } } SkipMeta4: diff --git a/meta4/parse.go b/meta4/parse.go index c816434..b5f67ba 100644 --- a/meta4/parse.go +++ b/meta4/parse.go @@ -27,6 +27,8 @@ type ForHTTP struct { SHA512 []byte Streebog256 []byte Streebog512 []byte + SHAKE128 []byte + SHAKE256 []byte URLs []string } @@ -55,6 +57,10 @@ func Parse(fn string, data []byte) (*ForHTTP, error) { forHTTP.Streebog256 = digest case HashStreebog512: forHTTP.Streebog512 = digest + case HashSHAKE128: + forHTTP.SHAKE128 = digest + case HashSHAKE256: + forHTTP.SHAKE256 = digest } } for _, u := range f.URLs { diff --git a/meta4/scheme.go b/meta4/scheme.go index 681bf4a..82796a4 100644 --- a/meta4/scheme.go +++ b/meta4/scheme.go @@ -27,6 +27,8 @@ const ( HashSHA512 = "sha-512" HashStreebog256 = "streebog-256" HashStreebog512 = "streebog-512" + HashSHAKE128 = "shake128" + HashSHAKE256 = "shake256" Ext = ".meta4" MaxSize = 1 << 16 ) -- 2.44.0