mirror of
https://github.com/tillitis/tillitis-key1.git
synced 2025-08-08 06:32:25 -04:00
tool: Introduce b2s tool to help compute BLAKE2s digests
This commit is contained in:
parent
91471c2962
commit
d34e8e2c12
5 changed files with 102 additions and 0 deletions
59
hw/application_fpga/tools/b2s/b2s.go
Normal file
59
hw/application_fpga/tools/b2s/b2s.go
Normal file
|
@ -0,0 +1,59 @@
|
|||
// SPDX-FileCopyrightText: 2025 Tillitis AB <tillitis.se>
|
||||
// SPDX-License-Identifier: BSD-2-Clause
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"golang.org/x/crypto/blake2s"
|
||||
)
|
||||
|
||||
func usage() {
|
||||
fmt.Printf("Usage: %s -m filename [-c]\n", os.Args[0])
|
||||
}
|
||||
|
||||
func printCDigest(digest [blake2s.Size]byte, fileName string) {
|
||||
fmt.Printf("// BLAKE2s digest of %v\n", fileName)
|
||||
fmt.Printf("const uint8_t digest[32] = {\n")
|
||||
|
||||
for _, n := range digest {
|
||||
fmt.Printf("0x%x, ", n)
|
||||
}
|
||||
|
||||
fmt.Printf("\n}; \n")
|
||||
}
|
||||
|
||||
func main() {
|
||||
var messageFile string
|
||||
var forC bool
|
||||
|
||||
flag.StringVar(&messageFile, "m", "", "Specify file containing message.")
|
||||
flag.BoolVar(&forC, "c", false, "Print digest for inclusion in C program.")
|
||||
|
||||
flag.Usage = usage
|
||||
flag.Parse()
|
||||
|
||||
if messageFile == "" {
|
||||
usage()
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
message, err := os.ReadFile(messageFile)
|
||||
if err != nil {
|
||||
fmt.Printf("%v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
digest := blake2s.Sum256(message)
|
||||
|
||||
if forC {
|
||||
printCDigest(digest, messageFile)
|
||||
} else {
|
||||
fmt.Printf("%x %s\n", digest, messageFile)
|
||||
}
|
||||
|
||||
os.Exit(0)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue