From 5e5ce98d42f56336779f7969437892cf2df2eabd Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Fri, 6 Aug 2021 17:55:45 +0200 Subject: [PATCH] compiler: add aliases for many hashing packages This commit adds support for the following packages: - crypto/md5 - crypto/sha1 - crypto/sha256 - crypto/sha512 They would normally need assembly implementations, but with these aliases they already work everywhere. --- Makefile | 4 ++++ compiler/alias.go | 7 +++++++ compiler/compiler.go | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 21ee69d9..571613ae 100644 --- a/Makefile +++ b/Makefile @@ -190,6 +190,10 @@ TEST_PACKAGES = \ container/list \ container/ring \ crypto/des \ + crypto/md5 \ + crypto/sha1 \ + crypto/sha256 \ + crypto/sha512 \ encoding \ encoding/ascii85 \ encoding/base32 \ diff --git a/compiler/alias.go b/compiler/alias.go index d599e2ea..cc08c832 100644 --- a/compiler/alias.go +++ b/compiler/alias.go @@ -15,6 +15,13 @@ package compiler import "tinygo.org/x/go-llvm" var stdlibAliases = map[string]string{ + // crypto packages + "crypto/md5.block": "crypto/md5.blockGeneric", + "crypto/sha1.block": "crypto/sha1.blockGeneric", + "crypto/sha1.blockAMD64": "crypto/sha1.blockGeneric", + "crypto/sha256.block": "crypto/sha256.blockGeneric", + "crypto/sha512.blockAMD64": "crypto/sha512.blockGeneric", + // math package "math.Asin": "math.asin", "math.Asinh": "math.asinh", diff --git a/compiler/compiler.go b/compiler/compiler.go index f8273039..ea0d51a6 100644 --- a/compiler/compiler.go +++ b/compiler/compiler.go @@ -23,7 +23,7 @@ import ( // Version of the compiler pacakge. Must be incremented each time the compiler // package changes in a way that affects the generated LLVM module. // This version is independent of the TinyGo version number. -const Version = 14 // last change: add math assembly aliases +const Version = 15 // last change: add crypto assembly aliases func init() { llvm.InitializeAllTargets()