Skip to content

Releases: zkemail/zk-email-verify

v.6.1.5: Add body parsing circuits, Rust Verifier, and UserOverrideableDKIMRegistry.sol

20 Aug 09:14
f7bf840
Compare
Choose a tag to compare

What's Changed

Note that dist/ in @zk-email/helpers was incorrectly updated in 6.1.4, 6.1.5 fixes it.

Full Changelog: v6.1.1...v.6.1.4

Don't install these packages via the attached binaries, use npm instead.

v6.1.1

28 May 16:48
Compare
Choose a tag to compare

v6.1.0

28 May 05:42
Compare
Choose a tag to compare

Updates

  • circuit: fix log2Ceil
  • circuit: update base64 doc
  • circuit: fix array size warnings
  • circuit: remove unconstrained assert() calls
  • circuit: add range check for emailBodyLength and emailHeaderLength
  • circuit: add input assumptions to docs
  • circuit: add docs for FpMul
  • circuit: remove unused templates
  • circuit: add missing pragma in functions.circom
  • circuit: add range check to ItemAtIndex
  • circuit: fix PoseidonLarge when k is not 17
  • circuit: fix off by one err in AssertZeroPadding
  • helpers: add poseidonLarge JS version

Links

https://www.npmjs.com/package/@zk-email/circuits/v/6.1.0
https://www.npmjs.com/package/@zk-email/contracts/v/6.1.0
https://www.npmjs.com/package/@zk-email/helpers/v/6.1.0

v6.0.2

19 Apr 05:49
Compare
Choose a tag to compare

We are excited to announce the release of zk-email-verify v6..0.2 for our circuits, helpers and contracts packages. These updates improve our codebase, enhancing integration capabilities and usability. Please note, these are breaking changes that will affect all three packages, requiring updates for continued functionality.

What's Changed


@zk-email/circuits

