neo-go/pkg/crypto
Roman Khimov f0fbe9f6c9 crypto: drop home-grown elliptic crypto, use crypto/elliptic
As NEO uses P256 we can use standard crypto/elliptic library for almost
everything, the only exception being decompression of the Y coordinate. For
some reason the standard library only supports uncompressed format in its
Marshal()/Unmarshal() functions. elliptic.P256() is known to have
constant-time implementation, so it fixes #245 (and the decompression using
big.Int operates on public key, so nobody really cares about that part being
constant-time).

New decompress function is inspired by
https://stackoverflow.com/questions/46283760, even though the previous one
really did the same thing just in a little less obvious way.
2019-09-05 12:33:27 +03:00
..
hash hash: simplify ripemd160 usage 2019-08-26 13:32:19 +03:00
keys crypto: drop home-grown elliptic crypto, use crypto/elliptic 2019-09-05 12:33:27 +03:00
address.go Persist blockchain with leveldb on disk (#48) 2018-03-17 12:53:21 +01:00
address_test.go _pkg.dev: drop address pkg, move test into crypto 2019-08-27 17:09:24 +03:00
aes256.go Base wallet implementation (#35) 2018-03-02 16:24:09 +01:00
base58.go crypto: improve error messages for base58 2019-09-03 18:16:48 +03:00
base58_test.go base58: add testing from _pkg.dev 2019-08-26 13:32:19 +03:00
merkle_tree.go *: add/fix godoc comments to satisfy golint 2019-09-03 17:57:51 +03:00
merkle_tree_test.go uint256: add Reverse(), change String() to be BE 2019-08-26 13:32:19 +03:00