command -v sha256 >/dev/null && SHA256="sha256" || SHA256="sha256sum --binary"
PERL=${PERL:-perl}
-TARBALL=gogost-5.11.0.tar.zst
+TARBALL=gogost-5.13.0.tar.zst
[ -r $TARBALL ] || {
$DL $TARBALL.tmp http://www.gogost.cypherpunks.ru/$TARBALL
mv $TARBALL.tmp $TARBALL
}
-[ "`$SHA256 < $TARBALL | $PERL -lane 'print $F[0]'`" = "6c4abc20ebead10b99bff5601358a63301d4b0bea159e84e532cc3799537d8f4" ]
+[ "`$SHA256 < $TARBALL | $PERL -lane 'print $F[0]'`" = "ee0deeb665aee4246c21c8c9f814860502468e37216f43d9acee8c309cc4843e" ]
tar xf $TARBALL
mkdir -p src/crypto/go.cypherpunks.ru/gogost
mv ${TARBALL%.tar.zst} src/crypto/go.cypherpunks.ru/gogost/v5
crypto_version=$(sed -n 's#^.*golang.org/x/crypto \(.*\)$#\1#p' < src/go.mod)
cd src/crypto/go.cypherpunks.ru/gogost/v5
-rm -r cmd
+rm -r cmd bench
rm gost341194/pbkdf2_test.go
for len in 256 512 ; do
fn=gost34112012${len}/hash.go
if !ok {
return fmt.Errorf("expected GOST public key, got %T", pubkey)
}
- reverseBytes(sig)
- reverseBytes(signed)
- ok, err := pubKey.VerifyDigest(signed, sig)
- reverseBytes(sig)
- reverseBytes(signed)
+ ok, err := gost3410.PublicKeyReverseDigestAndSignature{Pub: pubKey}.VerifyDigest(signed, sig)
if err != nil {
return err
}
const GOSTAEADNonceSize = 8
-func reverseBytes(d []byte) {
- for i, j := 0, len(d)-1; i < j; i, j = i+1, j-1 {
- d[i], d[j] = d[j], d[i]
- }
-}
-
type gostAEAD struct {
nonceMask []byte
tlsTree *gost34112012256.TLSTree
cryptobyte_asn1 "golang.org/x/crypto/cryptobyte/asn1"
)
-func reverseBytes(d []byte) {
- for i, j := 0, len(d)-1; i < j; i, j = i+1, j-1 {
- d[i], d[j] = d[j], d[i]
- }
-}
-
// pkixPublicKey reflects a PKIX public key structure. See SubjectPublicKeyInfo
// in RFC 3280.
type pkixPublicKey struct {
if pubKeyAlgo != GOST {
return signaturePublicKeyAlgoMismatchError(pubKeyAlgo, pub)
}
- reverseBytes(signed)
- ok, err := pub.VerifyDigest(signed, signature)
- reverseBytes(signed)
+ ok, err := gost3410.PublicKeyReverseDigest{Pub: pub}.VerifyDigest(signed, signature)
if err != nil {
return err
}