Major Refactors: The EmailVerifier circuit has undergone a significant refactor with the intent of improving clarity and developer experience. Variable names have been made more descriptive to better reflect their functions.
(PR#185 PR#192) @saleel

EmailVerifier.circom - Changes in variable names:

  • in_padded -> emailHeader
  • in_len_padded_bytes -> emailHeaderLength
  • body_hash_idx -> bodyHashIndex
  • precomputed_sha -> precomputedSHA
  • in_body_padded -> emailBody
  • in_body_len_padded_bytes -> emailBodyLength
  • pubkey_hash -> pubkeyHash

RSA and SHA Circuit Updates:

  • rsa.circom and sha.circom moved to /lib
  • RSAVerify65537 renamed to RSAVerifier65537
  • basemessage input in RSAVerifier65537 changed to message.
  • In SHA circuits, in_padded and in_len_padded_bytes were changed to paddedIn and paddedInLength.

Repository Structure and Circuit Relocations:

  • Circuits like fp.circom, base64.circom, bigint.circom, and bigint-func.circom (renamed from bigint_func.circom) have been relocated to the lib folder.
  • General utilities related to array and packing has been move to /utils in appropriate files. Refer to #185 to see all changes.

@zk-email/helpers

Refactoring and Improvements (PR#189 by @saleel)

  • binaryFormat file renamed to binary-format.ts
  • shaHash renamed to sha-utils.ts
  • zkp.ts renamed to chunked-zkey.ts
  • input-helpers.ts renamed to input-generators.ts

DKIM Edge Case Handling: Fixed multiple DKIM edge cases .

  • Input Generation from Raw EML: Added functionality to generate verification inputs directly from raw .eml files.

  • Extended DKIM and Input Helper Tests: Introduced new tests focused on DKIM sanitization processes and the functionality of input helpers, ensuring that both new and existing features perform as expected.

  • Standardization of Codebase: Renaming of files and functions to standardize naming conventions

Improved DKIM Testing (PR#174 by @saleel):

  • Standardized DKIM Retrieval: Using a standard npm package to fetch DKIM records. It's good for reliable DKIM processing across different environments.
  • ARC Signature Handling: Handling emails with ARC signatures to maintain verification accuracy when DKIM checks fail.
  • Email Header Restoration: Implemented functionality to revert alterations made to email headers by forwarders, such as restoring 'X-Message-ID' back to 'Message-ID', preserving the authenticity of the original email.

Partial SHA Skipping for Enhanced Performance (PR#186 by @saleel):

  • Conditional SHA Computation: Enabled the skipping of partial SHA calculations when the ignoreBodyHashCheck is true.
  • Adjustable Body Parameters: Made email body parameters optional based on the ignoreBodyHashCheck setting.

@zk-email/contracts

Oz5 Compatibility Update (PR#190 by @Divide-By-0):

  • DKIM Registry Testing: Updated contracts for AA Compatibility. Added a new unit test for the DKIM registry and modified the DKIMRegistry interface to require an initializer for the owner upon setup.

Full Changelog

v3.3.1

29 Mar 06:51
29b0182
Compare
Choose a tag to compare

zk-email-verify v3.3.1 Updates

In this release, we've introduced several key improvements and additions:

Key Updates

  • Environmental Configuration Enhancement: @alvinlee001 added the capability to pass LOAD_URL as a parameter by incorporating it into the .env file. PR #156

  • Helpers Package Cleanup: @saleel made significant updates to the helpers package to improve efficiency and CI/CD workflows. Key changes include:

    • Streamlining of the helpers package.
    • Addition of ARC email handling.
    • Switching testing to GitHub Actions, phasing out Circle CI.
    • Introduction of specific CI for the helpers package to ensure quality.
  • Assert Padding Bug Fix: @0xSachinK patched a bug in our email verifier circuit by introducing assert valid padding. PR #168

  • PR Templates: @Metachaser24 created a pull_request_template.md to streamline the submission and review processes. PR #169

  • Utilities and Documentation Update: @Metachaser24 added utility circom templates to the utils/ folder in the helpers package, along with documentation updates. PR #183

Full Changelog: v3.3.0...v3.3.1

v3.3.0

18 Jan 15:41
ccdb8a2
Compare
Choose a tag to compare

zk-email-verify v3.3.0 Updates

Key Updates

  • DKIM Registry Enhancement: @saleel added functionality to set multiple keys for a domain in a single transaction. PR #130
  • Scripts Package for DKIM Registry: @saleel updated the scripts package for the DKIM Registry. Updated the DKIM script to use Poseidon hash for public keys. PR #135
  • Twitter Contract Update: Updated by @saleel to accommodate x.com and migrated the network from Goerli to Sepolia. PR #142
  • Documentation Improvements: Comprehensive documentation updates by @Metachaser24. PR #139 & PR #145
  • Automatic DKIM Registry Update: @Divide-By-0 automated the DKIM registry updates with selectors and domains, adding tools for scanning common selectors. PR #132
  • Library Accessibility Enhancement: @isidroamv improved helper file imports by adding a dist folder for easier access. PR #153

Note: Change the way you import helper functions for streamlined code.

  • Old Method:
    import { toCircomBigIntBytes } from "@zk-email/helpers/src/binaryFormat";
  • New Method:
    import { toCircomBigIntBytes } from "@zk-email/helpers";

New Contributors

Full Changelog: View Changes from v3.2.0 to v3.3.0

Add StringUtils to /contracts on NPM, change hash to Poseidon for DKIM hashing, include zk regex bug

26 Oct 17:12
Compare
Choose a tag to compare

What's Changed

2.0.0 -> 3.1.3

3.1.3 -> 3.2.0

  • add string utils to have packsize improvements from zkp2p by @Divide-By-0 in #125

Note that the pre-generated regex contracts have not been updated to fix the shift malleability attack on zk regex. You MUST update your circuits to use ShiftAndPackMaskedStr instead of ShiftAndPack in order to be secure.

As usual, to get this release, use NPM:

yarn add @zk-email/circuits@latest
yarn add @zk-email/contracts@latest

Full Changelog: 2.0.1...v3.1.4

v2.0.1

02 Oct 16:50
Compare
Choose a tag to compare

Incorporate all of the fixes from our first audit.

What's Changed

New Contributors

Full Changelog: https://github.com/zkemail/zk-email-verify/commits/2.0.1