Skip to content

Latest commit

 

History

History
78 lines (48 loc) · 2.73 KB

File metadata and controls

78 lines (48 loc) · 2.73 KB

Cryptography

A collection of contracts and libraries that implement various signature validation schemes and cryptographic primitives. These utilities enable secure authentication, multisignature operations, and advanced cryptographic operations in smart contracts.

  • {ECDSA}, {MessageHashUtils}: Libraries for interacting with ECDSA signatures.

  • {P256}: Library for verifying and recovering public keys from secp256r1 signatures.

  • {RSA}: Library with RSA PKCS#1 v1.5 signature verification utilities.

  • {SignatureChecker}: A library helper to support regular ECDSA from EOAs as well as ERC-1271 signatures for smart contracts.

  • {Hashes}: Commonly used hash functions.

  • {MerkleProof}: Functions for verifying Merkle Tree proofs.

  • {TrieProof}: Library for verifying Ethereum Merkle-Patricia trie inclusion proofs.

  • {EIP712}: Contract with functions to allow processing signed typed structure data according to EIP-712.

  • {ERC7739Utils}: Utilities library that implements a defensive rehashing mechanism to prevent replayability of smart contract signatures based on ERC-7739.

  • {WebAuthn}: Library for verifying WebAuthn Authentication Assertions.

  • {AbstractSigner}: Abstract contract for internal signature validation in smart contracts.

  • {ERC7739}: An abstract contract to validate signatures following the rehashing scheme from {ERC7739Utils}.

  • {SignerECDSA}, {SignerP256}, {SignerRSA}: Implementations of an {AbstractSigner} with specific signature validation algorithms.

  • {SignerEIP7702}: Implementation of {AbstractSigner} that validates signatures using the contract’s own address as the signer, useful for delegated accounts following EIP-7702.

  • {SignerWebAuthn}: Implementation of {SignerP256} that supports WebAuthn

  • {SignerERC7913}, {MultiSignerERC7913}, {MultiSignerERC7913Weighted}: Implementations of {AbstractSigner} that validate signatures based on ERC-7913. Including a simple and weighted multisignature scheme.

  • {ERC7913P256Verifier}, {ERC7913RSAVerifier}, {ERC7913WebAuthnVerifier}: Ready to use ERC-7913 signature verifiers for P256, RSA keys and WebAuthn.

Utils

{{ECDSA}}

{{MessageHashUtils}}

{{P256}}

{{RSA}}

{{SignatureChecker}}

{{Hashes}}

{{MerkleProof}}

{{TrieProof}}

{{EIP712}}

{{ERC7739Utils}}

{{WebAuthn}}

Abstract Signers

{{AbstractSigner}}

{{ERC7739}}

{{SignerECDSA}}

{{SignerP256}}

{{SignerRSA}}

{{SignerEIP7702}}

{{SignerWebAuthn}}

{{SignerERC7913}}

{{MultiSignerERC7913}}

{{MultiSignerERC7913Weighted}}

Verifiers

{{ERC7913P256Verifier}}

{{ERC7913RSAVerifier}}

{{ERC7913WebAuthnVerifier}}