Commit Graph

  • 613d0ad50f USAGE: v0.2.0 coordinates + the establish-seed snippet (keyEstablishmentFull no longer takes pearKey16) main fenleon 2026-10-17 17:58:41 +02:00
  • 425d534ece USAGE: v0.2.0 coordinates + the establish-seed snippet (keyEstablishmentFull no longer takes pearKey16) v0.2.0 fenleon 2026-10-17 17:58:41 +02:00
  • 930d50d3c2 Update README.md FENN 2026-10-17 17:58:18 +02:00
  • 86ee3ce648 README: the validation-stamp gap is closed — register chain verified with our own stamp fenleon 2026-10-17 17:56:09 +02:00
  • bd6a9882a5 registration: key the EstablishKeyResponse under establishKey(SBOX(draw)) fenleon 2026-10-17 17:48:31 +02:00
  • 3aad77f6f6 test: embed the nac-oracle vectors as base64 source (PearOracleVectors) — no binary blobs in the repo; PearAesOracleTest unchanged behavior fenleon 2026-10-17 10:39:28 +02:00
  • 53615904fb spec: rev 54 — the .so-proven client crypto battery, the decoded wire order, the stamp on x-mme-nas-qualify, and the 5080/200 flap; PearAesOracleTest as decrypt regression armor fenleon 2026-10-17 00:26:04 +02:00
  • 445c2fd642 spec: rev 52-53 — the honest 6004 read narrows to the mint's inputs; the genuine-stamp A/B answers status 0 and the prefpane 400 was a stamp verdict fenleon 2026-10-16 23:09:49 +02:00
  • 28e0432f09 registration: the register body is capture-exact (rev 51) — four services, id-get-handles, one prekey mint fenleon 2026-10-16 21:43:31 +02:00
  • d0dd6d057e spec: rev 49-50 — the empty-services register is the client's DEREGISTER (reference register = status 0); the reference survey closes with OpenBubbles as the only oracle fenleon 2026-10-16 21:33:00 +02:00
  • 03f0ce12df registration: the register body reaches capture parity (rev 48) — NGM identity client-data + gzip; machine register added fenleon 2026-10-16 19:11:07 +02:00
  • 2b96445cb4 registration: the NAC mint is exonerated on live data (rev 47) fenleon 2026-10-16 17:44:36 +02:00
  • 70aef73b19 Update README.md FENN 2026-10-16 08:35:27 +02:00
  • 3d121a0368 Update README.md FENN 2026-10-16 08:32:46 +02:00
  • 490e92e9cf README: the full registration chain completed live (2026-10-16); the self-minted stamp is the last gap fenleon 2026-10-16 08:26:12 +02:00
  • 3f11eab49f registration: postdata presents the login run's anisette set (one set session-wide) fenleon 2026-10-16 00:07:32 +02:00
  • 2ff994751c registration: the prefpane presents the LOGIN RUN's anisette set (session-wide reuse, wire-pinned) fenleon 2026-10-15 18:57:00 +02:00
  • 9da53e31f8 registration: GSA cpd/headers wire-pinned against the trapped binary (2026-10-14) fenleon 2026-10-14 20:23:41 +02:00
  • f47fc49eaf registration: GSA login-shape parity per the vendored source (2026-10-14 diff) fenleon 2026-10-14 17:40:40 +02:00
  • 478a473629 registration: prefpane parity + the GSA postdata liveness event + the live sig16 vector fenleon 2026-10-14 16:57:07 +02:00
  • e5352e77ce registration: step-2 optional extraHeaders (A/B instrumentation — anisette-on-mint falsified live 2026-10-13) fenleon 2026-10-13 16:35:03 +02:00
  • 7980dd1fe2 courier: stop() closes the socket to unblock the blocking reader (soTimeout=0) — stop used to hang until the keepalive watchdog (~180s, observed live), stalling everything after a one-shot connect fenleon 2026-10-13 14:40:24 +02:00
  • 6a991b0165 spec rev 45: prefpane/login = V1 AuthRequest protocol (RE'd from vendored rustpush); 400 ICLOUD_INVALID_DEVICE_TOKEN persists across body shapes → account/device-state gate fenleon 2026-10-13 13:23:49 +02:00
  • 3379a52d8c gsa: prefpane V1 body keeps Basic auth (live 2026-10-13: V1 body without Basic → 401 UNAUTHORIZED; the closure's basic_auth needs no string constants) fenleon 2026-10-13 13:11:20 +02:00
  • 863a2d82cb gsa: prefpane/login sends the vendored V1 AuthRequest body (apple-id/client-id/delegates/password, no Basic header) — RE'd from the vendored open_absinthe .so (V2 symbols absent); v2 endpoint keeps the recorded V2 shape fenleon 2026-10-13 13:00:37 +02:00
  • 2537a80629 gsa: delegateEndpoint seam + PREFPANE_ENDPOINT (the reference client's delegate sign-in endpoint); fresh-PET note fenleon 2026-10-13 12:22:07 +02:00
  • e6d8d45bef fairplay: out-of-repo identity override — the committed identity is a placeholder (live verdict SIGNATURE_VERIFICATION_FAILED); real pair accepted live; spec rev 44 fenleon 2026-10-13 11:42:08 +02:00
  • e44d501ca5 albert: restore the accepted request shapes (ActivationInfoXML as plist data + rustpush UA); AppleTrust.platformTrustManager() for the public-CA endpoints; spec rev 43 fenleon 2026-10-13 10:41:36 +02:00
  • c95b91d5d7 registration: derive the pear-AES IV from the blob slot (blobFieldMap^-1) — closes the 5080; spec rev 42 fenleon 2026-10-13 10:09:11 +02:00
  • c62c882652 OTP wiring: two=client_secret (mid was fed — the real -29004 root cause); bare-dict plist fragments (GSA spd); step-2 error detail; spec rev 40-41 fenleon 2026-10-13 09:30:49 +02:00
  • 59070c37f0 OTP: live-corrected inputs (two=client_secret, Mac flavor byte 1) + h-block fix; tail divergence recorded (rev 39) fenleon 2026-10-13 07:25:38 +02:00
  • bcb016b2a8 JitPack publishing (maven-publish on all modules), docs/USAGE.md, CI + weekly drift probe v0.1.0 fenleon 2026-10-12 23:36:32 +02:00
  • 2fac87ca42 README: cut to the point fenleon 2026-10-12 23:22:21 +02:00
  • 40ec9bab3e README: the 5003 EM gate is closed (rev 38), live provisioning runs fenleon 2026-10-12 22:51:44 +02:00
  • f6ee0ae323 AppleTrust: expose the embedded root pool for rustls-backed transports fenleon 2026-10-12 22:48:28 +02:00
  • 543178fc2a Spec rev 38: the step-2 5003/EM gate is a TLS-stack fingerprint (rustls accepted, OpenSSL rejected) fenleon 2026-10-12 21:33:57 +02:00
  • c10551fc97 Live-provisioning wire fixes (rev 37): capitalized Header/Request keys, lookup needs angle-format X-Mme-Client-Info fenleon 2026-10-12 18:36:29 +02:00
  • 5aba5f522d C56-c closed: HardwareConfiguration.toBin + ValidationCertChain (rev 36) fenleon 2026-10-12 16:59:18 +02:00
  • f4be1f638f C56-a closed: NacRequestBlob (rev 35) — the 338-B session-info-request blob fully derived fenleon 2026-10-12 10:48:13 +02:00
  • ca057376ee C56-a request-blob field map ~85% pinned: OAEP(pearKey16+hmacKey20) + HMAC-SHA1 tail verified (rev 34) fenleon 2026-10-10 08:06:02 +02:00
  • 6eca991a7a Sign-model fresh-input divergence closed: P region is input-dependent (rev 33) fenleon 2026-10-09 08:42:30 +02:00
  • 075857e79e C56 input mappings pinned from three live runs (rev 32); sign-model fresh-input divergence recorded fenleon 2026-10-08 21:19:13 +02:00
  • cfd6cd4e71 NAC sign ported to Kotlin (NacSign): full mint in-repo; spec rev 31; NacMint facade fenleon 2026-10-08 19:35:39 +02:00
  • ebabd37aef NAC sign closed: full validation stamp computes pure-code from inputs; README updated fenleon 2026-10-08 18:18:18 +02:00
  • 6e50bf6602 NAC mint (C5): pear_aes + blob/framing decoded byte-exact; Kotlin PearAes/NacMerge/NacValidation; spec rev 30 fenleon 2026-10-08 07:14:50 +02:00
  • 77b9819de7 ClearADI cpim tail closed: X = SHA-256(encout || sig(trailing[0:16]) || const) — wire fully pinned fenleon 2026-10-07 18:13:23 +02:00
  • 21eefe3846 ClearADI: live-capture corrections — ProvisionedData mapping, PTM layout, cpim outer message fenleon 2026-10-07 17:03:53 +02:00
  • 1b38580ad7 README: ADI anisette chain reimplemented natively; table provenance documented fenleon 2026-10-07 14:43:24 +02:00
  • 0c9b41e7c2 ClearADI: wire-level anisette provider — OTP derivation, provisioning, framing fenleon 2026-10-07 14:29:39 +02:00
  • 3ced0f3803 README: registration is live-validated (spec rev 26) fenleon 2026-10-05 01:00:14 +02:00
  • 970155a9f0 Simplify README fenleon 2026-10-05 00:57:26 +02:00
  • 7f960dbdfc Live-session port (2026-10-02→04): the packed courier codec (C19 closed — ALPN apns-pack-v1:4096:4096 negotiated live, packed chain anchors at the Apple Server Authentication CA intermediate, no TLS client cert on that path), the <Protocol>-span extraction for wrapped activation responses, the accepted Albert shapes (DeviceCertRequest as <data>(base64(PEM)), three-cert FairPlayCertChain), kebab-case sign-in response + client-id parsing, fresh anisette per SRP run and per 2FA call (the 434/-22421 fixes), the GSA postdata liveness client (fired AFTER the delegate sign-in, ptkn + hb-token binding), and the validation-stamp replay guard (one mint = one device record — the 409's true root cause); nullable next-hbi was already end-to-end fenleon 2026-10-05 00:22:45 +02:00
  • 2efd4d0f19 Add sponsor links fenleon 2026-10-04 10:28:30 +02:00
  • 322e24c6d2 Registration: PET fallback to the spd token map (the live-confirmed post-2FA delivery channel — the header was absent on that path); sign-in failures carry the response error shape fenleon 2026-09-29 13:25:15 +02:00
  • 9e00f95e3b Registration: live-verified GSA facts — au inside Status, caller-side trusted-device push (no re-trigger on validate), fresh-anisette requirement on the delegate sign-in; fixtures updated (spec rev 25) fenleon 2026-09-29 13:20:23 +02:00
  • e2075458b4 Spec rev 25: first live GSA login — au in Status, PET via post-2FA spd token map, trusted-device push semantics, one-time anisette, 409 ICLOUD_UNSUPPORTED_DEVICE refusal shape fenleon 2026-09-29 13:14:35 +02:00
  • d876a9af87 Update README.md FENN 2026-09-29 08:28:13 +02:00
  • edd80a7e37 Update README.md FENN 2026-09-29 08:26:59 +02:00
  • 1c2bb0957d Update README.md FENN 2026-09-29 08:25:23 +02:00
  • d6a3b515f9 Spec: restructure revision history into its own section; scrub workspace-internal paths fenleon 2026-09-29 08:15:09 +02:00
  • 008788c408 Update README.md FENN 2026-09-29 08:07:34 +02:00
  • 48d50b1b36 Add Ko-fi + GitHub Sponsors funding (FUNDING.yml + README header art) fenleon 2026-09-29 07:56:05 +02:00
  • bc00fa2c3d Open Madrid: clean-room Kotlin implementation of Apple's madrid (iMessage) protocol fenleon 2026-09-29 00:04:00 +02:00