From c115480b3b04eacf6e7d52847df043bdef505be1 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Tue, 7 Nov 2023 11:16:26 -0800 Subject: [PATCH] feat: node signature verification for queries (#784) * feat: adds node signatures to query response types * moves fetchNodeKeys to canisterStatus * updating e2e tests * replaces tweetnacl with @noble/curves * more ed25519 tests and compatibility with previous stored JSON * moves public key and DER utils into agent * simplifies @dfinity/identity with agent exports * subnetStatus mapping node id to public key * lookup_path now returns tree by default * fix: canister ranges checked for root subnet fixes FOLLOW-1301 * fix: sets maxAge for delegation certificates to Infinity, bypassing check resolves FOLLOW-1302 --- canister_ids.json | 3 + docs/generated/changelog.html | 21 ++ e2e/node/basic/mitm.test.ts | 11 + e2e/node/utils/agent.ts | 2 + package-lock.json | 192 +++++++------- package.json | 2 +- packages/agent/package.json | 1 + packages/agent/src/actor.test.ts | 11 +- packages/agent/src/agent/api.ts | 17 +- ...ificates.test.ts => goldenCertificates.ts} | 0 packages/agent/src/agent/http/calls.test.json | 10 + packages/agent/src/agent/http/http.test.ts | 43 ++-- packages/agent/src/agent/http/index.ts | 226 ++++++++++++---- packages/agent/src/auth.ts | 4 +- .../agent/src/canisterStatus/index.test.ts | 242 +++++++++++++++++- packages/agent/src/canisterStatus/index.ts | 96 ++++++- packages/agent/src/certificate.test.ts | 231 +---------------- packages/agent/src/certificate.ts | 168 ++++-------- .../src/identity => agent/src}/der.test.ts | 3 +- .../src/identity => agent/src}/der.ts | 10 +- packages/agent/src/fetch_candid.test.ts | 6 +- packages/agent/src/index.ts | 6 +- packages/agent/src/public_key.ts | 60 +++++ packages/agent/src/request_id.test.ts | 6 +- packages/agent/src/request_id.ts | 19 +- packages/agent/src/utils/buffer.ts | 16 ++ packages/agent/src/utils/random.test.ts | 2 +- packages/agent/tsconfig.json | 3 +- packages/auth-client/src/index.test.ts | 1 + packages/identity-secp256k1/package.json | 3 +- packages/identity-secp256k1/src/secp256k1.ts | 6 +- packages/identity/package.json | 4 +- packages/identity/src/buffer.ts | 15 -- .../identity/src/identity/delegation.test.ts | 30 ++- packages/identity/src/identity/delegation.ts | 14 +- packages/identity/src/identity/ecdsa.ts | 2 +- .../identity/src/identity/ed25519.test.ts | 45 +++- packages/identity/src/identity/ed25519.ts | 108 ++++++-- packages/identity/src/identity/webauthn.ts | 23 +- packages/identity/src/index.ts | 2 +- packages/identity/tsconfig.json | 3 +- packages/principal/src/index.ts | 2 + 42 files changed, 1039 insertions(+), 630 deletions(-) rename packages/agent/src/agent/http/__certificates__/{goldenCertificates.test.ts => goldenCertificates.ts} (100%) create mode 100644 packages/agent/src/agent/http/calls.test.json rename packages/{identity/src/identity => agent/src}/der.test.ts (97%) rename packages/{identity/src/identity => agent/src}/der.ts (94%) create mode 100644 packages/agent/src/public_key.ts delete mode 100644 packages/identity/src/buffer.ts diff --git a/canister_ids.json b/canister_ids.json index 7030ae77f..435e7ea6f 100644 --- a/canister_ids.json +++ b/canister_ids.json @@ -1,4 +1,7 @@ { + "counter": { + "ic": "tnnnb-2yaaa-aaaab-qaiiq-cai" + }, "docs": { "ic": "erxue-5aaaa-aaaab-qaagq-cai" } diff --git a/docs/generated/changelog.html b/docs/generated/changelog.html index 26d0ddbc0..4191ba4c5 100644 --- a/docs/generated/changelog.html +++ b/docs/generated/changelog.html @@ -12,6 +12,27 @@

Agent-JS Changelog

Version x.x.x