(registered 2026-10-15, last updated 2026-10-15) acelp: ACE Location Profile URI Scheme Provisional URI scheme registration request Revised for IANA review: 14 October 2026. Scheme name: acelp Status: Provisional Applications/protocols that use this scheme name: A persistent identifier for a governed location profile under the ACE profile contract defined here. The profile is a descriptive record about a specified geographic place or area, including a country, state, province, territory, municipality, locality, site or facility. It is distinct from the place, its occupants, owners, administrators and governing bodies. It is not a coordinate, live geolocation observation, postal address, cadastral title, jurisdiction decision or grant of authority. The identifier alone asserts no official recognition, sovereignty, ownership, boundaries, physical presence or applicable law. Experimental local parser and read-only verifier. Independent interoperability is intended; production allocation, global resolution and broad adoption are not claimed. Contact: Frank Bryan Seqentra Sydney, Australia ip&seqentra.com Change controller: Seqentra IP Holdings Pty Ltd Contact: Frank Bryan Sydney, Australia ip&seqentra.com References: [SEQENTRA-ACELP] Seqentra IP Holdings Pty Ltd, "acelp: ACE Location Profile URI Scheme", version 0.5-draft, edition ace-profile-family-2026-10-14-r5, 14 October 2026. The complete revised definition is reproduced in Annex A of this request. https://seqentra.com/specifications/uri/acelp/0.5-draft-r5 [SEQENTRA-ALP-HISTORY] Original alp: ACE Location Profile URI Scheme, edition ace-profile-family-2026-10-08-r3, 8 October 2026 (historical reference). https://seqentra.com/specifications/uri/alp/0.5-draft-r3 [RFC7595] Thaler, D., Ed., Hansen, T., and T. Hardie, "Guidelines and Registration Procedures for URI Schemes", BCP 35, RFC 7595, June 2015. https://www.rfc-editor.org/rfc/rfc7595.html [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005. https://www.rfc-editor.org/rfc/rfc3986.html [RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008. https://www.rfc-editor.org/rfc/rfc5234.html [ACE-LOCAL-EVIDENCE] ACE Profile Local Evidence Format, 0.5-draft-r3, 8 October 2026 (experimental local implementation contract). https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3 [DASH7-ALP] Sub-IoT, DASH7 Alliance Protocol introduction, Application Layer Protocol section, retrieved 8 October 2026 (prior protocol-name use only). https://github.com/Sub-IoT/Sub-IoT-Stack/blob/master/docs/_docs/D7AP-intro.md [LIFECYCLE-ALP] Autonomous Lifecycle Protocol project, README, retrieved 8 October 2026 (prior protocol-name use only). https://github.com/Autonomous-Lifecycle-Protocol-ALP/Autonomous-Lifecycle-Protocol-ALP [RFC5870] Mayrhofer, A., and C. Spanring, A Uniform Resource Identifier for Geographic Locations (geo URI), RFC 5870, June 2010. https://www.rfc-editor.org/rfc/rfc5870.html Additional information: CRI scheme number Does this request require a CRI number in the 0–999 range? No. No specific number or special allocation is requested. Ordinary IANA assignment is sufficient. The existing ace: allocation 26 is unchanged. Additional information: supplied definition and publication Public reference URL: https://seqentra.com/specifications/uri/acelp/0.5-draft-r5. Current document: https://seqentra.com/specifications/uri/acelp. Current registration template: https://seqentra.com/specifications/uri/acelp/registration.txt. Annex A contains the revised definition for acelp. The 8 October source edition remains available at https://seqentra.com/specifications/uri/alp/0.5-draft-r3. Publication does not establish IANA registration or production activation. Additional information: naming and scope review The proposed name acelp expands to ACE Location Profile and selects the narrow governed location profile contract defined here. The ACE?P pattern is a naming convention, not a reserved prefix, registration of a scheme family or automatic right to future names. It claims no universal or standard status. Five characters alone do not establish compliance with RFC 7595 section 3.8; descriptiveness, distinguishability and rights to use the name remain for IANA assessment. Prior-name review retained from the 8 October edition: ALP is already used for the Application Layer Protocol in the DASH7/Sub-IoT stack and for the Autonomous Lifecycle Protocol software project. These are existing protocol associations and remain material to RFC 7595 section 3.8; absence of an exact IANA scheme entry does not resolve that concern. This location-profile proposal defines neither of those protocols and claims no compatibility, affiliation, succession or exclusive rights to the abbreviation. HTTPS identifiers with indirection, a URN namespace, an appropriate existing identifier scheme or typed profiles within one shared scheme can express comparable resources. Type selection before dereferencing is the proposed benefit, enabling a consumer to select a specific profile validator. Role separation, transport independence and a consistent naming pattern alone do not prove that five global names are necessary. That benefit and the cost of separate schemes remain for review; broad community support and international SDO sponsorship are not asserted. The registered geo: scheme defined by RFC 5870 already identifies a spatial location using coordinates. ALP instead proposes identification of a governed descriptive profile record, with location assertions kept separate from the opaque identifier. A new scheme is not justified merely to encode coordinates; a consumer needing coordinate identification should use an appropriate existing scheme. The additional value of a separate profile scheme remains for review. IANA’s correspondence under request #1460930 closed the earlier me/ai naming request and invited other names with the RFC 7595 template and an explicit CRI answer. It is not approval of this family. The intermediate usr/agt, gup/gca and aup/aca principal drafts were never submitted; no IANA decision on those drafts is claimed. The more descriptive name acelp was proposed in IANA correspondence under request #1461251. The naming revision does not alter the profile scope or assert completed IANA approval. Additional information: scope of this revision This template replaces the proposed name alp with acelp in IANA request #1461251. The profile meaning remains ACE Location Profile. Status, Applications/protocols, Contact, Change controller and the CRI answer are unchanged. References now identify the revised published specification and retain the original edition for historical context. Implementation evidence in the dated 0.5-draft-r3 companion and its signed test vectors concerns the earlier three-letter scheme names. This publication changes the proposed scheme literals and review documents only; it does not claim that runtime support for the revised names has been deployed or independently verified. The historical signed examples are not relabelled and do not validate a renamed URI. Administrative note on historical evidence Annex A is the revised scheme definition. Annexes B and C preserve the original 8 October 2026 local implementation contract, schemas and signed vectors under the previous scheme names. Their dates, status wording, identifiers and signatures describe that historical source release; they are not renamed-scheme validation results. Annex A — Complete scheme definition acelp: ACE Location Profile URI Scheme Version: 0.5-draft Edition: ace-profile-family-2026-10-14-r5 Revised: 14 October 2026. For IANA review; registration pending. Canonical form: acelp: Permanent edition: https://seqentra.com/specifications/uri/acelp/0.5-draft-r5 Permanent machine edition: https://seqentra.com/specifications/uri/acelp/0.5-draft-r5.json Edition integrity: https://seqentra.com/specifications/uri/acelp/0.5-draft-r5/integrity.json Purpose and status A persistent identifier for a governed location profile under the ACE profile contract defined here. The profile is a descriptive record about a specified geographic place or area, including a country, state, province, territory, municipality, locality, site or facility. It is distinct from the place, its occupants, owners, administrators and governing bodies. It is not a coordinate, live geolocation observation, postal address, cadastral title, jurisdiction decision or grant of authority. The identifier alone asserts no official recognition, sovereignty, ownership, boundaries, physical presence or applicable law. The profile is the identified resource. Its subject, controller, issuer, representations and endpoints are separate concepts. A subject binding is a claim requiring independent validation; this specification does not infer subject identity or equivalence from matching tokens, display names or profile content. This experimental proposal is intended for exchange between independent implementations beyond one organisation. The implementation is a local parser and read-only evidence verifier. Production allocation, network resolution, broad adoption and completed independent interoperability are not claimed. No Seqentra account or mandatory Seqentra service is required. ACE names this profile contract. It does not amend or extend the registered ace: URI scheme and does not inherit that registration. aceup, aceep, acelp, aceap and acedp are five separate proposed schemes; each requires its own IANA assessment. The original requests were submitted to IANA. Under request #1461251, IANA suggested the more descriptive names aceup, aceep, acelp, aceap and acedp. These documents incorporate the requested naming revision for continued review. Publication does not establish registration or approval. Publication and implementation scope Implementation evidence in the dated 0.5-draft-r3 companion and its signed test vectors concerns the earlier three-letter scheme names. This publication changes the proposed scheme literals and review documents only; it does not claim that runtime support for the revised names has been deployed or independently verified. The historical signed examples are not relabelled and do not validate a renamed URI. Syntax The syntax is an absolute RFC 3986 URI with a rootless path used as a single opaque identifier. It has no URI authority and no hierarchical semantics. A token has 1–128 ASCII characters, begins with an ASCII letter or digit, and then permits only letters, digits, period, underscore, tilde and hyphen. Class prefixes and slashes are not supported. Percent escapes, user information, ports, queries, fragments, whitespace and non-ASCII characters are refused, not repaired. The scheme is ASCII case-insensitive; canonical output lowercases only the scheme. Identifier bytes are case-sensitive and are never Unicode-normalized, decoded, lowercased or interpreted as a host. No additional IRI syntax is defined. The quoted ABNF literal is case-insensitive under RFC 5234; ALPHA and DIGIT are its core rules. acelp-uri = "acelp:" opaque-id opaque-id = ( ALPHA / DIGIT ) *127( ALPHA / DIGIT / "." / "_" / "~" / "-" ) Meaning and equality An identifier denotes one governed location profile record. Equality compares the complete canonical URI within this contract. Matching tokens under different schemes do not identify the same profile or subject. A profile is distinct from a security principal; possessing or parsing its URI grants no authentication, consent, capability, authority or access. A profile identifier can remain stable across properly admitted revisions of that same profile. An endpoint, display name, key or representation change does not by itself establish a new profile. A change of subject or profile kind must not silently repurpose an existing identifier; issue a new identifier and review any relationship separately. The opaque token must not be interpreted as an ISO code, coordinate, address or administrative hierarchy. For example, acelp:au is only a syntactically valid opaque token; it does not mean Australia, and acelp:AU-NSW does not inherently mean New South Wales. Country codes, subdivision codes, names, geometry, location type and parent-place relationships are optional descriptive claims in separately specified application metadata. A consumer must independently validate the code system and version, provenance, reference system, effective time and any asserted relationships before using them. Names or matching codes do not make two profiles identical. A location can have multiple independently governed profiles and overlapping, changing or disputed descriptions. The profile identifies no government and adjudicates no territory, jurisdiction, citizenship or residency. Spatial containment does not establish legal authority or applicable law. The base contract does not define a location lookup, boundary service or live tracking operation. Resolution and evidence This draft defines identification and local read-only verification, not a network protocol. Evidence is accepted only for the exact canonical URI, internal profile ace-profile:profile:location, supported version 0.5-draft and an independently configured key scoped to that profile. The JSON representation must contain profile_kind equal to location; that member is signed. The previous principal_kind field is not a substitute. The internal ace-profile label is not a registered URI scheme. The verifier checks a closed evidence envelope, Ed25519 signature, validity interval, explicit revocation status, unambiguous record selection and the signed profile kind before returning an immutable representation. Missing, stale, revoked, conflicting, wrong-kind, unsupported or unverifiable evidence is refused. A valid signature authenticates evidence under configured trust, not the subject, issuer entitlement or profile controller. The representation is an inert JSON object. Apart from profile_kind, extension members have no authority semantics in this base contract and are not followed, executed or interpreted as verified subject bindings. Application profiles must specify and independently validate any subject, country-code, ownership, control or delegation claims they consume. The URI alone must not cause a network request, endpoint invocation, model execution, device control, mutation or disclosure. The local candidate performs no network discovery even when network use is requested. No default resolver or automatic provider fallback is defined; production access and disclosure policies remain separate work. The companion ACE Profile Local Evidence Format, edition 0.5-draft-r3, documents the exact record and configured-key fields, signing bytes, signature encoding, validity boundaries, resource limits and synthetic verification vectors used by this experimental local implementation. It is available at https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3. This is an implementation contract for local API objects, not a network interchange protocol, JSON canonicalization standard or production trust framework. Applications must not invent a wire protocol from these examples; nested member order and runtime date parsing are explicit interoperability limitations. Allocation and lifecycle The token is opaque and must not encode credentials, contact details or account/provider routing. The bounded grammar is not an allocator. Any production allocator must establish uniqueness across participating issuers, sufficient entropy, collision detection, issuer accountability, non-reassignment and independently reviewed admission. Cross-issuer uniqueness and a global allocation service are not implemented. Use context-specific profiles where needed to limit correlation. Recovery, delegation, key rotation, revocation, succession and cross-context linking require independently admitted evidence. Refuse namespace collisions instead of guessing a provider. Revocation or deletion never frees an identifier for a different profile or subject. Earlier aup: version 0.4 identified a user principal, not a profile. No production identifiers were issued by this project under that experimental draft. A 0.5 allocator MUST NOT reuse any earlier aup token for a profile; historical identifiers retain their original denotation. Fresh allocation and collision checks against retained history are required. Version numbers and new internal profile IDs alone do not make reuse safe. No allocator or automatic conversion is provided here. Production issuance must remain disabled until an allocator can enforce historical non-reuse and independently admitted subject bindings. The local conflict check is not a global allocation guarantee. Security and privacy Opaque identifiers can remain correlatable and are not secrets or bearer credentials. Minimize collection, logging and disclosure. The local test verifier distinguishes unknown resources for debugging and must not be exposed as a public private-identity lookup service; a production protocol needs an explicit privacy-preserving refusal policy. Do not embed tokens, passwords, keys or sensitive personal data. Do not use an untrusted endpoint to bypass network/origin restrictions. Signature verification, HTTPS, a registry listing or registration number alone cannot establish control or access. Optional unsigned read receipts are not authority attestations. Mutations and execution are not implemented. Precise coordinates, addresses, occupancy and location histories can expose people or sensitive facilities. Do not place such information in the opaque identifier; minimise it in representations and apply independent consent, access, retention and disclosure controls. Signed location metadata does not prove that a person, agent or device is physically present, or entitled to act in the described place. Parsing or verifying this profile must not initiate tracking or contact a location service. Interoperability and migration The 14 October 2026 revision changes the proposed names aup, aep, alp, aap and adp to aceup, aceep, acelp, aceap and acedp respectively. Their user, enterprise, location, agent and device profile meanings are unchanged. HTTP redirects between specification pages are document navigation only; they do not equate identifiers. Existing identifiers, stored keys, signatures, receipts and bindings retain their original text and meaning. No automatic conversion or cross-scheme equivalence is defined. The following earlier migration history remains applicable to its original editions. Version 0.5-draft is a semantic revision, not a spelling-only rename. The aup:/aca: 0.4 principal drafts are preserved at /specifications/uri/aup/0.4-draft and /specifications/uri/aca/0.4-draft with matching .json editions. The 0.5-draft-r3 aup page describes User Profile; aca is superseded by the aap Agent Profile document. Document succession does not equate the old principal with a new profile. Earlier me:/ai:, usr:/agt: version 0.2, gup:/gca: version 0.3 and aup:/aca: version 0.4 records are not converted, aliased or relabelled. Preserve stored identifiers, primary keys, signatures, receipts, cached bindings and trust anchors. A profile about an old principal requires a fresh profile identifier, explicit separately validated subject binding and newly signed 0.5 evidence; there is no conversion service. The local verifier refuses unsupported versions and wrong internal profile IDs. Even where URI text starts with aup, previous signed principal evidence cannot satisfy the profile contract. Legacy me:self/... and me_uri fields, au:me/... country classes, and existing ace://ai/... or ace://agent/... resources retain their historical meanings. Existing au:/us:/nz:/ca:/gb: country-context experiments remain historical local contracts, not aliases of alp. No country-specific schemes are being applied for in this round. The registered ace: syntax, CRI 26 and discovery contract remain unchanged. No new /.well-known suffix, general URI handler or public resolver activation is requested. Edition 0.5-draft-r3 replaces the then-current ACP Country Profile proposal with ALP Location Profile. The 7 October ACP definitions, identifiers and signed evidence retain their historical country-profile meaning. acp: is not an alias of alp:, and no prefix, profile-kind or signature conversion is permitted. The 0.5-draft-r3 local candidate refuses acp:; historical evidence must be interpreted under its original contract. The other four profile kinds retain their existing meaning and signing format. Naming, alternatives and limitations The proposed name acelp expands to ACE Location Profile and selects the narrow governed location profile contract defined here. The ACE?P pattern is a naming convention, not a reserved prefix, registration of a scheme family or automatic right to future names. It claims no universal or standard status. Five characters alone do not establish compliance with RFC 7595 section 3.8; descriptiveness, distinguishability and rights to use the name remain for IANA assessment. Prior-name review retained from the 8 October edition: ALP is already used for the Application Layer Protocol in the DASH7/Sub-IoT stack and for the Autonomous Lifecycle Protocol software project. These are existing protocol associations and remain material to RFC 7595 section 3.8; absence of an exact IANA scheme entry does not resolve that concern. This location-profile proposal defines neither of those protocols and claims no compatibility, affiliation, succession or exclusive rights to the abbreviation. HTTPS identifiers with indirection, a URN namespace, an appropriate existing identifier scheme or typed profiles within one shared scheme can express comparable resources. Type selection before dereferencing is the proposed benefit, enabling a consumer to select a specific profile validator. Role separation, transport independence and a consistent naming pattern alone do not prove that five global names are necessary. That benefit and the cost of separate schemes remain for review; broad community support and international SDO sponsorship are not asserted. The registered geo: scheme defined by RFC 5870 already identifies a spatial location using coordinates. ALP instead proposes identification of a governed descriptive profile record, with location assertions kept separate from the opaque identifier. A new scheme is not justified merely to encode coordinates; a consumer needing coordinate identification should use an appropriate existing scheme. The additional value of a separate profile scheme remains for review. IANA’s correspondence under request #1460930 closed the earlier me/ai naming request and invited other names with the RFC 7595 template and an explicit CRI answer. It is not approval of this family. The intermediate usr/agt, gup/gca and aup/aca principal drafts were never submitted; no IANA decision on those drafts is claimed. The more descriptive name acelp was proposed in IANA correspondence under request #1461251. The naming revision does not alter the profile scope or assert completed IANA approval. CRI requirement A CRI scheme number in the 0–999 range is not required for this experimental profile. No specific number or special allocation is requested; ordinary IANA assignment is sufficient. The implementation defines no constrained CRI wire codec and provides no measured requirement for a scarce low-range number. Any later special request needs a concrete technical case and separate expert review. URI registration and numerical allocation are distinct; existing ace: CRI 26 is unchanged. Valid syntax examples (synthetic and unissued) acelp:7c93d24a91ef4c088f12db812c992191 acelp:A1_b-2.~ Invalid syntax examples "acelp:" "acelp://example" "acelp:agent/example" "acelp:model/example" "acelp:a/b" "acelp:%41" "acelp:x?y" "acelp:x#z" "acelp:é" "acelp:.." "acelp:a\n" Contact: Frank Bryan, ip&seqentra.com, Sydney, Australia. Change controller: Seqentra IP Holdings Pty Ltd; contact Frank Bryan, ip&seqentra.com. References URI Generic Syntax — RFC 3986: https://www.rfc-editor.org/rfc/rfc3986.html URI Scheme Registration — RFC 7595: https://www.rfc-editor.org/rfc/rfc7595.html ABNF — RFC 5234: https://www.rfc-editor.org/rfc/rfc5234.html IANA URI Scheme Registry: https://www.iana.org/assignments/uri-schemes/ [ACE-LOCAL-EVIDENCE] ACE Profile Local Evidence Format, 0.5-draft-r3, 8 October 2026 (experimental local implementation contract): https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3 [DASH7-ALP] Sub-IoT, DASH7 Alliance Protocol introduction, Application Layer Protocol section, retrieved 8 October 2026 (prior protocol-name use only): https://github.com/Sub-IoT/Sub-IoT-Stack/blob/master/docs/_docs/D7AP-intro.md [LIFECYCLE-ALP] Autonomous Lifecycle Protocol project, README, retrieved 8 October 2026 (prior protocol-name use only): https://github.com/Autonomous-Lifecycle-Protocol-ALP/Autonomous-Lifecycle-Protocol-ALP [RFC5870] Mayrhofer, A., and C. Spanring, A Uniform Resource Identifier for Geographic Locations (geo URI), RFC 5870, June 2010: https://www.rfc-editor.org/rfc/rfc5870.html Original alp: ACE Location Profile edition, 8 October 2026 (historical reference): https://seqentra.com/specifications/uri/alp/0.5-draft-r3 Annex B — Experimental local evidence implementation contract ACE Profile Local Evidence Format Version: 0.5-draft Edition: 0.5-draft-r3 Permanent reference: https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3 Scope and compatibility This companion documents the experimental LocalProfileResolver evidence contract used by the current five ACE profile URI schemes at version 0.5-draft. Edition 0.5-draft-r3 selects ALP Location Profile in place of the previous ACP Country Profile. ALP has a distinct URI scheme, signed location kind and profile-specific key scope; acp: is not accepted by the current candidate and is never converted to alp:. The record structure, signature bytes and meanings of the other four profile kinds remain unchanged. It does not create a production resolver, allocation service, network protocol or trust in a profile subject. Signed records retain specification_version 0.5-draft. The verifier accepts already-constructed inert ECMAScript data values and independently configured local keys. It is not a JSON text parser. JSON source text, UTF-8 transport decoding and duplicate-member handling are separate ingestion concerns. No interoperable network exchange format is claimed by this local contract. A future network format must define and test those boundaries explicitly rather than treating a schema as a complete parser or trust policy. Closed evidence record A record is an object with exactly these nine own enumerable data members: canonical_uri, profile_id, specification_version, representation, issued_at, expires_at, key_id, revoked and signature. No members are optional and no additional envelope members are allowed. All except representation and revoked are nonempty strings. revoked is a Boolean. The representation is an inert JSON object with an own profile_kind member equal to the scheme kind. Additional representation members are permitted as inert signed data; they convey no authority semantics in this base contract. The exact bindings are aup / ace-profile:profile:user / user; aep / ace-profile:profile:enterprise / enterprise; alp / ace-profile:profile:location / location; aap / ace-profile:profile:agent / agent; and adp / ace-profile:profile:device / device. canonical_uri must equal the requested URI after lowercasing its scheme only. A stored uppercase scheme does not match that canonical URI. specification_version must equal 0.5-draft. The internal profile label is a configuration label, not a registered URI scheme. Independent local key configuration A key entry is an object with exactly six own enumerable data members: key_id, profile_id, public_key_pem, valid_from, valid_until and revoked. The first five are nonempty strings; revoked is a Boolean. Exactly one key entry must match both the record key_id and the selected internal profile_id. A duplicate key entry is a verification failure even if its contents match. The key is supplied by trusted local configuration, not derived from the URI or admitted merely because it accompanies a record. public_key_pem is parsed by the implementation using Node.js createPublicKey; the resulting asymmetric key type must be ed25519. Public SubjectPublicKeyInfo PEM is the portable example form used here. The local implementation also accepts other PEM forms that that API can read into an Ed25519 public key; it does not establish an issuer-entitlement policy or a global trust-distribution format. Signed payload and signature encoding Construct a new object whose members occur in this exact order: canonical_uri, profile_id, specification_version, representation, issued_at, expires_at, key_id, revoked. Each value is copied from the verified inert snapshot. Serialize this object with ECMAScript JSON.stringify with no replacer and no space argument. Encode the resulting string as UTF-8, without a byte order mark or trailing newline. Those bytes are the message signed and verified. The signature member is excluded. No prehash, context string or additional domain prefix is applied. Nested representation objects retain ECMAScript property enumeration semantics: array-index property names appear in ascending numeric order and remaining string property names retain creation order; arrays retain element order. JSON.stringify supplies its standard string escaping and finite Number serialization. This is not JSON Canonicalization Scheme (JCS) and does not sort arbitrary object members. Reordering non-index representation members can invalidate a signature even if an application considers the resulting JSON objects equivalent. A producer in another language must reproduce the exact serialized bytes, including numeric and Unicode string handling. Use Ed25519 (the pure Ed25519 variant, not Ed25519ph or Ed25519ctx). The 64 signature octets are encoded with the URL-safe base64 alphabet, without padding. The result must be exactly 86 characters from A-Z, a-z, 0-9, hyphen and underscore. Decoding and canonical unpadded base64url re-encoding must reproduce the supplied signature exactly; this excludes noncanonical unused pad bits. Whitespace, padding and other characters are refused. const message = JSON.stringify({ canonical_uri: record.canonical_uri, profile_id: record.profile_id, specification_version: record.specification_version, representation: record.representation, issued_at: record.issued_at, expires_at: record.expires_at, key_id: record.key_id, revoked: record.revoked }); // UTF-8(message) is the Ed25519 message. No BOM or trailing newline. // The record and configured key must pass every other check first. Time, revocation and selection issued_at, expires_at, valid_from and valid_until are parsed with ECMAScript Date.parse in the installed runtime. All four parsed values and the resolver clock must be finite. The verifier requires valid_from <= issued_at < expires_at <= valid_until and issued_at <= now < expires_at. Either record.revoked or key.revoked being true refuses resolution. Local configuration is resampled on each read; this provides no remote revocation freshness guarantee. Portable producers should use real UTC timestamps in YYYY-MM-DDTHH:mm:ss.sssZ form, as in the vectors. The 0.5 implementation does not enforce that spelling: Date.parse can accept additional formats or normalize inputs, and nonstandard forms may vary by runtime. Do not describe this existing acceptance rule as strict RFC 3339. Tightening timestamp acceptance requires a separately reviewed compatibility change. Before choosing a record, retained evidence for the same canonical URI with another internal profile_id or specification_version causes PROFILE_HISTORY_CONFLICT. This conservative refusal does not authenticate the conflicting historical claim. Otherwise there must be exactly one record matching the canonical URI and profile_id: none yields UNKNOWN_RESOURCE and more than one yields AMBIGUOUS_RESOURCE, including duplicate copies. The native multi-source coordinator also refuses an incompatible retained profile/version returned by another local or cache source; independently verified same-version representations that disagree produce a conflict. This local history check is not a global non-reuse guarantee. Inert snapshot and resource limits Before cryptographic verification the record and selected key are separately copied and frozen. Allowed values are null, Boolean, string, finite ECMAScript Number, ordinary objects (Object.prototype or null prototype) and dense ordinary arrays. Getters, setters, functions, undefined, BigInt, symbols, custom prototypes, dates, maps, cycles, sparse arrays, symbol properties and non-enumerable data members are refused. No user serialization method is invoked. A property named __proto__ is preserved as an own data property, not applied as a prototype change. For each complete record snapshot and each complete key snapshot independently, the existing implementation permits at most 10,000 visited values and a nesting depth of 64 with the root at depth 0. It charges UTF-8 bytes for every visited string value and own data member name, excluding the built-in array length property, refusing a sum greater than 1,048,576; this is not a bound on serialized JSON bytes. It also rejects an object with more than 10,001 own keys or an array length greater than 10,000, and arrays must have exactly their dense indexed members plus length. Implementations must not claim a different counting rule is byte-for-byte equivalent. Result and assurance boundary Success is RESOLVED_LOCAL and returns the isolated immutable representation with evidence_signature_verified true, subject_authenticated false and authority_granted false. It demonstrates verification under independently configured local key material. It does not establish personhood, agent autonomy, device ownership, enterprise standing, government endorsement, control, consent, access permission, safe execution, issuer entitlement or truth of representation claims. Optional local read receipts are unsigned. Their result_digest is the lowercase hexadecimal SHA-256 digest of the exact signature message bytes; receipt_id is local-read: followed by that digest. Native-coordinator receipts use a separate digest construction and must not be confused with this LocalProfileResolver receipt. Neither receipt is an authority attestation. No URI or representation is followed, fetched or invoked by this verifier. Companion schemas and test vectors The accompanying record and key schemas express object shape, required types, scheme/kind bindings and version values. They do not establish member ordering, finite-runtime numeric fidelity, inert property descriptors, resource limits, date parsing or interval relationships, historical non-reuse, key admission, canonical signature pad bits or cryptographic validity. Those checks remain required by this local contract. The profile representation intentionally allows additional inert members. All vector identifiers and key material are synthetic test fixtures, not issued profile identifiers or trust anchors. Each positive baseline vector includes the exact signature message as text and hexadecimal bytes, its SHA-256 digest, the complete signed record, independent local key entry and test clock. A vector key must never be used for production admission. Companion files https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3/record.schema.json https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3/key.schema.json https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3/test-vectors.json References ECMAScript JSON.stringify: https://tc39.es/ecma262/multipage/structured-data.html#sec-json.stringify ECMAScript Date.parse: https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date.parse EdDSA / Ed25519 — RFC 8032: https://www.rfc-editor.org/rfc/rfc8032.html Base64url — RFC 4648 section 5: https://www.rfc-editor.org/rfc/rfc4648.html Annex C — Structural schemas and synthetic verification vectors record.schema.json { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ACE profile local evidence record, structural checks only", "type": "object", "additionalProperties": false, "required": [ "canonical_uri", "profile_id", "specification_version", "representation", "issued_at", "expires_at", "key_id", "revoked", "signature" ], "properties": { "canonical_uri": { "type": "string", "minLength": 1 }, "profile_id": { "type": "string", "minLength": 1 }, "specification_version": { "const": "0.5-draft" }, "representation": { "type": "object", "required": [ "profile_kind" ], "properties": { "profile_kind": { "enum": [ "user", "enterprise", "location", "agent", "device" ] } } }, "issued_at": { "type": "string", "minLength": 1 }, "expires_at": { "type": "string", "minLength": 1 }, "key_id": { "type": "string", "minLength": 1 }, "revoked": { "type": "boolean" }, "signature": { "type": "string", "pattern": "^[A-Za-z0-9_-]{86}(?![\\s\\S])" } }, "oneOf": [ { "properties": { "canonical_uri": { "pattern": "^aup:[A-Za-z0-9][A-Za-z0-9._~-]{0,127}(?![\\s\\S])" }, "profile_id": { "const": "ace-profile:profile:user" }, "representation": { "properties": { "profile_kind": { "const": "user" } } } } }, { "properties": { "canonical_uri": { "pattern": "^aep:[A-Za-z0-9][A-Za-z0-9._~-]{0,127}(?![\\s\\S])" }, "profile_id": { "const": "ace-profile:profile:enterprise" }, "representation": { "properties": { "profile_kind": { "const": "enterprise" } } } } }, { "properties": { "canonical_uri": { "pattern": "^alp:[A-Za-z0-9][A-Za-z0-9._~-]{0,127}(?![\\s\\S])" }, "profile_id": { "const": "ace-profile:profile:location" }, "representation": { "properties": { "profile_kind": { "const": "location" } } } } }, { "properties": { "canonical_uri": { "pattern": "^aap:[A-Za-z0-9][A-Za-z0-9._~-]{0,127}(?![\\s\\S])" }, "profile_id": { "const": "ace-profile:profile:agent" }, "representation": { "properties": { "profile_kind": { "const": "agent" } } } } }, { "properties": { "canonical_uri": { "pattern": "^adp:[A-Za-z0-9][A-Za-z0-9._~-]{0,127}(?![\\s\\S])" }, "profile_id": { "const": "ace-profile:profile:device" }, "representation": { "properties": { "profile_kind": { "const": "device" } } } } } ], "description": "Structural validation only. This schema does not verify the signature, trust, order, validity interval or runtime inert-data constraints.", "$id": "https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3/record.schema.json" } key.schema.json { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ACE profile independent local key entry, structural checks only", "type": "object", "additionalProperties": false, "required": [ "key_id", "profile_id", "public_key_pem", "valid_from", "valid_until", "revoked" ], "properties": { "key_id": { "type": "string", "minLength": 1 }, "profile_id": { "type": "string", "minLength": 1 }, "public_key_pem": { "type": "string", "minLength": 1 }, "valid_from": { "type": "string", "minLength": 1 }, "valid_until": { "type": "string", "minLength": 1 }, "revoked": { "type": "boolean" } }, "description": "Trusted local configuration. Passing this schema does not admit a key or validate PEM contents, dates or scope.", "$id": "https://seqentra.com/specifications/uri/profile-evidence/0.5-draft-r3/key.schema.json" } test-vectors.json { "format": "ace-profile-local-evidence-test-vectors/1", "synthetic": true, "vectors": [ { "scheme": "aup", "synthetic": true, "warning": "Public test fixture only. Never admit this key for production.", "verification_time": "2026-10-07T12:00:00.000Z", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:user", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aup:SyntheticExample1", "profile_id": "ace-profile:profile:user", "specification_version": "0.5-draft", "representation": { "profile_kind": "user", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "0m7ThaD3aVpN4TJgHENVNWfXfGsXwf3gGmWZLnbRqwu8mws7hubymdS2J5DgnMEXBaLe_9oGRA-NeZ860iYyAA" }, "signature_message_utf8": "{\"canonical_uri\":\"aup:SyntheticExample1\",\"profile_id\":\"ace-profile:profile:user\",\"specification_version\":\"0.5-draft\",\"representation\":{\"profile_kind\":\"user\",\"label\":\"Synthetic example only\",\"z\":1,\"a\":[\"example\",true,null]},\"issued_at\":\"2026-10-07T00:00:00.000Z\",\"expires_at\":\"2026-10-08T00:00:00.000Z\",\"key_id\":\"synthetic-public-test-key\",\"revoked\":false}", "signature_message_hex": "7b2263616e6f6e6963616c5f757269223a226175703a53796e7468657469634578616d706c6531222c2270726f66696c655f6964223a226163652d70726f66696c653a70726f66696c653a75736572222c2273706563696669636174696f6e5f76657273696f6e223a22302e352d6472616674222c22726570726573656e746174696f6e223a7b2270726f66696c655f6b696e64223a2275736572222c226c6162656c223a2253796e746865746963206578616d706c65206f6e6c79222c227a223a312c2261223a5b226578616d706c65222c747275652c6e756c6c5d7d2c226973737565645f6174223a22323032362d31302d30375430303a30303a30302e3030305a222c22657870697265735f6174223a22323032362d31302d30385430303a30303a30302e3030305a222c226b65795f6964223a2273796e7468657469632d7075626c69632d746573742d6b6579222c227265766f6b6564223a66616c73657d", "signature_message_sha256": "f355f473443ec32eff00752e2d52073bd3903de853143629c39e20945c4bffa2", "expected": { "code": "RESOLVED_LOCAL", "evidence_signature_verified": true, "subject_authenticated": false, "authority_granted": false } }, { "scheme": "aep", "synthetic": true, "warning": "Public test fixture only. Never admit this key for production.", "verification_time": "2026-10-07T12:00:00.000Z", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:enterprise", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aep:SyntheticExample1", "profile_id": "ace-profile:profile:enterprise", "specification_version": "0.5-draft", "representation": { "profile_kind": "enterprise", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "Nq6MQOFNiOpCPrFztHKEItVMib-j6db7u7lvyvIY_S8hsRkq8QcTVLVhBXXaMWjyt9xUd_ZCgDWibukFjD16Dg" }, "signature_message_utf8": "{\"canonical_uri\":\"aep:SyntheticExample1\",\"profile_id\":\"ace-profile:profile:enterprise\",\"specification_version\":\"0.5-draft\",\"representation\":{\"profile_kind\":\"enterprise\",\"label\":\"Synthetic example only\",\"z\":1,\"a\":[\"example\",true,null]},\"issued_at\":\"2026-10-07T00:00:00.000Z\",\"expires_at\":\"2026-10-08T00:00:00.000Z\",\"key_id\":\"synthetic-public-test-key\",\"revoked\":false}", "signature_message_hex": "7b2263616e6f6e6963616c5f757269223a226165703a53796e7468657469634578616d706c6531222c2270726f66696c655f6964223a226163652d70726f66696c653a70726f66696c653a656e7465727072697365222c2273706563696669636174696f6e5f76657273696f6e223a22302e352d6472616674222c22726570726573656e746174696f6e223a7b2270726f66696c655f6b696e64223a22656e7465727072697365222c226c6162656c223a2253796e746865746963206578616d706c65206f6e6c79222c227a223a312c2261223a5b226578616d706c65222c747275652c6e756c6c5d7d2c226973737565645f6174223a22323032362d31302d30375430303a30303a30302e3030305a222c22657870697265735f6174223a22323032362d31302d30385430303a30303a30302e3030305a222c226b65795f6964223a2273796e7468657469632d7075626c69632d746573742d6b6579222c227265766f6b6564223a66616c73657d", "signature_message_sha256": "54f52e3837927fcd6d724e2cd3042983c75b941f111e64ba2e0e44f33b0c5927", "expected": { "code": "RESOLVED_LOCAL", "evidence_signature_verified": true, "subject_authenticated": false, "authority_granted": false } }, { "scheme": "alp", "synthetic": true, "warning": "Public test fixture only. Never admit this key for production.", "verification_time": "2026-10-07T12:00:00.000Z", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:location", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "alp:SyntheticExample1", "profile_id": "ace-profile:profile:location", "specification_version": "0.5-draft", "representation": { "profile_kind": "location", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "swdJ-QhNPFYEVavzHmf7MsEmuHKOzc9XYGlpp4-L-Ex2CKBBS-sWXzrHtqWO7B5lZktEKeWVUJTb1WS30SsJBQ" }, "signature_message_utf8": "{\"canonical_uri\":\"alp:SyntheticExample1\",\"profile_id\":\"ace-profile:profile:location\",\"specification_version\":\"0.5-draft\",\"representation\":{\"profile_kind\":\"location\",\"label\":\"Synthetic example only\",\"z\":1,\"a\":[\"example\",true,null]},\"issued_at\":\"2026-10-07T00:00:00.000Z\",\"expires_at\":\"2026-10-08T00:00:00.000Z\",\"key_id\":\"synthetic-public-test-key\",\"revoked\":false}", "signature_message_hex": "7b2263616e6f6e6963616c5f757269223a22616c703a53796e7468657469634578616d706c6531222c2270726f66696c655f6964223a226163652d70726f66696c653a70726f66696c653a6c6f636174696f6e222c2273706563696669636174696f6e5f76657273696f6e223a22302e352d6472616674222c22726570726573656e746174696f6e223a7b2270726f66696c655f6b696e64223a226c6f636174696f6e222c226c6162656c223a2253796e746865746963206578616d706c65206f6e6c79222c227a223a312c2261223a5b226578616d706c65222c747275652c6e756c6c5d7d2c226973737565645f6174223a22323032362d31302d30375430303a30303a30302e3030305a222c22657870697265735f6174223a22323032362d31302d30385430303a30303a30302e3030305a222c226b65795f6964223a2273796e7468657469632d7075626c69632d746573742d6b6579222c227265766f6b6564223a66616c73657d", "signature_message_sha256": "47f6d4ff175a4a4c236268330c3661d4bc4456deb80178e016046418d19d0ef0", "expected": { "code": "RESOLVED_LOCAL", "evidence_signature_verified": true, "subject_authenticated": false, "authority_granted": false } }, { "scheme": "aap", "synthetic": true, "warning": "Public test fixture only. Never admit this key for production.", "verification_time": "2026-10-07T12:00:00.000Z", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:agent", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aap:SyntheticExample1", "profile_id": "ace-profile:profile:agent", "specification_version": "0.5-draft", "representation": { "profile_kind": "agent", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "AyvyYZlYATaK6Fxe0wtP24nwaPSBpl7082F9y0mUxwuQiteKU5fuJ0k_Lpj1Qves-qYa4ntHY2Dgos5qzWQ7BA" }, "signature_message_utf8": "{\"canonical_uri\":\"aap:SyntheticExample1\",\"profile_id\":\"ace-profile:profile:agent\",\"specification_version\":\"0.5-draft\",\"representation\":{\"profile_kind\":\"agent\",\"label\":\"Synthetic example only\",\"z\":1,\"a\":[\"example\",true,null]},\"issued_at\":\"2026-10-07T00:00:00.000Z\",\"expires_at\":\"2026-10-08T00:00:00.000Z\",\"key_id\":\"synthetic-public-test-key\",\"revoked\":false}", "signature_message_hex": "7b2263616e6f6e6963616c5f757269223a226161703a53796e7468657469634578616d706c6531222c2270726f66696c655f6964223a226163652d70726f66696c653a70726f66696c653a6167656e74222c2273706563696669636174696f6e5f76657273696f6e223a22302e352d6472616674222c22726570726573656e746174696f6e223a7b2270726f66696c655f6b696e64223a226167656e74222c226c6162656c223a2253796e746865746963206578616d706c65206f6e6c79222c227a223a312c2261223a5b226578616d706c65222c747275652c6e756c6c5d7d2c226973737565645f6174223a22323032362d31302d30375430303a30303a30302e3030305a222c22657870697265735f6174223a22323032362d31302d30385430303a30303a30302e3030305a222c226b65795f6964223a2273796e7468657469632d7075626c69632d746573742d6b6579222c227265766f6b6564223a66616c73657d", "signature_message_sha256": "985594dcede73dfde06d150660f349060c2297583b2856a7a7d5b31cb5249cda", "expected": { "code": "RESOLVED_LOCAL", "evidence_signature_verified": true, "subject_authenticated": false, "authority_granted": false } }, { "scheme": "adp", "synthetic": true, "warning": "Public test fixture only. Never admit this key for production.", "verification_time": "2026-10-07T12:00:00.000Z", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:device", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "adp:SyntheticExample1", "profile_id": "ace-profile:profile:device", "specification_version": "0.5-draft", "representation": { "profile_kind": "device", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "iNM0B4T00MQKfVJmHJxmXakZqN9lGf46nOoL1rn2mX7kCTv5IaQ58_fRv7P3HLTtdQertpi-BdJ_ZB6ezYdFAA" }, "signature_message_utf8": "{\"canonical_uri\":\"adp:SyntheticExample1\",\"profile_id\":\"ace-profile:profile:device\",\"specification_version\":\"0.5-draft\",\"representation\":{\"profile_kind\":\"device\",\"label\":\"Synthetic example only\",\"z\":1,\"a\":[\"example\",true,null]},\"issued_at\":\"2026-10-07T00:00:00.000Z\",\"expires_at\":\"2026-10-08T00:00:00.000Z\",\"key_id\":\"synthetic-public-test-key\",\"revoked\":false}", "signature_message_hex": "7b2263616e6f6e6963616c5f757269223a226164703a53796e7468657469634578616d706c6531222c2270726f66696c655f6964223a226163652d70726f66696c653a70726f66696c653a646576696365222c2273706563696669636174696f6e5f76657273696f6e223a22302e352d6472616674222c22726570726573656e746174696f6e223a7b2270726f66696c655f6b696e64223a22646576696365222c226c6162656c223a2253796e746865746963206578616d706c65206f6e6c79222c227a223a312c2261223a5b226578616d706c65222c747275652c6e756c6c5d7d2c226973737565645f6174223a22323032362d31302d30375430303a30303a30302e3030305a222c22657870697265735f6174223a22323032362d31302d30385430303a30303a30302e3030305a222c226b65795f6964223a2273796e7468657469632d7075626c69632d746573742d6b6579222c227265766f6b6564223a66616c73657d", "signature_message_sha256": "4a35d3e81e7f046a63c164fe563ce57d7789c1f6737762b042fc67412ebe1873", "expected": { "code": "RESOLVED_LOCAL", "evidence_signature_verified": true, "subject_authenticated": false, "authority_granted": false } } ], "negative_vectors": [ { "scheme": "aup", "test": "padded_signature", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aup:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:user", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aup:SyntheticExample1", "profile_id": "ace-profile:profile:user", "specification_version": "0.5-draft", "representation": { "profile_kind": "user", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "0m7ThaD3aVpN4TJgHENVNWfXfGsXwf3gGmWZLnbRqwu8mws7hubymdS2J5DgnMEXBaLe_9oGRA-NeZ860iYyAA==" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "aup", "test": "extra_envelope_member", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aup:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:user", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aup:SyntheticExample1", "profile_id": "ace-profile:profile:user", "specification_version": "0.5-draft", "representation": { "profile_kind": "user", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "0m7ThaD3aVpN4TJgHENVNWfXfGsXwf3gGmWZLnbRqwu8mws7hubymdS2J5DgnMEXBaLe_9oGRA-NeZ860iYyAA", "extra": true }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "aup", "test": "revoked_key", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aup:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:user", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": true }, "record": { "canonical_uri": "aup:SyntheticExample1", "profile_id": "ace-profile:profile:user", "specification_version": "0.5-draft", "representation": { "profile_kind": "user", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "0m7ThaD3aVpN4TJgHENVNWfXfGsXwf3gGmWZLnbRqwu8mws7hubymdS2J5DgnMEXBaLe_9oGRA-NeZ860iYyAA" }, "expected_error": "RESOURCE_REVOKED" }, { "scheme": "aup", "test": "reordered_representation", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aup:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:user", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aup:SyntheticExample1", "profile_id": "ace-profile:profile:user", "specification_version": "0.5-draft", "representation": { "a": [ "example", true, null ], "z": 1, "label": "Synthetic example only", "profile_kind": "user" }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "0m7ThaD3aVpN4TJgHENVNWfXfGsXwf3gGmWZLnbRqwu8mws7hubymdS2J5DgnMEXBaLe_9oGRA-NeZ860iYyAA" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "aep", "test": "padded_signature", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aep:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:enterprise", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aep:SyntheticExample1", "profile_id": "ace-profile:profile:enterprise", "specification_version": "0.5-draft", "representation": { "profile_kind": "enterprise", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "Nq6MQOFNiOpCPrFztHKEItVMib-j6db7u7lvyvIY_S8hsRkq8QcTVLVhBXXaMWjyt9xUd_ZCgDWibukFjD16Dg==" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "aep", "test": "extra_envelope_member", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aep:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:enterprise", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aep:SyntheticExample1", "profile_id": "ace-profile:profile:enterprise", "specification_version": "0.5-draft", "representation": { "profile_kind": "enterprise", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "Nq6MQOFNiOpCPrFztHKEItVMib-j6db7u7lvyvIY_S8hsRkq8QcTVLVhBXXaMWjyt9xUd_ZCgDWibukFjD16Dg", "extra": true }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "aep", "test": "revoked_key", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aep:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:enterprise", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": true }, "record": { "canonical_uri": "aep:SyntheticExample1", "profile_id": "ace-profile:profile:enterprise", "specification_version": "0.5-draft", "representation": { "profile_kind": "enterprise", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "Nq6MQOFNiOpCPrFztHKEItVMib-j6db7u7lvyvIY_S8hsRkq8QcTVLVhBXXaMWjyt9xUd_ZCgDWibukFjD16Dg" }, "expected_error": "RESOURCE_REVOKED" }, { "scheme": "aep", "test": "reordered_representation", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aep:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:enterprise", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aep:SyntheticExample1", "profile_id": "ace-profile:profile:enterprise", "specification_version": "0.5-draft", "representation": { "a": [ "example", true, null ], "z": 1, "label": "Synthetic example only", "profile_kind": "enterprise" }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "Nq6MQOFNiOpCPrFztHKEItVMib-j6db7u7lvyvIY_S8hsRkq8QcTVLVhBXXaMWjyt9xUd_ZCgDWibukFjD16Dg" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "alp", "test": "padded_signature", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "alp:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:location", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "alp:SyntheticExample1", "profile_id": "ace-profile:profile:location", "specification_version": "0.5-draft", "representation": { "profile_kind": "location", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "swdJ-QhNPFYEVavzHmf7MsEmuHKOzc9XYGlpp4-L-Ex2CKBBS-sWXzrHtqWO7B5lZktEKeWVUJTb1WS30SsJBQ==" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "alp", "test": "extra_envelope_member", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "alp:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:location", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "alp:SyntheticExample1", "profile_id": "ace-profile:profile:location", "specification_version": "0.5-draft", "representation": { "profile_kind": "location", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "swdJ-QhNPFYEVavzHmf7MsEmuHKOzc9XYGlpp4-L-Ex2CKBBS-sWXzrHtqWO7B5lZktEKeWVUJTb1WS30SsJBQ", "extra": true }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "alp", "test": "revoked_key", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "alp:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:location", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": true }, "record": { "canonical_uri": "alp:SyntheticExample1", "profile_id": "ace-profile:profile:location", "specification_version": "0.5-draft", "representation": { "profile_kind": "location", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "swdJ-QhNPFYEVavzHmf7MsEmuHKOzc9XYGlpp4-L-Ex2CKBBS-sWXzrHtqWO7B5lZktEKeWVUJTb1WS30SsJBQ" }, "expected_error": "RESOURCE_REVOKED" }, { "scheme": "alp", "test": "reordered_representation", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "alp:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:location", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "alp:SyntheticExample1", "profile_id": "ace-profile:profile:location", "specification_version": "0.5-draft", "representation": { "a": [ "example", true, null ], "z": 1, "label": "Synthetic example only", "profile_kind": "location" }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "swdJ-QhNPFYEVavzHmf7MsEmuHKOzc9XYGlpp4-L-Ex2CKBBS-sWXzrHtqWO7B5lZktEKeWVUJTb1WS30SsJBQ" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "aap", "test": "padded_signature", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aap:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:agent", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aap:SyntheticExample1", "profile_id": "ace-profile:profile:agent", "specification_version": "0.5-draft", "representation": { "profile_kind": "agent", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "AyvyYZlYATaK6Fxe0wtP24nwaPSBpl7082F9y0mUxwuQiteKU5fuJ0k_Lpj1Qves-qYa4ntHY2Dgos5qzWQ7BA==" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "aap", "test": "extra_envelope_member", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aap:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:agent", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aap:SyntheticExample1", "profile_id": "ace-profile:profile:agent", "specification_version": "0.5-draft", "representation": { "profile_kind": "agent", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "AyvyYZlYATaK6Fxe0wtP24nwaPSBpl7082F9y0mUxwuQiteKU5fuJ0k_Lpj1Qves-qYa4ntHY2Dgos5qzWQ7BA", "extra": true }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "aap", "test": "revoked_key", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aap:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:agent", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": true }, "record": { "canonical_uri": "aap:SyntheticExample1", "profile_id": "ace-profile:profile:agent", "specification_version": "0.5-draft", "representation": { "profile_kind": "agent", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "AyvyYZlYATaK6Fxe0wtP24nwaPSBpl7082F9y0mUxwuQiteKU5fuJ0k_Lpj1Qves-qYa4ntHY2Dgos5qzWQ7BA" }, "expected_error": "RESOURCE_REVOKED" }, { "scheme": "aap", "test": "reordered_representation", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "aap:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:agent", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "aap:SyntheticExample1", "profile_id": "ace-profile:profile:agent", "specification_version": "0.5-draft", "representation": { "a": [ "example", true, null ], "z": 1, "label": "Synthetic example only", "profile_kind": "agent" }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "AyvyYZlYATaK6Fxe0wtP24nwaPSBpl7082F9y0mUxwuQiteKU5fuJ0k_Lpj1Qves-qYa4ntHY2Dgos5qzWQ7BA" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "adp", "test": "padded_signature", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "adp:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:device", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "adp:SyntheticExample1", "profile_id": "ace-profile:profile:device", "specification_version": "0.5-draft", "representation": { "profile_kind": "device", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "iNM0B4T00MQKfVJmHJxmXakZqN9lGf46nOoL1rn2mX7kCTv5IaQ58_fRv7P3HLTtdQertpi-BdJ_ZB6ezYdFAA==" }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "adp", "test": "extra_envelope_member", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "adp:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:device", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "adp:SyntheticExample1", "profile_id": "ace-profile:profile:device", "specification_version": "0.5-draft", "representation": { "profile_kind": "device", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "iNM0B4T00MQKfVJmHJxmXakZqN9lGf46nOoL1rn2mX7kCTv5IaQ58_fRv7P3HLTtdQertpi-BdJ_ZB6ezYdFAA", "extra": true }, "expected_error": "VERIFICATION_FAILED" }, { "scheme": "adp", "test": "revoked_key", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "adp:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:device", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": true }, "record": { "canonical_uri": "adp:SyntheticExample1", "profile_id": "ace-profile:profile:device", "specification_version": "0.5-draft", "representation": { "profile_kind": "device", "label": "Synthetic example only", "z": 1, "a": [ "example", true, null ] }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "iNM0B4T00MQKfVJmHJxmXakZqN9lGf46nOoL1rn2mX7kCTv5IaQ58_fRv7P3HLTtdQertpi-BdJ_ZB6ezYdFAA" }, "expected_error": "RESOURCE_REVOKED" }, { "scheme": "adp", "test": "reordered_representation", "synthetic": true, "verification_time": "2026-10-07T12:00:00.000Z", "requested_uri": "adp:SyntheticExample1", "key": { "key_id": "synthetic-public-test-key", "profile_id": "ace-profile:profile:device", "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVfP0wx0L+l38jVNTmx5BCnU7vK8n7/aRWol3bdkOevc=\n-----END PUBLIC KEY-----\n", "valid_from": "2026-10-01T00:00:00.000Z", "valid_until": "2026-11-01T00:00:00.000Z", "revoked": false }, "record": { "canonical_uri": "adp:SyntheticExample1", "profile_id": "ace-profile:profile:device", "specification_version": "0.5-draft", "representation": { "a": [ "example", true, null ], "z": 1, "label": "Synthetic example only", "profile_kind": "device" }, "issued_at": "2026-10-07T00:00:00.000Z", "expires_at": "2026-10-08T00:00:00.000Z", "key_id": "synthetic-public-test-key", "revoked": false, "signature": "iNM0B4T00MQKfVJmHJxmXakZqN9lGf46nOoL1rn2mX7kCTv5IaQ58_fRv7P3HLTtdQertpi-BdJ_ZB6ezYdFAA" }, "expected_error": "VERIFICATION_FAILED" } ] }