Releases: zkemail/zk-email-verify
v6.4.2
Mainly change around adding tests, making body hash checking optional when verifying DKIM signature, adding new circuit templates, and bumping versions.
What's Changed
- Feat: Added Poseidon Modular Tests by @shreyas-londhe in #234
- chore: Update new logo and links by @wryonik in #241
- fix: update
CONTRIBUTING.mdreference by @emmanuel-ferdman in #238 - feat: Add SHA precompute for QP-encoded selectors by @devin-ai-integration in #240
- feat: added PackBits template and tests by @shreyas-londhe in #247
- feat: added CleanEmailAddress template by @shreyas-londhe in #246
- chore: bump @zk-email/circuits version to v6.3.3 by @shreyas-londhe in #248
- Add skipBodyHash check flag in verifyDkimSignature function by @sukhman-sukh in #251
New Contributors
- @wryonik made their first contribution in #241
- @emmanuel-ferdman made their first contribution in #238
- @devin-ai-integration made their first contribution in #240
- @sukhman-sukh made their first contribution in #251
Full Changelog: v6.3.2...v6.4.2
6.3.2
What's Changed
- Clean Sha256Partial template by removing redundant code by @SoraSuegami (#232)
- Make UserOverrideableDKIMRegistry upgradeable with UUPS proxy pattern by @SoraSuegami (#233)
- Circuit Poseidon Tests by @shreyas-londhe (bb697f8)
Full Changelog: v6.2.0...v6.3.2
6.2.0
What's Changed
- Revert index range check on SelectRegexReveal by @saleel in #218
- Add r < p check to FpMul by @SoraSuegami in #226
- Add an option to resolve DNS from ZKEmail Archive when HTTP DNS fails by @saleel in #227
- DNS fixes by @saleel in #229
Full Changelog: v6.1.6...v6.2.0
v6.1.6
What's Changed
- Fixed a bug in retrieving the DKIM public key by @jayden-sudo in #210
- Feat/fix select regex reveal by @SoraSuegami in #214
- Feat: Added Header Masking by @shreyas-londhe in #216
- Feat: Reveal Substring Template by @shreyas-londhe in #207
New Contributors
- @jayden-sudo made their first contribution in #210
Full Changelog: v.6.1.5...v6.1.6
v.6.1.5: Add body parsing circuits, Rust Verifier, and UserOverrideableDKIMRegistry.sol
What's Changed
- Add UserOverrideableDKIMRegistry.sol. by @wshino in #199
- add SplitBytesToWords circuit to bytes.circom by @remicolin in #201
- Feat: Circuit for Removing the Quoted Printable Encoding Newlines in Email Body by @shreyas-londhe in #202
- Feat/rust verifier by @zkfriendly in #204
- chore: add cosmos-friendly rust-verifier package to lock file by @zkfriendly in #206
- fix: remove-soft-line-break at the beginning by @shreyas-londhe in #208
- Feat: Added a Body masking Template by @shreyas-londhe in #203
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
What's Changed
- Add poseidonLarge JS version by @saleel in #196
- Circuit fixes by @saleel in #197
- [BUG FIX] Fix SelectRegexReveal by @SoraSuegami in #200
Full Changelog: v6.0.3...v6.1.1
https://www.npmjs.com/package/@zk-email/circuits/v/6.1.1
https://www.npmjs.com/package/@zk-email/contracts/v/6.1.1
https://www.npmjs.com/package/@zk-email/helpers/v/6.1.1
v6.1.0
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
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.circomandsha.circommoved to/libRSAVerify65537renamed toRSAVerifier65537basemessageinput inRSAVerifier65537changed tomessage.- In SHA circuits,
in_paddedandin_len_padded_byteswere changed topaddedInandpaddedInLength.
Repository Structure and Circuit Relocations:
- Circuits like
fp.circom,base64.circom,bigint.circom, andbigint-func.circom(renamed from bigint_func.circom) have been relocated to thelibfolder. - General utilities related to array and packing has been move to
/utilsin appropriate files. Refer to #185 to see all changes.
@zk-email/helpers
Refactoring and Improvements (PR#189 by @saleel)
binaryFormatfile renamed tobinary-format.tsshaHashrenamed tosha-utils.tszkp.tsrenamed tochunked-zkey.tsinput-helpers.tsrenamed toinput-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
.emlfiles. -
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
ignoreBodyHashCheckis true. - Adjustable Body Parameters: Made email body parameters optional based on the
ignoreBodyHashChecksetting.
@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.
v3.3.1
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_URLas a parameter by incorporating it into the.envfile. 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.mdto 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
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
distfolder 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
- Welcome to @Dhoni77, @Metachaser24, @foolo, and @isidroamv.
Full Changelog: View Changes from v3.2.0 to v3.3.0