web3dart/crypto library
Exports low-level cryptographic operations needed to sign Ethereum transactions.
Classes
- MsgSignature
- Signatures used to sign Ethereum transactions and messages.
Properties
- keccakDigest → KeccakDigest
-
final
Functions
-
bytesToHex(
List< int> bytes, {bool include0x = false, int? forcePadLength, bool padToEvenLength = false}) → String -
Converts the
bytes
given as a list of integers into a hexadecimal representation. -
bytesToInt(
List< int> bytes) → BigInt - Converts the bytes from that list (big endian) to a (potentially signed) BigInt.
-
bytesToUnsignedInt(
Uint8List bytes) → BigInt -
compressPublicKey(
Uint8List compressedPubKey) → Uint8List - Given a byte array computes its compressed version and returns it as a byte array, including the leading 02 or 03
-
decompressPublicKey(
Uint8List compressedPubKey) → Uint8List - Given a byte array computes its expanded version and returns it as a byte array, including the leading 04
-
ecRecover(
Uint8List messageHash, MsgSignature signatureData) → Uint8List - Given an arbitrary message hash and an Ethereum message signature encoded in bytes, returns the public key that was used to sign it. https://github.com/web3j/web3j/blob/c0b7b9c2769a466215d416696021aa75127c2ff1/crypto/src/main/java/org/web3j/crypto/Sign.java#L241
-
generateNewPrivateKey(
Random random) → BigInt - Generates a new private key using the random instance provided. Please make sure you're using a cryptographically secure generator.
-
hexToBytes(
String hexStr) → Uint8List - Converts the hexadecimal string, which can be prefixed with 0x, to a byte sequence.
-
hexToDartInt(
String hex) → int - Converts the hexadecimal input and creates an int.
-
hexToInt(
String hex) → BigInt - Takes the hexadecimal input and creates a BigInt.
-
intToBytes(
BigInt number) → Uint8List -
isValidSignature(
Uint8List messageHash, MsgSignature signatureData, Uint8List publicKey) → bool - Given an arbitrary message hash, an Ethereum message signature encoded in bytes and a public key encoded in bytes, confirms whether that public key was used to sign the message or not.
-
keccak256(
Uint8List input) → Uint8List -
keccakAscii(
String input) → Uint8List -
keccakUtf8(
String input) → Uint8List -
privateKeyBytesToPublic(
Uint8List privateKey) → Uint8List - Generates a public key for the given private key using the ecdsa curve which Ethereum uses.
-
privateKeyToPublic(
BigInt privateKey) → Uint8List - Generates a public key for the given private key using the ecdsa curve which Ethereum uses.
-
publicKeyToAddress(
Uint8List publicKey) → Uint8List - Constructs the Ethereum address associated with the given public key by taking the lower 160 bits of the key's sha3 hash.
-
sign(
Uint8List messageHash, Uint8List privateKey) → MsgSignature -
Signs the hashed data in
messageHash
using the given private key. -
strip0x(
String hex) → String - If present, removes the 0x from the start of a hex-string.
-
unsignedIntToBytes(
BigInt number) → Uint8List