All Projects → trinsic-id → okapi

trinsic-id / okapi

Licence: Apache-2.0 License
Collection of tools that support workflows for authentic data and identity management. Libraries available in most languages.

Programming Languages

kotlin
9241 projects
rust
11053 projects
ruby
36898 projects - #4 most used programming language
python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
C#
18002 projects

Projects that are alternatives of or similar to okapi

awesome-self-sovereign-identity
An awesome list of self-sovereign identity resources.
Stars: ✭ 161 (+1050%)
Mutual labels:  did, self-sovereign-identity, verifiable-credentials
verity
Evernym Verity is a decentralized protocol platform for issuing and verifying digital credentials. This repository contains the back-end service which is accessed using the Verity SDK. This is a read-only mirror. Contributions are welcomed at https://gitlab.com/evernym .
Stars: ✭ 18 (+28.57%)
Mutual labels:  self-sovereign-identity, verifiable-credentials
sandbox
Demonstration environments
Stars: ✭ 20 (+42.86%)
Mutual labels:  did, verifiable-credentials
WeIdentity
基于区块链的符合W3C DID和Verifiable Credential规范的分布式身份解决方案
Stars: ✭ 1,063 (+7492.86%)
Mutual labels:  did, verifiable-credentials
verifiable-data
Open Source Decentralized Identifiers and Verifiable Credentials Infrastructure and Tooling
Stars: ✭ 18 (+28.57%)
Mutual labels:  did, verifiable-credentials
aries-vcx
AriesVCX is a Rust framework for building web and mobile applications issuing, holding, presenting and verifying Verifiable Credentials in accordance to the standards set by Hyperledger Aries.
Stars: ✭ 33 (+135.71%)
Mutual labels:  self-sovereign-identity
slashtags
Slashtags implementation in JavaScript
Stars: ✭ 69 (+392.86%)
Mutual labels:  self-sovereign-identity
dcc-sdk.js
Verifiable QR SDK for EU Digital Green Certificates
Stars: ✭ 23 (+64.29%)
Mutual labels:  verifiable-credentials
WeDPR-Lab-Android-SDK
Android SDK of WeDPR-Lab-Core; WeDPR即时可用场景式隐私保护高效解决方案核心算法组件Android SDK
Stars: ✭ 14 (+0%)
Mutual labels:  zkp
pallet-did
A Substrate pallet for decentralized identifiers' (DIDs) management.
Stars: ✭ 66 (+371.43%)
Mutual labels:  did
vc-authn-oidc
No description or website provided.
Stars: ✭ 79 (+464.29%)
Mutual labels:  verifiable-credentials
ubikom
Free, secure communications for everyone, powered by decentralized private identity.
Stars: ✭ 62 (+342.86%)
Mutual labels:  self-sovereign-identity
github-did
Decentralized Identity with Github
Stars: ✭ 108 (+671.43%)
Mutual labels:  did
aries-mobile-agent-react-native
Aries Mobile Agent for React Native, built using Aries Framework JavaScript
Stars: ✭ 16 (+14.29%)
Mutual labels:  self-sovereign-identity
corda-did-method
This is an implementation of the Corda DID Method which enables Create-Read-Update-Delete (CRUD) operations on the Corda Decentralized Identifier (DID)
Stars: ✭ 17 (+21.43%)
Mutual labels:  did
.well-known
Specs and documentation for all DID-related /.well-known resources
Stars: ✭ 44 (+214.29%)
Mutual labels:  did
aries-framework-dotnet
Aries Framework .NET for building multiplatform SSI services
Stars: ✭ 68 (+385.71%)
Mutual labels:  self-sovereign-identity
indy-vdr
A library and proxy server for interacting with Hyperledger Indy Node ledger instances
Stars: ✭ 31 (+121.43%)
Mutual labels:  verifiable-credentials
WeDPR-Lab-Core
Core libraries of WeDPR instant scenario-focused solutions for privacy-inspired business; WeDPR即时可用场景式隐私保护高效解决方案核心算法组件
Stars: ✭ 147 (+950%)
Mutual labels:  zkp
sidetree-core-go
Ledger-agnostic Sidetree core components in Golang
Stars: ✭ 22 (+57.14%)
Mutual labels:  did

Tools and libraries for managing digital identity

Golang Java Platform Libraries Python Ruby Wasm

This repo provides bindings in all popular languages for the core Okapi functionalities:

  • Support for working with did:key method
  • Security tools for authentication with Oberon
  • Experimental implementation of DIDComm Messaging protocol for gRPC
  • Linked Data Proofs using non-LD processing signatures, such as JcsEd25519Signature2020
  • On the roadmap: BBS+ Signatures

Library is available for use with different languages

Gem Go) Nuget npm PyPI Rust Swift

Installation

See the language specific README in each folder of this repo for usage. Additionally, check the okapi-examples for some quick sample applications.

Native Libraries

If the bindings in your language require the native libraries to be installed on your system (like Go, Python, Java, etc), you can use one of the following methods to install them:

Homebrew (MacOS and Linux)

We maintain a Homebrew Tap with bottles for MacOS and Linux. To install run:

brew install trinsic-id/tap/okapi

dpkg for Linux

You can find .deb packages for your platform with each release. These can be installed using dpkg. Choose the package for your architecture. The packages will install the required libraries and header files.

wget https://github.com/trinsic-id/okapi/releases/download/v1.1.0/okapi_1.1.0_amd64.deb

dpkg -i okapi_1.1.0_amd64.deb

win-get for Windows

winget install okapi

Library and API structure

The main library is built in Rust and exposed to other languages through a C-callable FFI. The function signatures for each method are exposed as byte arrays, that use Protobuf for the main IDL. This allows easy development and maintainance of new methods, with minimal language specific implementation.

All library methods are exposed via static method calls, generally grouped under a dedicated class in the Okapi namespace (where available).

For example, to generate new key using .NET you can use the DIDKey class.

For mathematical languages and environments, use the Python packages. Examples for MATLAB, Mathematica, R(lang), etc. can be found here: https://github.com/trinsic-id/okapi-examples

using Okapi.Keys;

var key = DIDKey.Generate(new GenerateKeyRequest { KeyType = KeyType.Ed25519 });

The same functionality for Node is exposed as:

import * from "okapi";

let request = new GenerateKeyRequest();
request.setKeyType(KeyType.Ed25519);

var key = DIDKey.generate(request);

API Reference

DIDKey

  • generate
  • resolve

DIDComm

  • pack
  • unpack
  • sign
  • verify

LdProofs

  • create_proof
  • verify_proof

Oberon

  • create_key
  • create_token
  • blind_token
  • unblind_token
  • create_proof
  • verify_proof

Development

Compile Protobuf

Some languages have support for compiling the protobuf definitions directly (.NET, node, rust), some (Java, Go, Python, Ruby) require use of a separate Python script located ./devops/generate_proto_files.py. The github action Push to buf.build will also create a branch called update-protobuf-generated-files with any changes.

Stats

Alt

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].