Skip to content

Conversation

@boorad
Copy link
Collaborator

@boorad boorad commented Nov 25, 2025

  • Basic hashing (empty, single byte, strings, buffers)
  • Variable output length (XOF)
  • Keyed mode (MAC with 32-byte key)
  • Key derivation mode (KDF with context string)
  • Streaming API (Blake3 class with update/digest)
  • copy() for rolling hashes
  • reset() to reuse hasher
  • Error handling (invalid key length, empty context, key+context conflict)

@boorad boorad self-assigned this Nov 25, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Nov 25, 2025

🤖 End-to-End Test Results - iOS

Status: ✅ Passed
Platform: iOS
Run: 19677278307

📸 Final Test Screenshot

Maestro Test Results - ios

Screenshot automatically captured from End-to-End tests and will expire in 30 days


This comment is automatically updated on each test run.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 25, 2025

🤖 End-to-End Test Results - Android

Status: ✅ Passed
Platform: Android
Run: 19677278326

📸 Final Test Screenshot

Maestro Test Results - android

Screenshot automatically captured from End-to-End tests and will expire in 30 days


This comment is automatically updated on each test run.

NEON intrinsics are only available on ARM architectures. The previous
configuration unconditionally compiled blake3_neon.c for all ABIs,
causing build failures on x86 and x86_64 emulators.

This fix conditionally includes blake3_neon.c only when building for
arm64-v8a. Other architectures (x86, x86_64, armeabi-v7a) will use the
portable C implementation via blake3_dispatch.c fallback.
- Disable x86 SIMD (SSE2/SSE41/AVX2/AVX512) for x86/x86_64 builds since
  we don't compile the assembly files; falls back to portable C
- Only compile blake3_neon.c for arm64-v8a (NEON auto-detected)
- Upgrade NDK from 27.1 to 28.2 to fix CMake LTO hanging on macOS
- Add 16KB page size support for Android 15+ (Play Store requirement)
- Add jniLibs pickFirsts for duplicate native library conflicts
- Add testIDs to Show Passed/Failed checkboxes in TestDetailsScreen
- Create gather-failed-tests.yml sub-flow that navigates into a suite,
  hides passed tests, and takes a screenshot of failures
- Update main test flow to call sub-flow for each suite with failures
- Assert all passed only after gathering all failure screenshots
- Replace vendored BLAKE3 C files with git submodule pointing to
  official BLAKE3-team/BLAKE3 repo at tag 1.7.0
- Update CMakeLists.txt and podspec paths to use deps/blake3/c/
- Add postinstall script in root package.json to auto-init submodule
- Exclude non-C parts of BLAKE3 repo (Rust, benchmarks, tools) in podspec

This reduces repo size while keeping the same functionality.
Use 'true:' instead of 'condition:' under 'when:' block.
Maestro requires 'true:' for JavaScript expression conditions.
- Add testID='total-fail-count' to the total failures display
- Simplify Maestro flow to use total-fail-count for assertion
- Assert that totalFailures === '0' instead of tracking state in loop
These ciphers require special ctrl functions and are not intended
for use outside TLS. They also depend on hardware (AES-NI) and may
not be available on CI emulators.

See: https://www.openssl.org/docs/man3.0/man3/EVP_aes_128_cbc_hmac_sha1.html
@boorad
Copy link
Collaborator Author

boorad commented Nov 25, 2025

Screenshot_1764090896 simulator_screenshot_E4B3F608-3D06-4807-A5EE-ACC2839AB435

@boorad boorad merged commit dcd8b94 into main Nov 25, 2025
7 checks passed
@boorad boorad deleted the feat/blake3 branch November 25, 2025 17:16
@boorad boorad mentioned this pull request Nov 25, 2025
2 tasks
@mrousavy
Copy link
Member

this E2E testing suite in actions is super cool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants