From f9cbee2dcca4f0ebca01d8f37fdddddafbf93d38 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 23 Mar 2025 18:24:46 +0800 Subject: Rename token.go to identifier.go --- identifier.go | 43 +++++++++++++++++++++++++++++++++++++++++++ token.go | 43 ------------------------------------------- 2 files changed, 43 insertions(+), 43 deletions(-) create mode 100644 identifier.go delete mode 100644 token.go diff --git a/identifier.go b/identifier.go new file mode 100644 index 0000000..6da0e7c --- /dev/null +++ b/identifier.go @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: BSD-2-Clause +// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu + +package main + +import ( + "crypto/hmac" + "crypto/sha256" + "encoding/binary" + "net/http" + "time" +) + +func makeIdentifierMAC(request *http.Request) (identifier []byte, mac []byte) { + identifier = make([]byte, 0, sha256.Size) + mac = make([]byte, 0, sha256.Size) + + timeBuf := make([]byte, binary.MaxVarintLen64) + binary.PutVarint(timeBuf, time.Now().Unix()/604800) + + remoteIP := getRemoteIP(request) + + h := sha256.New() + h.Write(timeBuf) + h.Write(stringToBytes(remoteIP)) + h.Write(stringToBytes(request.Header.Get("User-Agent"))) + h.Write(stringToBytes(request.Header.Get("Accept-Encoding"))) + h.Write(stringToBytes(request.Header.Get("Accept-Language"))) + h.Write(privkeyHash) + identifier = h.Sum(identifier) + if len(identifier) != sha256.Size { + panic("unexpected buffer length after hashing contents") + } + + m := hmac.New(sha256.New, privkey) + m.Write(identifier) + mac = m.Sum(mac) + if len(mac) != sha256.Size { + panic("unexpected buffer length after hmac") + } + + return +} diff --git a/token.go b/token.go deleted file mode 100644 index 6da0e7c..0000000 --- a/token.go +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: BSD-2-Clause -// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu - -package main - -import ( - "crypto/hmac" - "crypto/sha256" - "encoding/binary" - "net/http" - "time" -) - -func makeIdentifierMAC(request *http.Request) (identifier []byte, mac []byte) { - identifier = make([]byte, 0, sha256.Size) - mac = make([]byte, 0, sha256.Size) - - timeBuf := make([]byte, binary.MaxVarintLen64) - binary.PutVarint(timeBuf, time.Now().Unix()/604800) - - remoteIP := getRemoteIP(request) - - h := sha256.New() - h.Write(timeBuf) - h.Write(stringToBytes(remoteIP)) - h.Write(stringToBytes(request.Header.Get("User-Agent"))) - h.Write(stringToBytes(request.Header.Get("Accept-Encoding"))) - h.Write(stringToBytes(request.Header.Get("Accept-Language"))) - h.Write(privkeyHash) - identifier = h.Sum(identifier) - if len(identifier) != sha256.Size { - panic("unexpected buffer length after hashing contents") - } - - m := hmac.New(sha256.New, privkey) - m.Write(identifier) - mac = m.Sum(mac) - if len(mac) != sha256.Size { - panic("unexpected buffer length after hmac") - } - - return -} -- cgit v1.2.3