func main() {
data := []byte("data to be signed")
hasher := gost34112012256.New()
- _, err := hasher.Write(data)
+ hasher.Write(data)
dgst := hasher.Sum(nil)
curve := gost3410.CurveIdtc26gost341012256paramSetB()
- prvRaw := make([]byte, int(32))
- _, err = io.ReadFull(rand.Reader, prvRaw)
+ prvRaw := make([]byte, curve.PointSize())
+ rand.Read(prvRaw)
prv, err := gost3410.NewPrivateKey(curve, prvRaw)
pub, err := prv.PublicKey()
pubRaw := pub.Raw()
"crypto/x509/pkix"
"encoding/pem"
"flag"
- "io"
"log"
"math/big"
"os"
var prv any
if *reuseKey == "" {
prvRaw := make([]byte, curve.PointSize())
- if _, err = io.ReadFull(rand.Reader, prvRaw); err != nil {
- log.Fatal(err)
- }
+ rand.Read(prvRaw)
prv, err = gost3410.NewPrivateKey(curve, prvRaw)
if err != nil {
log.Fatal(err)
sn := big.NewInt(0)
if *serial == -1 {
data := make([]byte, 16, gost34112012256.Size)
- if _, err = io.ReadFull(rand.Reader, data); err != nil {
- log.Fatal(err)
- }
+ rand.Read(data)
hasher := gost34112012256.New()
if _, err = hasher.Write(data); err != nil {
log.Fatal(err)
import (
"bytes"
"crypto/rand"
- "io"
"testing"
)
cek := make([]byte, KeySize)
ukm := make([]byte, 8)
for range 1000 {
- if _, err := io.ReadFull(rand.Reader, kek); err != nil {
- t.Fatal(err)
- }
- if _, err := io.ReadFull(rand.Reader, cek); err != nil {
- t.Fatal(err)
- }
- if _, err := io.ReadFull(rand.Reader, ukm); err != nil {
- t.Fatal(err)
- }
+ rand.Read(kek)
+ rand.Read(cek)
+ rand.Read(ukm)
data := WrapGost(ukm, kek, cek)
got := UnwrapGost(kek, data)
if !bytes.Equal(got, cek) {
func TestRandom(t *testing.T) {
data := make([]byte, BlockSize)
f := func(key [KeySize]byte, pt [BlockSize]byte) bool {
- io.ReadFull(rand.Reader, key[:])
+ rand.Read(key[:])
c := NewCipher(key[:])
c.Encrypt(data, pt[:])
c.Decrypt(data, data)
func BenchmarkEncrypt(b *testing.B) {
key := make([]byte, KeySize)
- io.ReadFull(rand.Reader, key)
+ rand.Read(key)
c := NewCipher(key)
blk := make([]byte, BlockSize)
for b.Loop() {
"bytes"
"crypto/cipher"
"crypto/rand"
- "io"
"testing"
"testing/quick"
}
key128 := new([gost3412128.KeySize]byte)
- if _, err := rand.Read(key128[:]); err != nil {
- panic(err)
- }
+ rand.Read(key128[:])
nonce := make([]byte, gost3412128.BlockSize)
- if _, err := rand.Read(key128[1:]); err != nil {
- panic(err)
- }
+ rand.Read(key128[1:])
sym(
gost3412128.BlockSize,
gost3412128.NewCipher(key128[:]),
func BenchmarkMGM64(b *testing.B) {
key := make([]byte, gost341264.KeySize)
- if _, err := io.ReadFull(rand.Reader, key); err != nil {
- panic(err)
- }
+ rand.Read(key)
nonce := make([]byte, gost341264.BlockSize)
- if _, err := io.ReadFull(rand.Reader, nonce); err != nil {
- panic(err)
- }
+ rand.Read(nonce)
nonce[0] &= 0x7F
pt := make([]byte, 1280+3)
- if _, err := io.ReadFull(rand.Reader, pt); err != nil {
- panic(err)
- }
+ rand.Read(pt)
c := gost341264.NewCipher(key)
aead, err := NewMGM(c, gost341264.BlockSize)
if err != nil {
func BenchmarkMGM128(b *testing.B) {
key := make([]byte, gost3412128.KeySize)
- if _, err := io.ReadFull(rand.Reader, key); err != nil {
- panic(err)
- }
+ rand.Read(key)
nonce := make([]byte, gost3412128.BlockSize)
- if _, err := io.ReadFull(rand.Reader, nonce); err != nil {
- panic(err)
- }
+ rand.Read(nonce)
nonce[0] &= 0x7F
pt := make([]byte, 1280+3)
- if _, err := io.ReadFull(rand.Reader, pt); err != nil {
- panic(err)
- }
+ rand.Read(pt)
c := gost3412128.NewCipher(key)
aead, err := NewMGM(c, gost3412128.BlockSize)
if err != nil {
func main() {
data := []byte("data to be signed")
hasher := gost34112012256.New()
- _, err := hasher.Write(data)
+ hasher.Write(data)
dgst := hasher.Sum(nil)
curve := gost3410.CurveIdtc26gost341012256paramSetB()
- prvRaw := make([]byte, 32)
- _, err = io.ReadFull(rand.Reader, prvRaw)
+ prvRaw := make([]byte, curve.PointSize())
+ rand.Read(prvRaw)
prv, err := gost3410.NewPrivateKey(curve, prvRaw)
pub, err := prv.PublicKey()
pubRaw := pub.Raw()