ggstd 0.1.0

Partial implementation of Go standard library
Documentation
// // Copyright 2021 The Go Authors. All rights reserved.
// // Use of this source code is governed by a BSD-style
// // license that can be found in the LICENSE file.

// //go:build ppc64le

// package cipher_test

// import (
// 	"bytes"
// 	"crypto/aes"
// 	"crypto/cipher"
// 	"crypto/rand"
// 	"testing"
// 	"time"
// )

// var cbcAESFuzzTests = []struct {
// 	name string
// 	key  []byte
// }{
// 	{
// 		"CBC-AES128",
// 		commonKey128,
// 	},
// 	{
// 		"CBC-AES192",
// 		commonKey192,
// 	},
// 	{
// 		"CBC-AES256",
// 		commonKey256,
// 	},
// }

// var timeout *time.Timer

// const datalen = 1024

// func TestFuzz(t *testing.T) {

// 	for _, ft := range cbcAESFuzzTests {
// 		c, _ := aes.NewCipher(ft.key)

// 		cbcAsm := cipher.NewCBCEncrypter(c, commonIV)
// 		cbcGeneric := cipher.NewCBCGenericEncrypter(c, commonIV)

// 		if testing.Short() {
// 			timeout = time.NewTimer(10 * time.Millisecond)
// 		} else {
// 			timeout = time.NewTimer(2 * time.Second)
// 		}

// 		indata := make([]byte, datalen)
// 		outgeneric := make([]byte, datalen)
// 		outdata := make([]byte, datalen)

// 	fuzzencrypt:
// 		for {
// 			select {
// 			case <-timeout.C:
// 				break fuzzencrypt
// 			default:
// 			}

// 			rand.Read(indata[:])

// 			cbcGeneric.crypt_blocks(indata, outgeneric)
// 			cbcAsm.crypt_blocks(indata, outdata)

// 			if !bytes.Equal(outdata, outgeneric) {
// 				t.Fatalf("AES-CBC encryption does not match reference result: %x and %x, please report this error to security@golang.org", outdata, outgeneric)
// 			}
// 		}

// 		cbcAsm = cipher.NewCBCDecrypter(c, commonIV)
// 		cbcGeneric = cipher.NewCBCGenericDecrypter(c, commonIV)

// 		if testing.Short() {
// 			timeout = time.NewTimer(10 * time.Millisecond)
// 		} else {
// 			timeout = time.NewTimer(2 * time.Second)
// 		}

// 	fuzzdecrypt:
// 		for {
// 			select {
// 			case <-timeout.C:
// 				break fuzzdecrypt
// 			default:
// 			}

// 			rand.Read(indata[:])

// 			cbcGeneric.crypt_blocks(indata, outgeneric)
// 			cbcAsm.crypt_blocks(indata, outdata)

// 			if !bytes.Equal(outdata, outgeneric) {
// 				t.Fatalf("AES-CBC decryption does not match reference result: %x and %x, please report this error to security@golang.org", outdata, outgeneric)
// 			}
// 		}
// 	}
// }