trisa

module
v0.99999.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2022 License: MIT

README

Travel Rule Information Sharing Architecture (TRISA) for Virtual Asset Service Providers

Go Reference Go Report Card

Please visit the TRISA website for more information and the TRISA documentation for developer docs and integration.

Contributing to TRISA

Looking to contribute to the TRISA open source project?

If you're a developer whose organization is using (or planning to adopt) the TRISA protocol, this section is for you!

Navigating the Repository

This repository contains a gRPC implementation of the TRISA protocol as described by the white paper, which leverages protocol buffers and Golang.

The proto folder contains the core RPC definitions, including:

  • the interVASP Messaging Standard (IVMS) message definitions, which serve as the basis for how two VASP peers should mutually describe entities involved in cryptographic transfers, including names, locations, and government identifiers. This is the spec that will allow originators to identify themselves to beneficiaries and to request information from those beneficiaries to meet the legal requirements of their regulators.
  • the TRISA Network's service definitions, essentially how the different parts of the API work — from the exchange of keys (to ensure both peers have the requisite details to exchange information) to the transfer of "secure envelopes" (cryptographically sealed protocol buffer messages that can only be decrypted by the intended recipient). The trisa subfolder also contains generic message types for transactions that are intended to provide maximum flexibility for a wide range of TRISA use cases.

The pkg folder contains the reference implementation code, including compiled code generated from the protocol buffer definitions in the proto folder[^1].

  • The iso3166 folder contains language codes.
  • The ivms101 folder extends the generated protobuf code with JSON loading utilities, validation helpers, short constants, etc.
  • The trisa folder contains structs and methods for a range of TRISA-related tasks, such as performing cryptography and making mTLS connections.

The lib folder is intended to showcase utility code similar to that in the pkg folder, but for languages other than Go. If you work in a language other than go, this would be a great place to start your contribution!

[^1]: Note that these compiled files are compiled for Golang; but this is certainly not the only option. Those interested in building implementation code in a different language should look to the lib folder, which currently contains placeholder folders but is intended to showcase such other implementations (including compiled protocol buffer code for these other languages).

The Global Directory Service

Another integral part of the TRISA protocol is the Global Directory Service, which serves as a look-up tool for TRISA members to identify peers with which they wish to exchange information. For RPC definitions and implementation code related to the Global Directory Service, visit the companion directory repository. To learn more about how to become a member of the directory, visit vaspdirectory.net.

Translations

Translations of the documentation on trisa.dev are done periodically by human translators, and may become out-of-sync with the English text or reflect errors. If you notice an error, please open a bug report to notify us.

Directories

Path Synopsis
cmd
trisa
The TRISA CLI client allows you to create and execute TRISA requests from the command line for development or testing purposes.
The TRISA CLI client allows you to create and execute TRISA requests from the command line for development or testing purposes.
pkg
The pkg folder contains the reference implementation code, including compiled code generated from the protocol buffer definitions in the proto folder.
The pkg folder contains the reference implementation code, including compiled code generated from the protocol buffer definitions in the proto folder.
ivms101
Package ivms101 extends the Go protocol buffers generated by the ivms101 protobuf package with JSON loading utilities, validation helpers, short constants, etc.
Package ivms101 extends the Go protocol buffers generated by the ivms101 protobuf package with JSON loading utilities, validation helpers, short constants, etc.
trisa/crypto
Package crypto describes interfaces for the various encryption and hmac algorithms that might be used to encrypt and sign transaction envelopes being passed securely in the TRISA network.
Package crypto describes interfaces for the various encryption and hmac algorithms that might be used to encrypt and sign transaction envelopes being passed securely in the TRISA network.
trisa/envelope
Package envelope replaces the handler package to provide utilities for encrypting and decrypting trisa.SecureEnvelopes as well as sealing and unsealing them.
Package envelope replaces the handler package to provide utilities for encrypting and decrypting trisa.SecureEnvelopes as well as sealing and unsealing them.
trisa/keys
Package keys provides interfaces and handlers for managing public/private key pairs that are used for sealing and unsealing secure envelopes.
Package keys provides interfaces and handlers for managing public/private key pairs that are used for sealing and unsealing secure envelopes.
trisa/keys/signature
Package signature provides a mechanism for computing public key signatures, which are used to help identify public keys used in sealing TRISA envelopes and select the matching private key pair when a secure envelope is received.
Package signature provides a mechanism for computing public key signatures, which are used to help identify public keys used in sealing TRISA envelopes and select the matching private key pair when a secure envelope is received.
trust
Package trust provides support for handling PEM-encoded certificate chains.
Package trust provides support for handling PEM-encoded certificate chains.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL