There are a slew of libraries and concepts surrounding ARISEN-based user authentication, which are each explained below.
Authentication Protocols and Specification
- ARISEN Authentication Transport Protocol - A protocol for applications to make signing requests to authenticators. Implemented by the dWebID authenticator. Also referred to as the "AATP" protocol.
- ARISEN Signing Request Protocol - A protocol for applications to make signing requests to authenticators. Implemented by the PeepsID authenticator. Also referred to as the "ASR" protocol.
- Ricardian Specification - A specification used by authenticators to display the actions a user is attempting to sign, in a human-readable format. Implemented by the dWebID authenticator.
- Manifest Specification - A specification for metadata describing integrating apps and the actions they can request from a user. This specification can be used by authenticators to provide more information about the app a user is interacting with, and to run transaction pre-flight security checks comparing the contents of a transaction request with what integrating apps have declared about themselves.
Universal Authentication Libraries
Apps can utilize the UAL to integrate with multiple authenticators from a single API. The Core UAL Library is used alongside renderers and UALs for specific authenticators (depending on which authenticators you would like to integrate with). Below, we lay out the specific renderers and authenticator UALs that you can build into your applications.
UAL Authenticator Plugins
Build Your Own UAL Plugin
If you have built your own authenticator and would like to build your own UAL plugin for others to integrate into their app's UAL, you can read the walkthrough document here.
Signature Provider Implementations
There are various signature providers that can also be used to interface with authenticators, or to build your own authenticators. Signature providers are displayed below, by language.
- ArisenSDK Signature Provider Interface - A signature provider interface for interacting with AATP-ready authenticators.
- ArisenSDK iOS Browser Signature Provider Interface - A signature provider interface for communicating with AATP-ready authenticators from iOS Safari.
- ArisenSDK Window Message Signature Provider Interface - A signature provider interface for communicating with an AATP-ready authenticator over the Window Messaging API.
- ArisenSDK Ledger Signature Provider - When plugged into
ArisenSDK, this signature provider enables applications to route signing requests to a ledger device.
Java Signature Providers
- ARISEN Java Softkey Signature Provider - A signature provider that is a pluggable signature provider for the ARISEN Java SDK that allows for signing transactions using in-memory SECP256K1 and SECP256R1 keys.
- ARISEN Android Keystore Signature Provider - A signature provider that is pluggable for ARISEN's Java SDK, and allows for signing transactions using Android keystore keys. Written in Kotlin.
Swift Signature Providers
- ARISEN Swift Softkey Signature Provider - A signature provider for signing transactions using in-memory K1 keys. Is pluggable into ARISEN's Swift SDK.
- ARISEN Swift Vault - Vault is a utility library for working with public/private keys and signing with Apple's Keychain and Secure Enclave.
- ARISEN Swift Vault Signature Provider - A signature provider that is pluggable into ARISEN's Swift SDK and allows for the signing of transactions using keys stored in Apple's Keychain and the device's Secure Enclave.
There are several SDKs as well as other tools that can be used to interact with ARISEN, discussed here.
Learn about dDrive and the various tools for creating, managing and distributing dDrives here. :::