mirror of
https://github.com/QuilibriumNetwork/ceremonyclient.git
synced 2026-02-21 18:37:26 +08:00
92 lines
1.7 KiB
Go
92 lines
1.7 KiB
Go
//
|
|
// enc_test.go
|
|
//
|
|
// Copyright (c) 2019-2023 Markku Rossi
|
|
//
|
|
// All rights reserved.
|
|
//
|
|
|
|
package circuit
|
|
|
|
import (
|
|
"crypto/aes"
|
|
"crypto/rand"
|
|
"testing"
|
|
|
|
"source.quilibrium.com/quilibrium/monorepo/bedlam/ot"
|
|
)
|
|
|
|
func TestEnc(t *testing.T) {
|
|
a, _ := ot.NewLabel(rand.Reader)
|
|
b, _ := ot.NewLabel(rand.Reader)
|
|
c, _ := ot.NewLabel(rand.Reader)
|
|
tweak := uint32(42)
|
|
var key [32]byte
|
|
|
|
cipher, err := aes.NewCipher(key[:])
|
|
if err != nil {
|
|
t.Fatalf("Failed to create cipher: %s", err)
|
|
}
|
|
|
|
var data ot.LabelData
|
|
|
|
encrypted := encrypt(cipher, a, b, c, tweak, &data)
|
|
if err != nil {
|
|
t.Fatalf("Encrypt failed: %s", err)
|
|
}
|
|
|
|
plain := decrypt(cipher, a, b, tweak, encrypted, &data)
|
|
|
|
if !c.Equal(plain) {
|
|
t.Fatalf("Encrypt-decrypt failed")
|
|
}
|
|
}
|
|
|
|
func BenchmarkEnc(b *testing.B) {
|
|
var key [32]byte
|
|
|
|
cipher, err := aes.NewCipher(key[:])
|
|
if err != nil {
|
|
b.Fatalf("Failed to create cipher: %s", err)
|
|
}
|
|
|
|
al, err := ot.NewLabel(rand.Reader)
|
|
if err != nil {
|
|
b.Fatalf("Failed to create label: %s", err)
|
|
}
|
|
bl, err := ot.NewLabel(rand.Reader)
|
|
if err != nil {
|
|
b.Fatalf("Failed to create label: %s", err)
|
|
}
|
|
cl, err := ot.NewLabel(rand.Reader)
|
|
if err != nil {
|
|
b.Fatalf("Failed to create label: %s", err)
|
|
}
|
|
|
|
b.ResetTimer()
|
|
var data ot.LabelData
|
|
for i := 0; i < b.N; i++ {
|
|
encrypt(cipher, al, bl, cl, uint32(i), &data)
|
|
}
|
|
}
|
|
|
|
func BenchmarkEncHalf(b *testing.B) {
|
|
var key [32]byte
|
|
|
|
cipher, err := aes.NewCipher(key[:])
|
|
if err != nil {
|
|
b.Fatalf("Failed to create cipher: %s", err)
|
|
}
|
|
|
|
xl, err := ot.NewLabel(rand.Reader)
|
|
if err != nil {
|
|
b.Fatalf("Failed to create label: %s", err)
|
|
}
|
|
|
|
b.ResetTimer()
|
|
var data ot.LabelData
|
|
for i := 0; i < b.N; i++ {
|
|
encryptHalf(cipher, xl, uint32(i), &data)
|
|
}
|
|
}
|