[Animo Solutions](www.animo.id) is working on making the TypeScript-based self-sovereign identity framework [Aries Framework JavaScript (AFJ)](https://github.com/hyperledger/aries-framework-javascript) compliant and interoperable with the standards defined in the [European Digital Identity Architecture and Reference Framework (ARF)](https://github.com/eu-digital-identity-wallet/eudi-doc-architecture-and-reference-framework/blob/main/arf.md). This overview describes the current state of the framework in terms of ARF compliance. Are you interested in [helping bridge the gap](https://animo.id/project/making-aries-framework-javascript-a-global-framework)? Reach out to [ana@animo.id](mailto:ana@animo.id) directly to talk about joining or funding the project. ## Aries Framework JavaScript status This table is based on the requirements table in the [ARF document](https://github.com/eu-digital-identity-wallet/eudi-doc-architecture-and-reference-framework/blob/main/arf.md) and extended with the column 'AFJ Status'. <table> <colgroup> <col style="width: 20%" /> <col style="width: 40%" /> <col style="width: 15%" /> <col style="width: 15%" /> <col style="width: 10%" /> </colgroup> <thead> <tr> <th><strong>Component</strong></th> <th><strong>Requirement</strong></th> <th><strong>Type 1</strong></th> <th><strong>Type 2</strong></th> <th><strong>AFJ Status</strong></th> </tr> </thead> <tbody> <tr class="even"> <td>Cryptographic keys management system - 1</td> <td><p>EUDI Wallet Solution [...] rely on one of the following components to store and manage cryptographic keys:</p> <ul> <li><p>Embedded Secure Element or Trusted Execution Environment (for mobile devices),</p></li> <li><p>reliance on an external device (Secure Elements / Smart Cards), and</p></li> <li><p>a backend (remote Hardware Security Module).</p></li> </ul> <p>The choice of which secure hardware to be used and supported is up to each EUDI Wallet Solution.</p></td> <td>MUST</td> <td>SHOULD</td> <td>❌</td> </tr> <tr class="odd"> <td>Cryptographic keys management system - 2</td> <td>EUDI Wallet Solution [...] implement safety measures to prevent export of cryptographic secrets.</td> <td>MUST</td> <td>SHOULD</td> <td>❌</td> </tr> <tr class="even"> <td>Attestation exchange Protocol - 1</td> <td>EUDI Wallet Solution [...] support OpenID4VP as attestation exchange protocol for <strong>remote flows.</strong> When pseudonymous authentication is requested, request parameters SHOULD be specified in accordance with OpenID SIOPv2.</td> <td>MUST</td> <td>MAY</td> <td>🚧</td> </tr> <tr class="odd"> <td>Attestation exchange Protocol - 2</td> <td>The EUDI Wallet Solution [...] support the protocol detailed in the standard ISO/IEC 18013-5:2021 for <strong>proximity</strong> <strong>flows</strong>.</td> <td>MUST</td> <td>MAY</td> <td>❌</td> </tr> <tr class="even"> <td>Attestation exchange Protocol - 3</td> <td>The EUDI Wallet Solution [...] perform checks to enforce session binding (i.e., attribute request for PID).</td> <td>SHOULD</td> <td>MAY</td> <td>❓</td> </tr> <tr class="odd"> <td>Attestation exchange Protocol – 4</td> <td>EUDI Wallet Solution [...] support attestation exchange protocol alternatives<a href="#table7-fn1" class="footnote-ref" id="fnref1.2" role="doc-noteref"><sup>1</sup></a>.</td> <td>MAY</td> <td>MAY</td> <td>βœ…</td> </tr> <tr class="even"> <td>Attestation exchange Protocol - 5</td> <td>The EUDI Wallet Solution [...] be able to perform proof of possession.</td> <td>MUST</td> <td>MAY</td> <td>βœ…</td> </tr> <tr class="odd"> <td>Attestation exchange Protocol - 6</td> <td>EUDI Wallet Solution [...] support Selective Disclosure of attributes as specified in ISO/IEC 18013-5:2021.</td> <td>MUST</td> <td>MAY</td> <td>❌</td> </tr> <tr class="even"> <td>Attestation exchange Protocol - 7</td> <td>EUDI Wallet Solution [...] support Selective Disclosure of attributes as specified in SD-JWT.</td> <td>MUST</td> <td>MAY</td> <td>🚧</td> </tr> <tr class="odd"> <td>Issuance Protocol -1**</td> <td><p>The EUDI Wallet Solution [...] support OpenID4VCI as an Issuance protocol.</p> <p>Member States are free to include additional issuance protocol alternatives in their national solutions.</p></td> <td>MUST**</td> <td>MUST</td> <td>βœ…</td> </tr> <tr class="even"> <td>Data model -1</td> <td>EUDI Wallet Solution [...] support attestations issued in accordance with the data model specified ISO/IEC 18013-5:2021.</td> <td>MUST</td> <td>SHOULD</td> <td>❌</td> </tr> <tr class="odd"> <td>Data model -2</td> <td>EUDI Wallet Solution [...] support attestations issued in accordance with the data model specified in W3C Verifiable Credentials Data Model 1.1.</td> <td>MUST</td> <td>SHOULD</td> <td>βœ…</td> </tr> <tr class="even"> <td>PID &amp; (Q)EAA formats - 1</td> <td>EUDI Wallet Solution [...] support attestation in JWT and SD-JWT format.</td> <td>MUST</td> <td>MAY</td> <td>🚧</td> </tr> <tr class="odd"> <td>PID &amp; (Q)EAA formats - 2</td> <td>EUDI Wallet Solution [...] support attestation in CBOR format.</td> <td>MUST</td> <td>MAY</td> <td>❌</td> </tr> <tr class="even"> <td>PID &amp; (Q)EAA formats - 3</td> <td>EUDI Wallet Solution [...] support attestation in JSON-LD format.</td> <td>MAY</td> <td>MAY</td> <td>βœ…</td> </tr> <tr class="odd"> <td>Signature formats -1</td> <td>EUDI Wallet Solution [...] support signature and encryption formats in accordance with JOSE(JWT) specifications.</td> <td>MUST</td> <td>MAY</td> <td>βœ…</td> </tr> <tr class="even"> <td>Signature formats - 2</td> <td>EUDI Wallet Solution [...] support signature and encryption formats in accordance with COSE specifications.</td> <td>MUST</td> <td>MAY</td> <td>❌</td> </tr> <tr class="odd"> <td>Signature formats - 3</td> <td>EUDI Wallet Solution [...] support signature and encryption formats in accordance with LD-Proof specifications.</td> <td>MUST NOT</td> <td>MAY</td> <td>βœ…</td> </tr> <tr class="even"> <td>Cryptographic suites and mechanisms - 1</td> <td>EUDI Wallet Solution [...] support cryptographic suites and mechanisms used for attributes detailed in SOG-IS Agreed Cryptographic Mechanisms Version 1.2.</td> <td>MUST</td> <td>SHOULD</td> <td>❓</td> </tr> </tbody> </table> <section id="footnotes" class="footnotes footnotes-end-of-document" role="doc-endnotes"> <hr /> <ol> <p>**Only meant for (Q)EAA that must have a common issuance protocol to guarantee interoperability. For PID it’s up to the Member State to define the issuance protocol and each wallet solution will support the specific PID Issuance protocol according with the Member State specifications.<a href="#fnref1" class="footnote-back" role="doc-backlink">β†©οΈŽ</a></p></li> </ol> </section>