X-Git-Url: http://www.git.cypherpunks.ru/?p=gogost.git;a=blobdiff_plain;f=README;h=05dd22283f50d7a740a0fbb0b5f20dadd7c9c663;hp=5d32fa068fd5a1b5f2d4e5d5e0b6c52bb562aa90;hb=HEAD;hpb=d2b0d4b0f57745d7d09b9cea552235fe31e5db36 diff --git a/README b/README index 5d32fa0..2085a18 100644 --- a/README +++ b/README @@ -14,11 +14,12 @@ GOST is GOvernment STandard of Russian Federation (and Soviet Union). vice versa * VKO GOST R 34.10-2001 key agreement function (RFC 4357) * VKO GOST R 34.10-2012 key agreement function (RFC 7836) +* 28147-89 and CryptoPro key wrapping (RFC 4357) * KDF_GOSTR3411_2012_256 KDF function (RFC 7836) * GOST R 34.12-2015 128-bit block cipher Кузнечик (Kuznechik) (RFC 7801) * GOST R 34.12-2015 64-bit block cipher Магма (Magma) * GOST R 34.13-2015 padding methods -* MGM AEAD mode for 64 and 128 bit ciphers +* MGM AEAD mode for 64 and 128 bit ciphers (RFC 9058) * TLSTREE keyscheduling function * ESPTREE/IKETREE (IKE* is the same as ESP*) keyscheduling function * PRF_IPSEC_PRFPLUS_GOSTR3411_2012_{256,512} and generic prf+ functions @@ -37,22 +38,22 @@ Example 34.10-2012-256 keypair generation, signing and verifying: import ( "crypto/rand" "io" - "go.cypherpunks.ru/gogost/v4/gost3410" - "go.cypherpunks.ru/gogost/v4/gost34112012256" + "go.cypherpunks.ru/gogost/v5/gost3410" + "go.cypherpunks.ru/gogost/v5/gost34112012256" ) func main() { data := []byte("data to be signed") hasher := gost34112012256.New() _, err := hasher.Write(data) dgst := hasher.Sum(nil) - curve := gost3410.CurveIdtc26gost34102012256paramSetB() - prvRaw := make([]byte, int(gost3410.Mode2001)) + curve := gost3410.CurveIdtc26gost341012256paramSetB() + prvRaw := make([]byte, int(32)) _, err = io.ReadFull(rand.Reader, prvRaw) - prv, err := gost3410.NewPrivateKey(curve, gost3410.Mode2001, prvRaw) + prv, err := gost3410.NewPrivateKey(curve, prvRaw) pub, err := prv.PublicKey() pubRaw := pub.Raw() sign, err := prv.Sign(rand.Reader, dgst, nil) - pub, err = gost3410.NewPublicKey(curve, gost3410.Mode2001, pubRaw) + pub, err = gost3410.NewPublicKey(curve, pubRaw) isValid, err := pub.VerifyDigest(dgst, sign) if !isValid { panic("signature is invalid") } } @@ -63,8 +64,8 @@ GoGOST'es home page is: http://www.gogost.cypherpunks.ru/ You can read about GOST algorithms more: http://www.gost.cypherpunks.ru/ Please send questions, bug reports and patches to -https://lists.cypherpunks.ru/mailman/listinfo/gost -mailing list. Announcements also go to this mailing list. +http://lists.cypherpunks.ru/gost.html mailing list. +Announcements also go to this mailing list. Development Git source code repository currently is located here: -http://git.cypherpunks.ru/cgit.cgi/gogost.git/ +http://www.git.cypherpunks.ru/?p=gogost.git;a=summary