Next: Download, Previous: Frequently asked questions, Up: GoGOST
subtle.XORBytes
crypto/hkdf and crypto/pbkdf2
Minor trivial changes.
Minor trivial changes.
Changed namespace because of domain expiration:
go.cypherpunks.ru/gogost/v5 -> go.cypherpunks.su/gogost/v6
Optimised Streebog implementation with precalculated tables.
Version raise
28147-89 and CryptoPro key wrapping support (RFC 4357).
gost3410.NewPublicKeyLE, gost3410.PublicKey.RawLE,
gost3410.NewPublicKeyBE, gost3410.PublicKey.RawBE,
gost3410.NewPrivateKeyLE, gost3410.PrivateKey.RawLE,
gost3410.NewPrivateKeyBE, gost3410.PrivateKey.RawBE,
functions appeared, to simplify dealing with different endianness
keys serialisation
gost3410.PublicKeyReverseDigest and
gost3410.PublicKeyReverseDigestAndSignature wrappers appeared
Updated dependencies.
You can check if public key is on curve with
gost3410.Curve.Contains method now.
mgm.MGM.Open returns mgm.InvalidTag for failed authentication
Updated and cleaned up go.sum.
gost3410 is more thread-safe.
Faster Kuznechik and ~3x faster Kuznechik-MGM.
Go 1.17 requires gost3410.PublicKey to have Equal method.
gost3410.CurveIdtc26gost341012512paramSetTest curve
CurveIdGostR34102001CryptoProAParamSet -> CurveIdtc26gost341012256paramSetB CurveIdGostR34102001CryptoProBParamSet -> CurveIdtc26gost341012256paramSetC CurveIdGostR34102001CryptoProCParamSet -> CurveIdtc26gost341012256paramSetD CurveIdGostR34102001CryptoProXchAParamSet -> CurveIdGostR34102001CryptoProAParamSet CurveIdGostR34102001CryptoProXchBParamSet -> CurveIdGostR34102001CryptoProCParamSet CurveIdtc26gost34102012256paramSetA -> CurveIdtc26gost341012256paramSetA CurveIdtc26gost34102012256paramSetB -> CurveIdtc26gost341012256paramSetB CurveIdtc26gost34102012256paramSetC -> CurveIdtc26gost341012256paramSetC CurveIdtc26gost34102012256paramSetD -> CurveIdtc26gost341012256paramSetD CurveIdtc26gost34102012512paramSetTest -> CurveIdtc26gost341012512paramSetTest CurveIdtc26gost34102012512paramSetA -> CurveIdtc26gost341012512paramSetA CurveIdtc26gost34102012512paramSetB -> CurveIdtc26gost341012512paramSetB CurveIdtc26gost34102012512paramSetC -> CurveIdtc26gost341012512paramSetC
gost3410.PrivateKey is in gost3410.Curve.Q now. That
makes them more friendly with some implementations.
Even slightly less allocations in Streebog.
~16x speedup of Streebog, ~15x speedup of Kuznechik.
MGM does not panic when short (tagless) message is verified.
Tarball uses vendoring, instead of GOPATH overriding.
As minimal Go version is 1.12 for a long time, it supports modules.
gost3410/KEK* functions do not alter ukm argument.
It is safe to reuse now.
Backward incompatible remove of excess misleading gost3410.Mode
from all related functions. Point/key sizes are determined by
looking at curve’s parameters size.
Fixed nasty bug with Edwards curves using in 34.10-VKO functions: curve’s cofactor has not been used.
gost3410.PrivateKeyReverseDigest reversed digests and
PrivateKeyReverseDigestAndSignature with also reversed signatures
signers appeared for convenience.
Panic on all possible hash Write errors.
More 34.10-2012 test vectors.
Dummy release. More nicer tarballs.
PRF_IPSEC_PRFPLUS_GOSTR3411_2012_{256,512} implementation
prf+ function (taken from IKEv2
(RFC 7296))
ESPTREE/IKETREE implementation
CurveIdtc26gost34102012256paramSetB,
CurveIdtc26gost34102012256paramSetC,
CurveIdtc26gost34102012256paramSetD curve aliases
go get-able and uses
go.cypherpunks.ru namespace:
go get go.cypherpunks.ru/gogost,
go get go.cypherpunks.ru/gogost/cmd/streebog{256,512}
gost28147.CFB*crypter
TLSTREE, used in TLS 1.[23], implementation
gost3410.KEK2012* can be used with any curves, not only 512-bit ones
gost3410.PrivateKey satisfies crypto.Signer interface
gost34112012* hashes satisfy encoding.Binary(Un)Marshaler
KDF_GOSTR3411_2012_256 KDF
gost3410.PrivateKey’s length validation
gost3410.NewCurve takes
big.Int, instead of encoded integers
Gost2814789_TestParamSet -> SboxIdGost2814789TestParamSet Gost28147_CryptoProParamSetA -> SboxIdGost2814789CryptoProAParamSet Gost28147_CryptoProParamSetB -> SboxIdGost2814789CryptoProBParamSet Gost28147_CryptoProParamSetC -> SboxIdGost2814789CryptoProCParamSet Gost28147_CryptoProParamSetD -> SboxIdGost2814789CryptoProDParamSet GostR3411_94_TestParamSet -> SboxIdGostR341194TestParamSet Gost28147_tc26_ParamZ -> SboxIdtc26gost28147paramZ GostR3411_94_CryptoProParamSet -> SboxIdGostR341194CryptoProParamSet EACParamSet -> SboxEACParamSet CurveParamsGostR34102001cc -> CurveGostR34102001ParamSetcc CurveParamsGostR34102001Test -> CurveIdGostR34102001TestParamSet CurveParamsGostR34102001CryptoProA -> CurveIdGostR34102001CryptoProAParamSet CurveParamsGostR34102001CryptoProB -> CurveIdGostR34102001CryptoProBParamSet CurveParamsGostR34102001CryptoProC -> CurveIdGostR34102001CryptoProCParamSet CurveParamsGostR34102001CryptoProXchA -> CurveIdGostR34102001CryptoProXchAParamSet CurveParamsGostR34102001CryptoProXchB -> CurveIdGostR34102001CryptoProXchBParamSet CurveParamsGostR34102012TC26ParamSetA -> CurveIdtc26gost341012512paramSetA CurveParamsGostR34102012TC26ParamSetB -> CurveIdtc26gost341012512paramSetB
gost34112012256 and gost34112012512
gogost-streebog is split to streebog256 and
streebog512 correspondingly by analogy with sha* utilities
gost3410.DigestSizeX is renamed to
gost3410.ModeX because it is not related to digest size,
but parameters and key sizes
big.Int UKM value. Use NewUKM
to unmarshal raw binary UKM
Next: Download, Previous: Frequently asked questions, Up: GoGOST