Skip to content

Commit

Permalink
add benchmark
Browse files Browse the repository at this point in the history
  • Loading branch information
RyuaNerin committed Jun 27, 2024
1 parent 059028e commit 695b156
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 9 deletions.
58 changes: 55 additions & 3 deletions cmac/cmac_test.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
package cmac
package cmac_test

import (
"bytes"
"crypto/aes"
"crypto/cipher"
"hash"
"testing"

"github.com/RyuaNerin/go-krypto/cmac"
"github.com/RyuaNerin/go-krypto/internal"
"github.com/RyuaNerin/go-krypto/lea"

. "github.com/RyuaNerin/testingutil"
)

func TestCMAC_SEED(t *testing.T) {
func TestCMAC_AES256(t *testing.T) {
K := internal.HB(`00112233445566778899aabbccddeeff`)
M := internal.HB(`000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f`)
T := [][]byte{
Expand Down Expand Up @@ -52,7 +58,7 @@ func TestCMAC_SEED(t *testing.T) {
panic(err)
}

h := New(b)
h := cmac.New(b)

var dst []byte
for length := 1; length < len(M); length++ {
Expand Down Expand Up @@ -81,3 +87,49 @@ func TestCMAC_SEED(t *testing.T) {
}
}
}

////////////////////////////////////////////////////////////////////////////////////////////////////

var (
aes128, _ = aes.NewCipher(make([]byte, 16))
aes192, _ = aes.NewCipher(make([]byte, 24))
aes256, _ = aes.NewCipher(make([]byte, 32))

lea128, _ = lea.NewCipher(make([]byte, 16))
lea192, _ = lea.NewCipher(make([]byte, 24))
lea256, _ = lea.NewCipher(make([]byte, 32))
)

func newHash(b cipher.Block) hash.Hash {
return cmac.New(b)
}

func Benchmark_Hash_8(b *testing.B) {
b.Run("AES-128", func(b *testing.B) { HB(b, newHash(aes128), 8, false) })
b.Run("AES-192", func(b *testing.B) { HB(b, newHash(aes192), 8, false) })
b.Run("AES-256", func(b *testing.B) { HB(b, newHash(aes256), 8, false) })

b.Run("LEA-128", func(b *testing.B) { HB(b, newHash(lea128), 8, false) })
b.Run("LEA-192", func(b *testing.B) { HB(b, newHash(lea192), 8, false) })
b.Run("LEA-256", func(b *testing.B) { HB(b, newHash(lea256), 8, false) })
}

func Benchmark_Hash_1K(b *testing.B) {
b.Run("AES-128", func(b *testing.B) { HB(b, newHash(aes128), 1024, false) })
b.Run("AES-192", func(b *testing.B) { HB(b, newHash(aes192), 1024, false) })
b.Run("AES-256", func(b *testing.B) { HB(b, newHash(aes256), 1024, false) })

b.Run("LEA-128", func(b *testing.B) { HB(b, newHash(lea128), 1024, false) })
b.Run("LEA-192", func(b *testing.B) { HB(b, newHash(lea192), 1024, false) })
b.Run("LEA-256", func(b *testing.B) { HB(b, newHash(lea256), 1024, false) })
}

func Benchmark_Hash_8K(b *testing.B) {
b.Run("AES-128", func(b *testing.B) { HB(b, newHash(aes128), 8192, false) })
b.Run("AES-192", func(b *testing.B) { HB(b, newHash(aes192), 8192, false) })
b.Run("AES-256", func(b *testing.B) { HB(b, newHash(aes256), 8192, false) })

b.Run("LEA-128", func(b *testing.B) { HB(b, newHash(lea128), 8192, false) })
b.Run("LEA-192", func(b *testing.B) { HB(b, newHash(lea192), 8192, false) })
b.Run("LEA-256", func(b *testing.B) { HB(b, newHash(lea256), 8192, false) })
}
59 changes: 55 additions & 4 deletions gmac/gmac_test.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package gmac
package gmac_test

import (
"bytes"
"crypto/aes"
"crypto/cipher"
"hash"
"testing"

"github.com/RyuaNerin/go-krypto/gmac"
"github.com/RyuaNerin/go-krypto/internal"
"github.com/RyuaNerin/go-krypto/lea"

. "github.com/RyuaNerin/testingutil"
)
Expand All @@ -16,7 +20,7 @@ func Test_GMAC_ShortWrite(t *testing.T) {
t.Fatal(err)
}

h, err := NewGMAC(c, nil)
h, err := gmac.NewGMAC(c, nil)
if err != nil {
t.Fatal(err)
}
Expand All @@ -31,7 +35,7 @@ func Test_GMAC(t *testing.T) {
$ ./test.exe
Key: 00000000000000000000000000000000
IV: 00000000000000000000000000000000
IV: 00000000000000000000000000000000
Message: Yoda said, do or do not. There is no try.
GMAC: E7EE2C63B4DC328EED4A86B3FB3490AF
*/
Expand All @@ -46,7 +50,7 @@ func Test_GMAC(t *testing.T) {
t.Fatal(err)
}

h, err := NewGMAC(c, iv)
h, err := gmac.NewGMAC(c, iv)
if err != nil {
t.Fatal(err)
}
Expand All @@ -66,3 +70,50 @@ func Test_GMAC(t *testing.T) {
return
}
}

////////////////////////////////////////////////////////////////////////////////////////////////////

var (
aes128, _ = aes.NewCipher(make([]byte, 16))
aes192, _ = aes.NewCipher(make([]byte, 24))
aes256, _ = aes.NewCipher(make([]byte, 32))

lea128, _ = lea.NewCipher(make([]byte, 16))
lea192, _ = lea.NewCipher(make([]byte, 24))
lea256, _ = lea.NewCipher(make([]byte, 32))
)

func newHash(b cipher.Block) hash.Hash {
h, _ := gmac.NewGMAC(b, make([]byte, 16))
return h
}

func Benchmark_Hash_8(b *testing.B) {
b.Run("AES-128", func(b *testing.B) { HB(b, newHash(aes128), 8, false) })
b.Run("AES-192", func(b *testing.B) { HB(b, newHash(aes192), 8, false) })
b.Run("AES-256", func(b *testing.B) { HB(b, newHash(aes256), 8, false) })

b.Run("LEA-128", func(b *testing.B) { HB(b, newHash(lea128), 8, false) })
b.Run("LEA-192", func(b *testing.B) { HB(b, newHash(lea192), 8, false) })
b.Run("LEA-256", func(b *testing.B) { HB(b, newHash(lea256), 8, false) })
}

func Benchmark_Hash_1K(b *testing.B) {
b.Run("AES-128", func(b *testing.B) { HB(b, newHash(aes128), 1024, false) })
b.Run("AES-192", func(b *testing.B) { HB(b, newHash(aes192), 1024, false) })
b.Run("AES-256", func(b *testing.B) { HB(b, newHash(aes256), 1024, false) })

b.Run("LEA-128", func(b *testing.B) { HB(b, newHash(lea128), 1024, false) })
b.Run("LEA-192", func(b *testing.B) { HB(b, newHash(lea192), 1024, false) })
b.Run("LEA-256", func(b *testing.B) { HB(b, newHash(lea256), 1024, false) })
}

func Benchmark_Hash_8K(b *testing.B) {
b.Run("AES-128", func(b *testing.B) { HB(b, newHash(aes128), 8192, false) })
b.Run("AES-192", func(b *testing.B) { HB(b, newHash(aes192), 8192, false) })
b.Run("AES-256", func(b *testing.B) { HB(b, newHash(aes256), 8192, false) })

b.Run("LEA-128", func(b *testing.B) { HB(b, newHash(lea128), 8192, false) })
b.Run("LEA-192", func(b *testing.B) { HB(b, newHash(lea192), 8192, false) })
b.Run("LEA-256", func(b *testing.B) { HB(b, newHash(lea256), 8192, false) })
}
9 changes: 7 additions & 2 deletions has160/has160_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ func TestHAS160(t *testing.T) {

////////////////////////////////////////////////////////////////////////////////////////////////////

const (
almost1K = 1024 - 5
almost8K = 8*1024 - 5
)

func Benchmark_Hash_8(b *testing.B) { HB(b, New(), 8, false) }
func Benchmark_Hash_1K(b *testing.B) { HB(b, New(), 1024, false) }
func Benchmark_Hash_8K(b *testing.B) { HB(b, New(), 8192, false) }
func Benchmark_Hash_1K(b *testing.B) { HB(b, New(), almost1K, false) }
func Benchmark_Hash_8K(b *testing.B) { HB(b, New(), almost8K, false) }

0 comments on commit 695b156

Please sign in to comment.