summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2017-09-18 02:53:35 +0200
committerChristian Pointner <equinox@anytun.org>2017-09-18 02:53:35 +0200
commit50d0e48652e8e28805f927ef884d355c77de9e3c (patch)
tree882f9838d3e6beca7dacc078013791e093f477b8
parentsome more testcases and fixes (diff)
added some test functions
-rw-r--r--satp/crypto-kd-aesctr_test.go46
1 files changed, 44 insertions, 2 deletions
diff --git a/satp/crypto-kd-aesctr_test.go b/satp/crypto-kd-aesctr_test.go
index d625a16..704ff75 100644
--- a/satp/crypto-kd-aesctr_test.go
+++ b/satp/crypto-kd-aesctr_test.go
@@ -104,6 +104,10 @@ func TestAESCTRKeyDerivationGenerateCtr(t *testing.T) {
}
}
+//func TestAESCTRKeyDerivationGenerateRepeat(t *testing.T) {
+// TODO: implement this with actual test vectors
+//}
+
func TestAESCTRKeyDerivationGenerateRepeat(t *testing.T) {
var buffer [256]byte
rand.Read(buffer[:])
@@ -123,8 +127,7 @@ func TestAESCTRKeyDerivationGenerateRepeat(t *testing.T) {
}
for _, vector := range testvectors {
- key := [aes.BlockSize]byte{}
- kd, err := NewAESCTRKeyDerivation(key[:], vector.salt)
+ kd, err := NewAESCTRKeyDerivation(vector.key, vector.salt)
if err != nil {
t.Fatal("unexpected error:", err)
}
@@ -139,3 +142,42 @@ func TestAESCTRKeyDerivationGenerateRepeat(t *testing.T) {
}
}
}
+
+//
+// Benchmarking
+//
+
+func BenchmarkAESCTRKeyDerivationGenerateCtr(b *testing.B) {
+ var buffer [256]byte
+ rand.Read(buffer[:])
+
+ kd, err := NewAESCTRKeyDerivation(buffer[:16], buffer[16:30])
+ if err != nil {
+ b.Fatal("unexpected error:", err)
+ }
+ aesCTR := kd.(*AESCTRKeyDerivation)
+ ctr := make([]byte, 16)
+
+ b.ResetTimer()
+
+ for i := 0; i < b.N; i++ {
+ aesCTR.generateCTR(DirRight, UsageAuthKey, 0xAA55AA55, ctr)
+ }
+}
+
+func BenchmarkAESCTRKeyDerivationGenerate(b *testing.B) {
+ var buffer [256]byte
+ rand.Read(buffer[:])
+
+ kd, err := NewAESCTRKeyDerivation(buffer[:16], buffer[16:30])
+ if err != nil {
+ b.Fatal("unexpected error:", err)
+ }
+ out := make([]byte, 16)
+
+ b.ResetTimer()
+
+ for i := 0; i < b.N; i++ {
+ kd.Generate(DirLeft, UsageEncryptKey, 0xdeadbeef, out)
+ }
+}