diff --git a/Directory.Build.props b/Directory.Build.props
index 87fc28c1..806d741b 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -21,7 +21,7 @@
false
- netstandard2.1
+ net8.0
@@ -41,8 +41,6 @@
9.2.0
9.2.0
2.8.2
- 2.0.1
- 0.4.2-alpha
8.0.1
8.0.2
4.0.0
diff --git a/Directory.Build.targets b/Directory.Build.targets
new file mode 100644
index 00000000..af5a0e72
--- /dev/null
+++ b/Directory.Build.targets
@@ -0,0 +1,11 @@
+
+
+
+ <_LegacyRefs Include="@(ProjectReference)"
+ Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(ProjectReference.Identity)', '(?i)[/\\\\]legacy[/\\\\]'))" />
+
+
+
+
+
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
index 21249d6e..671da971 100644
--- a/MAINTAINERS.md
+++ b/MAINTAINERS.md
@@ -7,4 +7,3 @@
| Christopher Hempel | [@CHempel-esatus](https://github.com/CHempel-esatus) | CHempel_esatus#6640 |
| Kevin Dinh | [@Dindexx](https://github.com/Dindexx) | |
| Johannes Türk | [@JoTiTu](https://github.com/JoTiTu) | |
-| Ken Kosmowski | [@kenkosmowski](https://github.com/kenkosmowski) | |
diff --git a/README.md b/README.md
index ec675bfa..52c136f2 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
# Wallet Framework for .NET
-Wallet Framework for .NET is an open framework for building digital identity wallets. The framework was initiated as [Aries Framework .NET](https://github.com/hyperledger/aries-framework-dotnet) in the Hyperledger Foundation and was forked to express the goal to broaden the supported identity protocols, especially with regard to [OID4VC](https://openid.net/openid4vc/) and [SD-JWT](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-selective-disclosure-jwt-05).
+Wallet Framework for .NET is an open framework for building digital identity wallets with a focus on [OID4VC](https://openid.net/openid4vc/), [SD-JWT](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-selective-disclosure-jwt-05) and mdoc (ISO/IEC 18013-5).
+
+The framework was initiated as Aries Framework .NET in the Hyperledger Foundation. The Hyperledger Aries and Indy components have been deprecated, are now considered legacy and will not be supported anymore.
## Table of Contents
@@ -8,25 +10,14 @@ Wallet Framework for .NET is an open framework for building digital identity wal
- [Roadmap](#roadmap)
- [Protocols](#protocols)
- [OpenID for Verifiable Credentials (OID4VC)](#openid-for-verifiable-credentials-oid4vc)
- - [Hyperledger Aries](#hyperledger-aries)
- [Credential Formats](#credential-formats)
- - [Quickstart Guide](#quickstart-guide)
- - [Prerequisites](#prerequisites)
- - [Create new web application](#create-new-web-application)
- - [Add the framework dependencies](#add-the-framework-dependencies)
- - [Register the agent middleware](#register-the-agent-middleware)
- - [Demo](#demo)
- - [Testing](#testing)
- - [Install libindy library](#install-libindy-library)
- - [Run an indy node pool on localhost](#run-an-indy-node-pool-on-localhost)
- - [Run an indy node pool on server](#run-an-indy-node-pool-on-server)
- - [Run the tests](#run-the-tests)
+ - [Releases / Versioning](#releases--versioning)
- [License](#license)
## Roadmap
- OpenID4VC Support
- SD-JWT VC Support
-- Replacing the indy-sdk
+- mdoc Support
## Protocols
@@ -48,127 +39,14 @@ Wallet Framework for .NET is an open framework for building digital identity wal
| - Verifier Authentication | [Verifier Authentication](https://openid.github.io/OpenID4VP/openid-4-verifiable-presentations-wg-draft.html#name-verifier-metadata-managemen) | :construction: |
| **Self-Issued OpenID Provider v2** | [SIOPv2](https://openid.net/specs/openid-connect-self-issued-v2-1_0-ID1.html) | :construction: |
-## Hyperledger Aries
-
-**AIP 1.0**
-| Protocol | State |
-| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
-| [0019-encryption-envelope](https://github.com/hyperledger/aries-rfcs/tree/9b0aaa39df7e8bd434126c4b33c097aae78d65bf/features/0019-encryption-envelope) | :white_check_mark: |
-| [0160-connection-protocol](https://github.com/hyperledger/aries-rfcs/tree/4d9775490359e234ab8d1c152bca6f534e92a38d/features/0160-connection-protocol) | :white_check_mark: |
-| [0036-issue-credential](https://github.com/hyperledger/aries-rfcs/tree/bb42a6c35e0d5543718fb36dd099551ab192f7b0/features/0036-issue-credential) | :white_check_mark: |
-| [0037-present-proof](https://github.com/hyperledger/aries-rfcs/tree/4fae574c03f9f1013db30bf2c0c676b1122f7149/features/0037-present-proof) | :white_check_mark: |
-| [0056-service-decorator](https://github.com/hyperledger/aries-rfcs/tree/527849ec3aa2a8fd47a7bb6c57f918ff8bcb5e8c/features/0056-service-decorator) | :white_check_mark: |
-| [0025-didcomm-transports](https://github.com/hyperledger/aries-rfcs/tree/b490ebe492985e1be9804fc0763119238b2e51ab/features/0025-didcomm-transports) | Http supported |
-| [0015-acks](https://github.com/hyperledger/aries-rfcs/tree/5cc750f0fe18e3918401489066566f22474e25a8/features/0015-acks) | Partially supported |
-| [0035-report-problem](https://github.com/hyperledger/aries-rfcs/tree/89d14c15ab35b667e7a9d04fe42d4d48b10468cf/features/0035-report-problem) | Partially supported |
-
-
-**AIP 2.0**
-| Protocol | State |
-| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
-| [0023-did-exchange](https://github.com/hyperledger/aries-rfcs/tree/bf3d796cc33ce78ed7cde7f5422b10719a68be21/features/0023-did-exchange) | :white_check_mark: |
-| [0048-trust-ping](https://github.com/hyperledger/aries-rfcs/tree/4e78319e5f79df2003ddf37f8f497d0fae20cc63/features/0048-trust-ping) | :white_check_mark: |
-| [0095-basic-message](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0095-basic-message) | :white_check_mark: |
-| | |
-
## Credential Formats
| Credential Format | Link | State |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
-| AnonCreds 1.0 | [Anonymous Credential Protocol](https://hyperledger-indy.readthedocs.io/projects/hipe/en/latest/text/0109-anoncreds-protocol/README.html) | :white_check_mark: |
| SD-JWT-based Verifiable Credentials | [SD-JWT VC](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-sd-jwt-vc-00) | :construction: |
+| mdoc (ISO/IEC 18013-5) | [mdoc](https://www.iso.org/standard/69084.html) | :construction: |
-## Quickstart Guide
-
-The framework fully leverages the [.NET Core hosting model](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-3.0) with full integration of dependency injection, configuration and hosting services.
-
-### Prerequisites
-
-- Install [.NET Core](https://dotnet.microsoft.com/download)
-- Install [libindy for your platform](https://github.com/hyperledger/indy-sdk/#installing-the-sdk)
-
-### Create new web application
-
-Using your favorite editor, create new web project. You can also create a project from the console.
-
-```bash
-dotnet new web -o AriesAgent
-```
-
-To setup your agent use the `Startup.cs` file to configure the framework.
-
-### Add the framework dependencies
-
-Use the `IServiceCollection` extensions to add the dependent services to your application in the `ConfigureServices(IServiceCollection services)` method. Upon startup, the framework will create and configure your agent.
-
-```c#
-services.AddAriesFramework(builder =>
-{
- builder.RegisterAgent(options =>
- {
- options.EndpointUri = "http://localhost:5000/";
- });
-});
-```
-
-> Note: If you'd like your agent to be accessible publically, use Ngrok to setup a public host and use that as the `EndpointUri`.
-> When changing the endpoints, make sure you clear any previous wallets with the old configuration. Wallet data files are located in `~/.indy_client/wallet`
-
-For a list of all configuration options, check the [AgentOptions.cs](https://github.com/hyperledger/aries-framework-dotnet/blob/master/src/Hyperledger.Aries/Configuration/AgentOptions.cs) file.
-
-### Register the agent middleware
-
-When running web applications, register the agent middleware in the `Configure(IApplicationBuilder app, IWebHostEnvironment env)` method. This will setup a middleware in the AspNetCore pipeline that will respond to incoming agent messages.
-
-```c#
-app.UseAriesFramework();
-```
-
-That's it. Run your project.
-
-## Demo
-
-With [Docker](https://www.docker.com) installed, run
-
-```lang=bash
-docker-compose up
-```
-
-This will create an agent network with a pool of 4 indy nodes and 2 agents able to communicate with each other in the network.
-Navigate to [http://localhost:7000](http://localhost:7000) and [http://localhost:8000](http://localhost:8000) to create and accept connection invitations between the different agents.
-
-
-## Testing
-
-To run the unit tests, the following dependencies also must be installed:
-- Docker
-
-### Install libindy library
-Follow the build instructions for your OS on the [Hyperledger Indy SDK](https://github.com/hyperledger/indy-sdk) Readme.
-
-For macOS, if you get a `'indy' DLL not found exception`, move the built `libindy.dylib` file to the `test/Hyperledger.Aries.Tests/bin/Debug/netcoreapp3.1/` directory to explicitly add it to the path.
-
-
-### Run an indy node pool on localhost
-```
-docker build --build-arg pool_ip=127.0.0.1 -f docker/indy-pool.dockerfile -t indy_pool docker/
-docker run -itd -p 9701-9709:9701-9709 indy_pool
-```
-
-### Run an indy node pool on server
-```
-# replace with server IP address
-docker build --build-arg pool_ip= -f docker/indy-pool.dockerfile -t indy_pool docker/
-docker run -itd -p :9701-9709:9701-9709 indy_pool
-```
-
-### Run the tests
-First, edit the keyword in the `scripts/tester.sh` file to select the tests you want to run. Then, run the script
-```
-scripts/tester.sh
-```
-
## Releases / Versioning
This Repository includes a github actions pipeline which builds and releases the wallet framework whenever a Pull Request is submitted or a merge to the main branch happens.
When the build and release process is triggered by a pull request the build version has a "pr" suffix.
@@ -178,4 +56,4 @@ The build is accessible through the Open Wallet Foundation nuget feed.
## License
-[Apache License Version 2.0](https://github.com/hyperledger/aries-cloudagent-python/blob/master/LICENSE)
+[Apache License Version 2.0](./LICENSE)
diff --git a/docker-compose.test.yaml b/docker-compose.test.yaml
deleted file mode 100644
index b9164242..00000000
--- a/docker-compose.test.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-version: '3'
-services:
- indy-pool:
- build:
- context: .
- dockerfile: docker/indy-pool.dockerfile
- args:
- pool_ip: 10.0.0.10
- networks:
- agent_net:
- ipv4_address: 10.0.0.10
-
- test-agent:
- build:
- context: .
- dockerfile: docker/test-agent.dockerfile
- depends_on:
- - "indy-pool"
- networks:
- agent_net:
- ipv4_address: 10.0.0.14
-
-networks:
- agent_net:
- driver: bridge
- ipam:
- config:
- - subnet: 10.0.0.0/16
diff --git a/docker-compose.yaml b/docker-compose.yaml
deleted file mode 100644
index c837bc1e..00000000
--- a/docker-compose.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-version: '3'
-services:
- indy-pool:
- build:
- context: .
- dockerfile: docker/indy-pool.dockerfile
- args:
- pool_ip: 10.0.0.10
- ports:
- - "9701-9709:9701-9709"
- networks:
- agent_net:
- ipv4_address: 10.0.0.10
-
- web-agent-1:
- build:
- context: .
- dockerfile: docker/web-agent.dockerfile
- environment:
- - ASPNETCORE_URLS=http://10.0.0.11:7000
- - ASPNETCORE_ENVIRONMENT=Development
- - ENDPOINT_HOST=${HOST1:-http://10.0.0.11:7000}
- ports:
- - "7000:7000"
- depends_on:
- - "indy-pool"
- links:
- - "indy-pool"
- networks:
- agent_net:
- ipv4_address: 10.0.0.11
-
- web-agent-2:
- build:
- context: .
- dockerfile: docker/web-agent.dockerfile
- environment:
- - ASPNETCORE_URLS=http://10.0.0.12:8000
- - ASPNETCORE_ENVIRONMENT=Development
- - ENDPOINT_HOST=${HOST2:-http://10.0.0.12:8000}
- ports:
- - "8000:8000"
- depends_on:
- - "indy-pool"
- links:
- - "indy-pool"
- networks:
- agent_net:
- ipv4_address: 10.0.0.12
-
-networks:
- agent_net:
- driver: bridge
- ipam:
- config:
- - subnet: 10.0.0.0/16
\ No newline at end of file
diff --git a/docker/commands.txt b/docker/commands.txt
deleted file mode 100644
index 469a2313..00000000
--- a/docker/commands.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-docker build -f indy-pool.dockerfile -t indy_pool .
-docker run -itd -p 9701-9709:9701-9709 indy_pool
-
-Run tests in PowerShell
-Get-ChildItem ".\test\" -recurse | where {$_.extension -eq ".csproj"} | % { dotnet test $_.FullName --verbosity normal }
-
-Run tests in Bash
-ls test/**/*.csproj | xargs -L1 dotnet test --verbosity normal
\ No newline at end of file
diff --git a/docker/docker_pool_genesis.txn b/docker/docker_pool_genesis.txn
deleted file mode 100644
index e7a450a5..00000000
--- a/docker/docker_pool_genesis.txn
+++ /dev/null
@@ -1,4 +0,0 @@
-{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node1","blskey":"4N8aUNHSgjQVgkpm8nhNEfDf6txHznoYREg9kirmJrkivgL4oSEimFF6nsQ6M41QvhM2Z33nves5vfSn9n1UwNFJBYtWVnHYMATn76vLuL3zU88KyeAYcHfsih3He6UHcXDxcaecHVz6jhCYz1P2UZn2bDVruL5wXpehgBfBaLKm3Ba","blskey_pop":"RahHYiCvoNCtPTrVtP7nMC5eTYrsUA8WjXbdhNc8debh1agE9bGiJxWBXYNFbnJXoXhWFMvyqhqhRoq737YQemH5ik9oL7R4NTTCz2LEZhkgLJzB3QRQqJyBNyv7acbdHrAT8nQ9UkLbaVL9NBpnWXBTw4LEMePaSHEw66RzPNdAX1","client_ip":"10.0.0.10","client_port":9702,"node_ip":"10.0.0.10","node_port":9701,"services":["VALIDATOR"]},"dest":"Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv"},"metadata":{"from":"Th7MpTaRZVRYnPiabds81Y"},"type":"0"},"txnMetadata":{"seqNo":1,"txnId":"fea82e10e894419fe2bea7d96296a6d46f50f93f9eeda954ec461b2ed2950b62"},"ver":"1"}
-{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node2","blskey":"37rAPpXVoxzKhz7d9gkUe52XuXryuLXoM6P6LbWDB7LSbG62Lsb33sfG7zqS8TK1MXwuCHj1FKNzVpsnafmqLG1vXN88rt38mNFs9TENzm4QHdBzsvCuoBnPH7rpYYDo9DZNJePaDvRvqJKByCabubJz3XXKbEeshzpz4Ma5QYpJqjk","blskey_pop":"Qr658mWZ2YC8JXGXwMDQTzuZCWF7NK9EwxphGmcBvCh6ybUuLxbG65nsX4JvD4SPNtkJ2w9ug1yLTj6fgmuDg41TgECXjLCij3RMsV8CwewBVgVN67wsA45DFWvqvLtu4rjNnE9JbdFTc1Z4WCPA3Xan44K1HoHAq9EVeaRYs8zoF5","client_ip":"10.0.0.10","client_port":9704,"node_ip":"10.0.0.10","node_port":9703,"services":["VALIDATOR"]},"dest":"8ECVSk179mjsjKRLWiQtssMLgp6EPhWXtaYyStWPSGAb"},"metadata":{"from":"EbP4aYNeTHL6q385GuVpRV"},"type":"0"},"txnMetadata":{"seqNo":2,"txnId":"1ac8aece2a18ced660fef8694b61aac3af08ba875ce3026a160acbc3a3af35fc"},"ver":"1"}
-{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node3","blskey":"3WFpdbg7C5cnLYZwFZevJqhubkFALBfCBBok15GdrKMUhUjGsk3jV6QKj6MZgEubF7oqCafxNdkm7eswgA4sdKTRc82tLGzZBd6vNqU8dupzup6uYUf32KTHTPQbuUM8Yk4QFXjEf2Usu2TJcNkdgpyeUSX42u5LqdDDpNSWUK5deC5","blskey_pop":"QwDeb2CkNSx6r8QC8vGQK3GRv7Yndn84TGNijX8YXHPiagXajyfTjoR87rXUu4G4QLk2cF8NNyqWiYMus1623dELWwx57rLCFqGh7N4ZRbGDRP4fnVcaKg1BcUxQ866Ven4gw8y4N56S5HzxXNBZtLYmhGHvDtk6PFkFwCvxYrNYjh","client_ip":"10.0.0.10","client_port":9706,"node_ip":"10.0.0.10","node_port":9705,"services":["VALIDATOR"]},"dest":"DKVxG2fXXTU8yT5N7hGEbXB3dfdAnYv1JczDUHpmDxya"},"metadata":{"from":"4cU41vWW82ArfxJxHkzXPG"},"type":"0"},"txnMetadata":{"seqNo":3,"txnId":"7e9f355dffa78ed24668f0e0e369fd8c224076571c51e2ea8be5f26479edebe4"},"ver":"1"}
-{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node4","blskey":"2zN3bHM1m4rLz54MJHYSwvqzPchYp8jkHswveCLAEJVcX6Mm1wHQD1SkPYMzUDTZvWvhuE6VNAkK3KxVeEmsanSmvjVkReDeBEMxeDaayjcZjFGPydyey1qxBHmTvAnBKoPydvuTAqx5f7YNNRAdeLmUi99gERUU7TD8KfAa6MpQ9bw","blskey_pop":"RPLagxaR5xdimFzwmzYnz4ZhWtYQEj8iR5ZU53T2gitPCyCHQneUn2Huc4oeLd2B2HzkGnjAff4hWTJT6C7qHYB1Mv2wU5iHHGFWkhnTX9WsEAbunJCV2qcaXScKj4tTfvdDKfLiVuU2av6hbsMztirRze7LvYBkRHV3tGwyCptsrP","client_ip":"10.0.0.10","client_port":9708,"node_ip":"10.0.0.10","node_port":9707,"services":["VALIDATOR"]},"dest":"4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA"},"metadata":{"from":"TWwCRQRZ2ZHMJFn9TzLp7W"},"type":"0"},"txnMetadata":{"seqNo":4,"txnId":"aa5e817d7cc626170eca175822029339a444eb0ee8f0bd20d3b0b76e566fb008"},"ver":"1"}
diff --git a/docker/indy-pool.dockerfile b/docker/indy-pool.dockerfile
deleted file mode 100644
index f4a1b657..00000000
--- a/docker/indy-pool.dockerfile
+++ /dev/null
@@ -1,128 +0,0 @@
-########################################################
-## Creates a pool of nodes that uses
-## the payment plugins with plenum.
-##
-## run the following commands to build and start
-## the pool.
-##
-## localhost
-## docker build -f indy-pool.dockerfile -t indy_pool .
-## docker run -itd -p 9701-9708:9701-9708 indy_pool
-##
-## specific IP address
-## # replace 192.168.179.90 with your wifi IP address
-## docker build --build-arg pool_ip=192.168.179.90 -f ci/indy-pool.dockerfile -t indy_pool .
-## docker run -itd -p 192.168.179.90:9701-9708:9701-9708 indy_pool
-##
-## docker network
-## docker network create --subnet 10.0.0.0/8 indy_pool_network
-## docker build --build-arg pool_ip=10.0.0.2 -f ci/indy-pool.dockerfile -t indy_pool .
-## docker run -d --ip="10.0.0.2" --net=indy_pool_network indy_pool
-##
-## 'docker ps' will show the container id
-##
-## To connect to the shell of the container you can use
-## the following exec command replacing the
-## with the id of the running container.
-##
-## docker exec -it /bin/bash
-##
-########################################################FROM ubuntu:16.04
-FROM ubuntu:16.04
-
-ARG uid=1000
-
-# Install environment
-RUN apt-get update -y && apt-get install -y \
- git \
- wget \
- python3.5 \
- python3-pip \
- python-setuptools \
- python3-nacl \
- apt-transport-https \
- ca-certificates \
- supervisor
-
-RUN pip3 install -U \
- pip==9.0.3 \
- setuptools
-
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CE7709D068DB5E88
-ARG indy_stream=stable
-RUN echo "deb https://repo.sovrin.org/deb xenial $indy_stream" >> /etc/apt/sources.list
-
-RUN useradd -ms /bin/bash -u $uid indy
-
-ARG indy_plenum_ver=1.12.0
-ARG indy_node_ver=1.12.0
-ARG python3_indy_crypto_ver=0.4.5
-ARG indy_crypto_ver=0.4.5
-ARG python3_pyzmq_ver=18.1.0
-ARG sovtoken_ver=1.0.5
-ARG sovtokenfees_ver=1.0.5
-
-RUN apt-get update -y && apt-get install -y \
- python3-pyzmq=${python3_pyzmq_ver} \
- indy-plenum=${indy_plenum_ver} \
- indy-node=${indy_node_ver} \
- python3-indy-crypto=${python3_indy_crypto_ver} \
- libindy-crypto=${indy_crypto_ver} \
- sovtoken=${sovtoken_ver} \
- sovtokenfees=${sovtokenfees_ver} \
- vim
-
-RUN echo "[supervisord]\n\
-logfile = /tmp/supervisord.log\n\
-logfile_maxbytes = 50MB\n\
-logfile_backups=10\n\
-logLevel = error\n\
-pidfile = /tmp/supervisord.pid\n\
-nodaemon = true\n\
-minfds = 1024\n\
-minprocs = 200\n\
-umask = 022\n\
-user = indy\n\
-identifier = supervisor\n\
-directory = /tmp\n\
-nocleanup = true\n\
-childlogdir = /tmp\n\
-strip_ansi = false\n\
-\n\
-[program:node1]\n\
-command=start_indy_node Node1 0.0.0.0 9701 0.0.0.0 9702\n\
-directory=/home/indy\n\
-stdout_logfile=/tmp/node1.log\n\
-stderr_logfile=/tmp/node1.log\n\
-\n\
-[program:node2]\n\
-command=start_indy_node Node2 0.0.0.0 9703 0.0.0.0 9704\n\
-directory=/home/indy\n\
-stdout_logfile=/tmp/node2.log\n\
-stderr_logfile=/tmp/node2.log\n\
-\n\
-[program:node3]\n\
-command=start_indy_node Node3 0.0.0.0 9705 0.0.0.0 9706\n\
-directory=/home/indy\n\
-stdout_logfile=/tmp/node3.log\n\
-stderr_logfile=/tmp/node3.log\n\
-\n\
-[program:node4]\n\
-command=start_indy_node Node4 0.0.0.0 9707 0.0.0.0 9708\n\
-directory=/home/indy\n\
-stdout_logfile=/tmp/node4.log\n\
-stderr_logfile=/tmp/node4.log\n"\
->> /etc/supervisord.conf
-
-USER indy
-
-RUN awk '{if (index($1, "NETWORK_NAME") != 0) {print("NETWORK_NAME = \"sandbox\"")} else print($0)}' /etc/indy/indy_config.py> /tmp/indy_config.py
-RUN mv /tmp/indy_config.py /etc/indy/indy_config.py
-
-ARG pool_ip=127.0.0.1
-
-RUN generate_indy_pool_transactions --nodes 4 --clients 5 --nodeNum 1 2 3 4 --ips="$pool_ip,$pool_ip,$pool_ip,$pool_ip"
-
-EXPOSE 9701 9702 9703 9704 9705 9706 9707 9708
-
-CMD ["/usr/bin/supervisord"]
diff --git a/docker/test-agent.dockerfile b/docker/test-agent.dockerfile
deleted file mode 100644
index 89c8ce21..00000000
--- a/docker/test-agent.dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM streetcred/dotnet-indy:1.14.2
-WORKDIR /app
-
-COPY . .
-RUN dotnet restore "test/Hyperledger.Aries.Tests/Hyperledger.Aries.Tests.csproj"
-
-COPY docker/docker_pool_genesis.txn test/Hyperledger.Aries.Tests/pool_genesis.txn
-
-WORKDIR /app/test/Hyperledger.Aries.Tests
-
-ENTRYPOINT ["dotnet", "test", "--verbosity", "normal"]
\ No newline at end of file
diff --git a/docker/web-agent.dockerfile b/docker/web-agent.dockerfile
deleted file mode 100644
index 448041bd..00000000
--- a/docker/web-agent.dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-FROM streetcred/dotnet-indy:1.14.2 AS base
-WORKDIR /app
-
-FROM streetcred/dotnet-indy:1.14.2 AS build
-WORKDIR /src
-COPY [".", "."]
-
-WORKDIR /src/samples/aspnetcore
-RUN dotnet restore "WebAgent.csproj" \
- -s "https://api.nuget.org/v3/index.json"
-
-COPY ["samples/aspnetcore/", "."]
-COPY ["docker/docker_pool_genesis.txn", "./pool_genesis.txn"]
-RUN dotnet build "WebAgent.csproj" -c Release -o /app
-
-FROM build AS publish
-RUN dotnet publish "WebAgent.csproj" -c Release -o /app
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app .
-
-ENTRYPOINT ["dotnet", "WebAgent.dll"]
\ No newline at end of file
diff --git a/docs/Makefile b/docs/Makefile
deleted file mode 100644
index 298ea9e2..00000000
--- a/docs/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-SOURCEDIR = .
-BUILDDIR = _build
-
-# Put it first so that "make" without argument is like "make help".
-help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/docs/_static/custom.css b/docs/_static/custom.css
deleted file mode 100644
index 90ebe8fe..00000000
--- a/docs/_static/custom.css
+++ /dev/null
@@ -1,13 +0,0 @@
-.toggle .header {
- display: block;
- clear: both;
- cursor: pointer;
-}
-
-.toggle .header:after {
- content: " ▶";
-}
-
-.toggle .header.open:after {
- content: " ▼";
-}
\ No newline at end of file
diff --git a/docs/_static/images/choose_template.png b/docs/_static/images/choose_template.png
deleted file mode 100644
index 8b7c75f9..00000000
Binary files a/docs/_static/images/choose_template.png and /dev/null differ
diff --git a/docs/_static/images/configure_agent.png b/docs/_static/images/configure_agent.png
deleted file mode 100644
index 2d9daa99..00000000
Binary files a/docs/_static/images/configure_agent.png and /dev/null differ
diff --git a/docs/_static/images/target_framework.png b/docs/_static/images/target_framework.png
deleted file mode 100644
index 8f385f73..00000000
Binary files a/docs/_static/images/target_framework.png and /dev/null differ
diff --git a/docs/_templates/page.html b/docs/_templates/page.html
deleted file mode 100644
index 429a7ded..00000000
--- a/docs/_templates/page.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends "!page.html" %}
-
-{% block footer %}
-
-{% endblock %}
\ No newline at end of file
diff --git a/docs/aspnetcore.rst b/docs/aspnetcore.rst
deleted file mode 100644
index dda8234c..00000000
--- a/docs/aspnetcore.rst
+++ /dev/null
@@ -1,123 +0,0 @@
-********************************
-Agent services with ASP.NET Core
-********************************
-
-Installation
-============
-
-A package with extensions and default implementations for use with ASP.NET Core is available.
-
-Configure required services
-===========================
-
-Inside your ``Startup.cs`` fine in ``ConfigureServices(IServiceCollection services)`` use the extension methods to add all dependent services and optionally pass configuration data.
-
-.. code-block:: csharp
- :emphasize-lines: 4
-
- public void ConfigureServices(IServiceCollection services)
- {
- // other configuration
- services.AddAgent();
- }
-
-Configure options manually
---------------------------
-
-You can customize the wallet and pool configuration options using
-
-.. code-block:: csharp
-
- services.AddAgent(config =>
- {
- config.SetPoolOptions(new PoolOptions { GenesisFilename = Path.GetFullPath("pool_genesis.txn") });
- config.SetWalletOptions(new WalletOptions
- {
- WalletConfiguration = new WalletConfiguration { Id = "MyAgentWallet" },
- WalletCredentials = new WalletCredentials { Key = "SecretWalletEncryptionKeyPhrase" }
- });
- });
-
-Use options pattern
--------------------
-
-Alternatively, options be configured using APS.NET Core ``IOptions`` pattern.
-
-.. code-block:: csharp
-
- services.Configure(Configuration.GetSection("PoolOptions"));
- services.Configure(Configuration.GetSection("WalletOptions"));
-
-Set any fields you'd like to configure in your ``appsettings.json``.
-
-.. code-block:: xml
-
- {
- // config options
- "WalletOptions": {
- "WalletConfiguration": {
- "Id": "MyAgentWallet",
- "StorageConfiguration": { "Path": "[path to wallet storage]" }
- },
- "WalletCredentials": { "Key": "SecretWalletEncryptionKeyPhrase" }
- },
- "PoolOptions": {
- "GenesisFilename": "[path to genesis file]",
- "PoolName": "DefaultPool",
- "ProtocolVersion": 2
- }
- }
-
-Initialize agent middleware
-===========================
-
-In ``Configure(IApplicationBuilder app, IHostingEnvironment env)`` start the default agent middleware
-
-.. code-block:: csharp
- :emphasize-lines: 4
-
- public void Configure(IApplicationBuilder app, IHostingEnvironment env)
- {
- // Endpoint can be any address you'd like to bind to this middleware
- app.UseAgent("http://localhost:5000/agent");
-
- // .. other services like app.UseMvc()
- }
-
-The default agent middleware is a simple implementation. You can `create your middleware
-`_ and use that instead if you'd like to customize the message handling.
-
-.. code-block:: csharp
-
- app.UseAgent("http://localhost:5000/agent");
-
-See `AgentMiddleware.cs
-`_ for example implementation.
-
-.. tip:: In ASP.NET Core, the order of middleware registration is important, so you might want to add the agent middleware before any other middlewares, like MVC.
-
-Calling services from controllers
-=================================
-
-Use dependency injection to get a reference to each service in your controllers.
-
-.. code-block:: csharp
-
- public class HomeController : Controller
- {
- private readonly IConnectionService _connectionService;
- private readonly IWalletService _walletService;
- private readonly WalletOptions _walletOptions;
-
- public HomeController(
- IConnectionService connectionService,
- IWalletService walletService,
- IOptions walletOptions)
- {
- _connectionService = connectionService;
- _walletService = walletService;
- _walletOptions = walletOptions.Value;
- }
-
- // ...
- }
diff --git a/docs/conf.py b/docs/conf.py
deleted file mode 100644
index 5120ab65..00000000
--- a/docs/conf.py
+++ /dev/null
@@ -1,181 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Configuration file for the Sphinx documentation builder.
-#
-# This file does only contain a selection of the most common options. For a
-# full list see the documentation:
-# http://www.sphinx-doc.org/en/master/config
-
-# -- Path setup --------------------------------------------------------------
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
-
-
-# -- Project information -----------------------------------------------------
-
-project = u'Agent Framework'
-copyright = u'2018, Agent Framework'
-author = u'Agent Framework and contributors'
-
-# The short X.Y version
-version = u''
-# The full version, including alpha/beta/rc tags
-release = u'1.1.0'
-
-
-# -- General configuration ---------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
-]
-
-from recommonmark.parser import CommonMarkParser
-
-source_parsers = {
- '.md': CommonMarkParser,
-}
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
-#
-source_suffix = ['.rst', '.md']
-# source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This pattern also affects html_static_path and html_extra_path.
-exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store']
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = None
-
-def setup(app):
- app.add_stylesheet('custom.css')
-
-# -- Options for HTML output -------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-#
-html_theme = 'sphinx_rtd_theme'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#
-# html_theme_options = {}
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Custom sidebar templates, must be a dictionary that maps document names
-# to template names.
-#
-# The default sidebars (for documents that don't match any pattern) are
-# defined by theme itself. Builtin themes are using these templates by
-# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
-# 'searchbox.html']``.
-#
-# html_sidebars = {}
-
-
-# -- Options for HTMLHelp output ---------------------------------------------
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'AgentFrameworkdoc'
-
-
-# -- Options for LaTeX output ------------------------------------------------
-
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- #
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- #
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- #
- # 'preamble': '',
-
- # Latex figure (float) alignment
- #
- # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- (master_doc, 'AgentFramework.tex', u'Agent Framework Documentation',
- u'Agent Framework and contributors', 'manual'),
-]
-
-
-# -- Options for manual page output ------------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'agentframework', u'Agent Framework Documentation',
- [author], 1)
-]
-
-
-# -- Options for Texinfo output ----------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- (master_doc, 'AgentFramework', u'Agent Framework Documentation',
- author, 'AgentFramework', 'One line description of project.',
- 'Miscellaneous'),
-]
-
-
-# -- Options for Epub output -------------------------------------------------
-
-# Bibliographic Dublin Core info.
-epub_title = project
-
-# The unique identifier of the text. This can be a ISBN number
-# or the project homepage.
-#
-# epub_identifier = ''
-
-# A unique identification for the text.
-#
-# epub_uid = ''
-
-# A list of files that should not be packed into the epub file.
-epub_exclude_files = ['search.html']
\ No newline at end of file
diff --git a/docs/docker.rst b/docs/docker.rst
deleted file mode 100644
index bb5f854b..00000000
--- a/docs/docker.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-***********************************
-Hosting agents in docker containers
-***********************************
-
-Hosting agents in docker container is the easiest way to ensure your running environment has all dependencies required by the framework.
-We provide images with libindy and dotnet-sdk preinstalled.
-
-Usage
-=====
-
-.. code-block:: docker
- :name: Docker
-
- FROM streetcred/dotnet-indy:latest
-
-The images are based on `ubuntu:16.04`. You can check `the docker repo
-`_ if you want to build your own image or require specific version of .NET Core or libindy.
-
-Example build
-=============
-
-Check the `web agent docker file
-`_ for an example of building and running ASP.NET Core project inside docker container with libindy support.
\ No newline at end of file
diff --git a/docs/errors.rst b/docs/errors.rst
deleted file mode 100644
index b0a08dca..00000000
--- a/docs/errors.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-**************************
-Common Errors and Problems
-**************************
-
-System.DllNotFoundException
-===========================
-
-Problem
- Runtime exception thrown
-
-.. code-block:: bash
-
- System.DllNotFoundException : Unable to load shared library 'libindy' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(libsovtoken, 1): image not found
-
-Solution
- Missing static library. Check the installation section for guidance on how to add static libraries to your environment.
\ No newline at end of file
diff --git a/docs/gettingstarted.rst b/docs/gettingstarted.rst
deleted file mode 100644
index d5ff2c7a..00000000
--- a/docs/gettingstarted.rst
+++ /dev/null
@@ -1,332 +0,0 @@
-*********************
-Getting Started Guide
-*********************
-
-Creating a New Project
-+++++++++++++++++++++++++++++
-
-This getting started guide will show you how to create a custom AspNetCore web application and
-use the agent framework to create connections and send basic messages. We are going to start from scratch. All you need to have installed in Visual Studio and the .NET Core SDK.
-
-Prerequisites
-=====================================
-
-If you haven't already done so, install Visual Studio community and the .NET Core 2.2.300 SDK
- - `Install Visual Studio `_
- - `Install .NET Core SDK 2.2 `_
-
-You should be running an instance of Windows or MacOS for this particular demo.
-
----------------------
-
-Create an AspNetCore Project
-===============================
-
-Open Visual Studio and select new project, then choose Web Application (Model-View-Controller):
-
-.. image:: _static/images/choose_template.png
- :width: 500
-
-Select the .NET Core 2.2, then name your project WebAgent.
-
-.. image:: _static/images/configure_agent.png
- :width: 500
-
-----------------------
-
-Installing the Required Packages
-================================
-
-Use one of the three methods below to load the AgentFramework.Core packages into your project using nuget.
-
-**Package Manager CLI:**
-
-.. code-block:: bash
-
- Install-Package AgentFramework.Core -Source https://www.myget.org/F/agent-framework/api/v3/index.json -v 4.0.0-preview.662
-
-**.NET CLI:**
-
-.. code-block:: bash
-
- dotnet add package AgentFramework.Core -s https://www.myget.org/F/agent-framework/api/v3/index.json -v 4.0.0-preview.662
-
-NOTE: For these first two CLI options, make sure to install ``AgentFramework.AspNetCore`` and ``AgentFramework.Core.Handlers`` by replacing the package name above with these two names as well.
-
-**Visual Studio Nuget Package Manager:**
-
- - click on your new project WebAgent in the side bar
- - go to the project tab in your menu, select ``add nuget packages...``
- - click on the dropdown that says nuget.org, and select ``configure sources...``
- - click add, and then name the new source ``Agent Framework Beta`` and paste the url ``https://www.myget.org/F/agent-framework/api/v3/index.json`` into the location field.
- - check the ``show pre-release packages`` box on the bottom left
- - choose the ``Agent Framework Beta`` source from the dropdown
- - select the AgentFramework.AspNetCore package from the list. Make sure it is on a 4.0.0 version
- - click add.
-
- We will also use one other package from Nuget called ``Jdenticon``. Add that from the nuget.org repository list.
-
----------------
-
-Installing the libindy SDK on your computer
-===========================================
-
-Windows
-~~~~~~~
-
-You can download binaries of libindy and all dependencies from the `Sovrin repo
-`_. The dependencies are under ``deps`` folder and ``libindy`` under one of streams (rc, master, stable). There are two options to link the DLLs
-
-- Unzip all files in a directory and add that to your PATH variable (recommended for development)
-- Or copy all DLL files in the publish directory (recommended for published deployments)
-
-More details at the `Indy documentation for setting up Windows environment
-`_.
-
-MacOS
-~~~~~
-
-Check `Setup Indy SDK build environment for MacOS
-`_.
-
-Copy ``libindy.a`` and ``libindy.dylib`` to the ``/usr/local/lib/`` directory.
-
--------------------
-
-Configuring your own Agent
-==========================
-
-In this section, we'll walk through some sections of the WebAgent sample to understand how the AgentFramework can be used in a running application.
-
-The WebAgent sample was created using the same steps as listed above. It may help to follow along to the steps below in your own new project.
-However, you may want to also open and try to run the fully working WebAgent sample in Visual Studio first to see if all the dependancies are working as they should.
-When the project was created, ``Startup.cs`` and ``Program.cs`` files were built using a template. These control how your webserver starts. We will need to
-edit them to use the agent framework.
-
--------------------
-
-Startup.cs
-~~~~~~~~~~
-
-Our first goal is to edit the Startup file. Copy and paste the below code into your ``Startup.cs`` file:
-
-.. container:: toggle
-
- .. container:: header
-
- **Startup.cs (click to show/hide)**
-
- .. literalinclude:: ../samples/aspnetcore/Startup.cs
- :language: csharp
- :emphasize-lines: 32-41, 44-45, 64, 72
- :linenos:
-
-In this file, we congigure and add the Agent Framework to the project. If you are building the project from scratch,
-make sure to comment out lines 44-45 until you have created these services. Line 72 specifies how the API to trigger actions should be called.
--------------
-
-Program.cs
-~~~~~~~~~~
-
-Next, we will edit the ``Program.cs`` file. Copy and paste this code too:
-
-.. container:: toggle
-
- .. container:: header
-
- **Program.cs**
-
- .. literalinclude:: ../samples/aspnetcore/Program.cs
- :language: csharp
- :linenos:
-
-Once you have finished with this code, take a moment to look over the changes that we've made.
-
-----------------
-
-SimpleWebAgent.cs
-~~~~~~~~~~~~~~~~~
-Now create a file name ``SimpleWebAgent.cs`` in the main directory
-
-This file will inherit from the AgentBase class in the AgentFramework, and it extends the IAgent Interface.
-This interface includes only one function named ``TaskProcessAsync(IAgentContext context, MessageContext messageContext)``
-This will process any message that is sent to the agent's endpoint.
-
-Copy and paste the below code into the file:
-
-.. container:: toggle
-
- .. container:: header
-
- **SimpleWebAgent.cs (Click to show)**
-
-
- .. literalinclude:: ../samples/aspnetcore/SimpleWebAgent.cs
- :language: csharp
- :linenos:
-
------------
-
-bundleconfig.json
-~~~~~~~~~~~~~~~~~
-
-Create a bundleconfig.json file in your project root directory, and paste this json array into to it:
-
-.. container:: toggle
-
- .. container:: header
-
- **bundleconfig.json**
-
- .. literalinclude:: ../samples/aspnetcore/bundleconfig.json
- :language: javascript
- :linenos:
-
--------------------------
-
-launchSettings.json
-~~~~~~~~~~~~~~~~~~~
-
-Edit the ``Property/launchSettings.json``
-
-.. container:: toggle
-
- .. container:: header
-
- **launchSettings.json**
-
- .. literalinclude:: ../samples/aspnetcore/Properties/launchSettings.json
- :language: javascript
- :linenos:
-
-Finally, to get this program to run we will need to add a couple of utility files.
-
-First, add a Utils folder. Add these two files to the Utils folder (Open these links in new tabs):
-
-`NameGenerator.cs `_
-`Extensions.cs `_
-
-
---------------
-
-Click run, you should see your template home page will appear in your web browser at http://localhost:5000. Congratulations! You've successully included the Agent framework into your project. Continue on to see how you might use it in your project.
-
-
-WebAgent Walkthrough
-+++++++++++++++++++++
-
-We will learn how to create a web agent in this section. If you have created your own agent, you should be able to use that here. You may want to download the `View files `_ and import them into your project to save time on copy/paste:
-We're assuming that you are already familiar with the high level concepts of Indy and Sovrin.
-
-The first thing is to understand about Wallets. Read about wallets here:
-**Insert link/paragraphs about wallet infra based on hipe:** `Wallet HIPE `_
-
------------
-
-Opening a wallet in Agent Framework
-====================================
-
-We open a wallet in Agent Framework by provisioning an agent. This process of provisioning
-agents will create and configure an agent wallet and initialize the agent configuration.
-The framework will generate a random Did and Verkey, unless you specify ``AgentSeed``
-which is used if you need determinism. Length of seed must be 32 characters.
-
-.. code-block:: csharp
-
- await _provisioningService.ProvisionAgentAsync(
- new ProvisioningConfiguration
- {
- EndpointUri = "http://localhost:5000",
- OwnerName = "My Agent"
- });
-
-We provision this agent in the ``Startup.cs`` file by building it directly with the AgentBuilder
-
-.. container:: toggle
-
- .. container:: header
-
- **HomeController.cs (Show)**
-
- .. literalinclude:: ../samples/aspnetcore/Startup.cs
- :language: csharp
- :emphasize-lines: 32-41
- :linenos:
-
-You now have a functioning wallet in your agent, ready to store all your secrets.
-
------------------
-
-The Agent framework abstracts the main workflows of Indy into a state machine. For our agent, we will show how to create and receive invitations with other people.
-Although simple, it builds the foundation for all other potential agent communications like credentials and proofs.
-
-TODO: Basic message and routing info
-
-Connections
-==============
-
-Every connection is a unique relationship with another agent. The Agent Framework represents this relationship with a ``ConnectionRecord``, this entity describes the pairwise relationship with another party.
-The states for this record are:
-
-- ``Invited`` - initially, when creating invitations to connect, the record will be set to this state.
-- ``Negotating`` - set after accepting an invitation and sending a request to connect
-- ``Connected`` - set when both parties have acknowledged the connection and have a pairwise record of each others DID's
-
-For us to send basic messages back and forth, we will first need to establish that protocol. We will walk through how a message is processed in the WebAgent.
-
-First, we need to define the basic message structure in the Protocols folder. These are all child classes of the AgentMessage class that is in the AgentFramework.
-
-.. container:: toggle
-
- .. container:: header
-
- **AgentMessage.cs (Show)**
-
- .. literalinclude:: ../src/AgentFramework.Core/Messages/AgentMessage.cs
- :language: c#
- :linenos:
-
-The BasicMessage uses the AgentMessage attributes as shown in the class above but adds "content" and "sent_time" attributes as well. This will allow something like text messages to be sent between agents.
-
-.. container:: toggle
-
- .. container:: header
-
- **BasicMessage.cs (Show)**
-
- .. literalinclude:: ../samples/aspnetcore/Protocols/BasicMessage/BasicMessage.cs
- :language: csharp
- :emphasize-lines: 16-20
- :linenos:
-
-When your agent receives a message, it gets put directly into the wallet by the basic message handler.
-
-.. container:: toggle
-
- .. container:: header
-
- **BasicMessageHandler.cs (Show)**
-
- .. literalinclude:: ../samples/aspnetcore/Protocols/BasicMessage/BasicMessageHandler.cs
- :language: csharp
- :emphasize-lines: 22-29
- :linenos:
-
-Then when the view is reloaded, the Controller class takes over.
-
-This is following the MVC pattern of ASPNetCore.
-
-Here is the ConnectionsController class that will show a BasicMessage if one is sent or received:
-
-.. container:: toggle
-
- .. container:: header
-
- **ConnectionsController.cs (Show)**
-
- .. literalinclude:: ../samples/aspnetcore/Controllers/ConnectionsController.cs
- :language: csharp
- :emphasize-lines: 133, 153
- :linenos:
-
-Read through the rest of the ConnectionsController class to understand how the Agent Framework can be used to implement the other website features.
diff --git a/docs/index.rst b/docs/index.rst
deleted file mode 100644
index 44baf961..00000000
--- a/docs/index.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-
-*******************************************
-Welcome to Agent Framework's documentation!
-*******************************************
-
-AgentFramework is a .NET Core library for building Sovrin interoperable agent services.
-It is an abstraction on top of Indy SDK that provides a set of API's for building Indy Agents.
-The framework runs on any .NET Standard target, including ASP.NET Core and Xamarin.
-
-.. toctree::
- :maxdepth: 2
- :caption: Initial Setup
-
- installation
-
-.. toctree::
- :maxdepth: 2
- :caption: Framework Model
-
- quickstart
- payments
-
-.. toctree::
- :maxdepth: 2
- :caption: Deployment Strategies
-
- xamarin
- aspnetcore
- docker
-
-.. toctree::
- :maxdepth: 2
- :caption: Example Agents
-
- gettingstarted
- samples
-
-.. toctree::
- :maxdepth: 2
- :caption: Common Errors
-
- errors
diff --git a/docs/installation.rst b/docs/installation.rst
deleted file mode 100644
index 74572d97..00000000
--- a/docs/installation.rst
+++ /dev/null
@@ -1,79 +0,0 @@
-
-******************************
-Installation and configuration
-******************************
-
-Using NuGet
-===========
-
-To use the agent framework in your project, add the nuget packages.
-
-If using the package manager:
-
-.. code-block:: bash
-
- Install-Package AgentFramework.Core -Source https://www.myget.org/F/agent-framework/api/v3/index.json
-
-If using the .NET CLI:
-
-.. code-block:: bash
-
- dotnet add package AgentFramework.Core -s https://www.myget.org/F/agent-framework/api/v3/index.json
-
-Available packages:
-
-- ``AgentFramework.Core`` - core framework package
-- ``AgentFramework.AspNetCore`` - simple middleware and service extensions to easily configure and run an agent
-- ``AgentFramework.Core.Handlers`` - provides a framework for registering custom message handlers and extending the agent functionality
-
-
-The framework will be moved to nuget.org soon. For the time being, stable and pre-release packages are available at ``https://www.myget.org/F/agent-framework/api/v3/index.json``.
-You can add `nuget.config
-`_ anywhere in your project path with the myget.org repo.
-
-.. code-block:: xml
-
-
-
-
-
-
-
-
-
-Setting up development environment
-==================================
-
-Agent Framework uses Indy SDK wrapper for .NET which requires platform specific native libraries of libindy to be available in the running environment.
-Check the `Indy SDK project page
-`_ for details on installing libindy for different platforms or read the brief instructions below.
-
-Make sure you have `.NET Core SDK
-`_ installed for your platform.
-
-Windows
--------
-
-You can download binaries of libindy and all dependencies from the `Sovrin repo
-`_. The dependencies are under ``deps`` folder and ``libindy`` under one of streams (rc, master, stable). There are two options to link the DLLs
-
-- Unzip all files in a directory and add that to your PATH variable (recommended for development)
-- Or copy all DLL files in the publish directory (recommended for published deployments)
-
-More details at the `Indy documentation for setting up Windows environment
-`_.
-
-MacOS
------
-
-Check `Setup Indy SDK build environment for MacOS
-`_.
-
-Copy ``libindy.a`` and ``libindy.dylib`` to the ``/usr/local/lib/`` directory.
-
-Linux
------
-
-Build instructions for `Ubuntu based distros
-`_ and `RHEL based distros
-`_.
\ No newline at end of file
diff --git a/docs/make.bat b/docs/make.bat
deleted file mode 100644
index 27f573b8..00000000
--- a/docs/make.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-@ECHO OFF
-
-pushd %~dp0
-
-REM Command file for Sphinx documentation
-
-if "%SPHINXBUILD%" == "" (
- set SPHINXBUILD=sphinx-build
-)
-set SOURCEDIR=.
-set BUILDDIR=_build
-
-if "%1" == "" goto help
-
-%SPHINXBUILD% >NUL 2>NUL
-if errorlevel 9009 (
- echo.
- echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
- echo.installed, then set the SPHINXBUILD environment variable to point
- echo.to the full path of the 'sphinx-build' executable. Alternatively you
- echo.may add the Sphinx directory to PATH.
- echo.
- echo.If you don't have Sphinx installed, grab it from
- echo.http://sphinx-doc.org/
- exit /b 1
-)
-
-%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
-goto end
-
-:help
-%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
-
-:end
-popd
diff --git a/docs/payments.rst b/docs/payments.rst
deleted file mode 100644
index e4828ca9..00000000
--- a/docs/payments.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-********
-Payments
-********
-
-Payments are a core feature of the framework and are implemented as optional module.
-Working with payments requires an implementation of the ``IPaymentService`` for that specific payment method. Currently, there's support for Sovrin Token payments.
-
-Installation
-============
-
-Packages supporting Sovrin Token payments can be found on nuget.org
-
-**Package Manager CLI:**
-
-.. code-block:: bash
-
- Install-Package AgentFramework.Payments.SovrinToken
-
-**.NET CLI:**
-
-.. code-block:: bash
-
- dotnet add package AgentFramework.Payments.SovrinToken
-
-Add libsovtoken static library
-------------------------------
-
-
-Configuration
-=============
-
-Records and services
-====================
-
-Working with payments
-=====================
-
-Create and set default payment address
---------------------------------------
-
-Check balance at address
-------------------------
-
-Attaching payments to agent messages
-------------------------------------
-
-Making payments
----------------
-
-Attaching payment receipt to agent messages
--------------------------------------------
-
-Using libnullpay for development
-================================
\ No newline at end of file
diff --git a/docs/quickstart.rst b/docs/quickstart.rst
deleted file mode 100644
index b1f46fcf..00000000
--- a/docs/quickstart.rst
+++ /dev/null
@@ -1,270 +0,0 @@
-******************************
-Configuration and provisioning
-******************************
-
-Services overview
-=================
-
-- ``IProvisioningService`` - used to provision new agents and access the provisioning configuration that contains endpoint data, ownership info, service endpoints, etc.
-- ``IConnectionService`` - manage connection records, create and accept invitations
-- ``ICredentialService`` - manage credential records, create offer, issue, revoke and store credentials
-- ``IProofService`` - send proof requests, provide and verify proofs
-- ``IWalletRecordService`` - utility service used to manage custom application records that are stored in the wallet
-- ``ISchemaService`` - create and manage schemas and credential definitions
-
-Dependency injection
-====================
-
-When using ASP.NET Core, you can use the extension methods to configure the agent. This will add all required dependencies to the service provider.
-Additionally, the AgentFramework depends on the Logging extensions. These need to be added as well.
-
-If using other tool, you will have to add each required service or message handler manually.
-
-Example if using Autofac
-
-.. code-block:: csharp
-
- // .NET Core dependency collection
- var services = new ServiceCollection();
- services.AddLogging();
-
- // Autofac builder
- var builder = new ContainerBuilder();
-
- // Register all required services
- builder.RegisterAssemblyTypes(typeof(IProvisioningService).Assembly)
- .Where(x => x.Namespace.StartsWith("AgentFramework.Core.Runtime",
- StringComparison.InvariantCulture))
- .AsImplementedInterfaces()
- .SingleInstance();
-
- // If using message handler package, you can add all handlers
- builder.RegisterAssemblyTypes(typeof(IMessageHandler).Assembly)
- .Where(x => x.IsClass && x is IMessageHandler)
- .AsSelf()
- .SingleInstance();
-
- builder.Populate(services);
-
-Check the `Xamarin Sample
-`_ for example registration.
-
-Provisioning an Agent
-=====================
-
-The process of provisioning agents will create and configure an agent wallet and initialize the agent configuration.
-The framework will generate a random Did and Verkey, unless you specify ``AgentSeed`` which is used if you need determinism.
-Length of seed must be 32 characters.
-
-.. code-block:: csharp
-
- await _provisioningService.ProvisionAgentAsync(
- new ProvisioningConfiguration
- {
- EndpointUri = "http://localhost:5000",
- OwnerName = "My Agent"
- });
-
-Check the `ProvisioningConfiguration.cs
-`_
-for full configuration details. You can retrieve the generated details like agent Did and Verkey using
-
-.. code-block:: csharp
-
- var provisioning = await _provisioningService.GetProvisioningAsync(wallet);
-
-Trust Anchor requirement
-------------------------
-
-If an agent is intended to act as an issuer, i.e. be able to issue credentials, their DID must be registered on the ledger with the `TRUST_ANCHOR` role.
-Additionally, when provisioning the agent, set the ``ProvisioningConfiguration.CreateIssuer`` propety to true. If you already have a seed for creating the issuer DID
-set the ``ProvisioningConfiguration.IssuerSeed`` to that value. Otherwise, a random DID will be generated. This DID must be added to the ledger as `TRUST_ANCHOR`.
-
-.. tip:: If you are using the development indy node docker image, use ``000000000000000000000000Steward1`` as issuer seed. This will create a DID that has all required permissions.
-
-***************
-Agent Workflows
-***************
-
-Before you begin reading any of the topics below, please familiarize youself with the core principles behind Hyperledger Indy.
-We suggest that you go over the `Indy SDK Getting Started Guide
-`_.
-
-Models and states
-=================
-
-The framework abstracts the main workflows of Indy into a state machine model.
-The following models and states are defined:
-
-Connections
------------
-
-Represented with a ``ConnectionRecord``, this entity describes the pairwise relationship with another party.
-The states for this record are:
-
-- ``Invited`` - initially, when creating invitations to connect, the record will be set to this state.
-- ``Negotating`` - set after accepting an invitation and sending a request to connect
-- ``Connected`` - set when both parties have acknowledged the connection and have a pairwise record of each others DID's
-
-Credentials
------------
-
-Represented wih a ``CredentialRecord``, this entity holds a reference to issued credential.
-While only the party to whom this credential was issued will have the actual credential in their wallet, both the issuer and the holder will
-have a CredentialRecord with the associated status for their reference. Credential states:
-
-- ``Offered`` - initial state, when an offer is sent to the holder
-- ``Requested`` - the holder has sent a credential request to the issuer
-- ``Issued`` - the issuer accepted the credential request and issued a credential
-- ``Rejected`` - the issuer rejected the credential request
-- ``Revoked`` - the issuer revoked a previously issued credential
-
-Proofs
-------
-
-Represented with a ``ProofRecord``, this entity references a proof flow between the holder and verifier. The ``ProofRecord`` contains
-information about the proof request as well as the disclosed proof by the holder. Proof states:
-
-- ``Requested`` - initial state when the verifier sends a proof request
-- ``Accepted`` - the holder has provided a proof
-- ``Rejected`` - the holder rejected providing proof for the request
-
-Schemas and definitions
-=======================
-
-Before an issuer can create credentials, they need to register a credential definition for them on the ledger.
-Credential definition requires a schema, which can also be registered by the same issuer or it can already be
-present on the ledger.
-
-.. code-block:: csharp
-
- // creates new schema and registers the schema on the ledger
- var schemaId = await _schemaService.CreateSchemaAsync(
- _pool, _wallet, "My-Schema", "1.0", new[] { "FirstName", "LastName", "Email" });
-
- // to lookup an existing schema on the ledger
- var schemaJson = await _schemaService.LookupSchemaAsync(_pool, schemaId);
-
-Once a ``schemaId`` has been established, an issuer can send their credential definition on the ledger.
-
-.. code-block:: csharp
-
- var definitionId = await _schemaService.CreateCredentialDefinitionAsync(_pool, _wallet,
- schemaId, supportsRevocation: true, maxCredentialCount: 100);
-
-The above code will create ``SchemaRecord`` and ``DefinitionRecord`` in the issuer wallet that can be looked up using the
-``ISchemaService``.
-
-.. warning:: Creating schemas and definition requires an issuer. See the `Trust Anchor requirement`_ above.
-
-To retrieve all schemas or definitions registered with this agent, use:
-
-.. code-block:: csharp
-
- var schemas = await _schemaService.ListSchemasAsync(_wallet);
- var definitions = await _schemaService.ListCredentialDefinitionsAsync(_wallet);
-
- // To get a single record
- var definition = await _schemaService.GetCredentialDefinitionAsync(wallet, definitionId);
-
-Establishing secure connection
-==============================
-
-Before two parties can exchange agent messages, a secure connection must be established between them. The agent connection workflow defines this handshake process by exchanging a connection request/response message.
-
-Sending invitations
--------------------
-
-Connection invitations are exchanged over a previously established trusted protocol such as email, QR code, deep link, etc. When Alice wants to establish a connection to Bob, she can create an invitation:
-
-.. code-block:: csharp
-
- // Alice creates an invitation
- var invitation = await connectionService.CreateInvitationAsync(aliceWallet);
-
-She sends this invitation to Bob using the above described methods.
-
-Negotating connection
----------------------
-
-Once Bob received the invitation from Alice, they can accept that invitation and initiate the negotiation process
-
-.. code-block:: csharp
-
- // Bob accepts invitation and sends a message request
- await connectionService.AcceptInvitationAsync(bobWallet, invitation);
-
-If you are using the default message handlers, no other step in needed - connection between Alice and Bob has been established. Use ``IConnectionService.ListAsync`` to fetch the connection records.
-Established connections will have the ``State`` property set to ``Connected``.
-
-.. tip:: If you decide to use custom handlers and want more control over the negotiation process, the connection service provides methods to work with the connections message flows, such as processing and accepting requests/responses.
- A full step by step code is available in the `unit tests project
- `_ in ``EstablishConnectionAsync``.
-
-Credential issuance
-===================
-
-An issuer may use the ``ICredentialService`` to issue new credentials. A credential issuance starts with a credential offer.
-
-.. code-block:: csharp
-
- var offerConfig = new OfferConfiguration()
- {
- // the id of the connection record to which this offer will be sent
- ConnectionId = connectionId,
- CredentialDefinitionId = definitionId
- };
-
- // Send an offer to the holder using the established connection channel
- var credentialRecordId = await credentialService.SendOfferAsync(issuerWallet, offerConfig);
-
-When credential offer is sent, new ``CredentialRecord`` will be created and it's state set to ``Offered``. You can list all credential records using
-
-.. code-block:: csharp
-
- var credentials = await credentialService.ListAsync();
-
-Issuing credential
-------------------
-
-.. code-block:: csharp
-
- var values = new Dictionary
- {
- {"FirstName", "Jane"},
- {"LastName", "Doe"},
- {"Email", "no@spam"}
- };
-
- // Issuer accepts the credential requests and issues a credential
- await credentialService.IssueCredentialAsync(pool, issuerWallet, credentialRecordId, values);
-
-An issuer can issue a credential only if the credential record state is ``Requested``. This means that the holder has accepted the offer
-and sent back a credential request message.
-
-Storing issued credential
--------------------------
-
-If using the default handlers, once a credential has been issued and received by the holder's agent, it will be automatically stored and available in the wallet.
-
-Revocation
-----------
-
-If the credential definition supports revocation (can only be set when creating the definition), an issuer may decide to revoke a credential.
-
-.. code-block:: csharp
-
- // Revokes a credential, updates the tails file and sends the delta to the ledger
- await credentialService.RevokeCredentialAsync(pool, wallet, credentialRecordId)
-
-Proof verification
-==================
-
-Proof requests
---------------
-
-Preparing proof
----------------
-
-Verification
-------------
\ No newline at end of file
diff --git a/docs/samples.rst b/docs/samples.rst
deleted file mode 100644
index 9356b9ec..00000000
--- a/docs/samples.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-*******
-Samples
-*******
-
-ASP.NET Core Agents
-===================
-
-A sample agent running in ASP.NET Core that runs the default agent middleware can be found in `samples/aspnetcore
-`_. This agent is also used in the Docker sample.
-
-.. code-block:: bash
-
- dotnet run --project samples/aspnetcore/WebAgent.csproj
-
-Running multiple instances
---------------------------
-
-To run multiple agent instances that can communicate, you can specify the binding address and port by setting the ``ASPNETCORE_URLS`` environment variable
-
-.. code-block:: bash
-
- # Unix/Mac:
- ASPNETCORE_URLS="http://localhost:5001" dotnet run --no-launch-profile --project samples/aspnetcore/WebAgent.csproj
-
- # Windows PowerShell:
- $env:ASPNETCORE_URLS="http://localhost:5001" ; dotnet run --no-launch-profile --project samples/aspnetcore/WebAgent.csproj
-
- # Windows CMD (note: no quotes):
- SET ASPNETCORE_URLS=http://localhost:5001 && dotnet run --no-launch-profile --project samples/aspnetcore/WebAgent.csproj
-
-.. note:: The sample web agent doesn't use any functionality that requires a local indy node, but if you'd like to
- extend the sample and test interaction with the ledger, you can run a local node using the instructions below.
-
-Run a local Indy node with Docker
----------------------------------
-
-The repo contains a docker image that can be used to run a local pool with 4 nodes.
-
-.. code-block:: bash
-
- docker build -f docker/indy-pool.dockerfile -t indy_pool .
- docker run -itd -p 9701-9709:9701-9709 indy_pool
-
-Mobile Agent with Xamarin Forms
-===============================
-
-
-
-Docker container example
-========================
-
-Running the example
--------------------
-
-At the root of the repo run:
-
-.. code-block:: bash
-
- docker-compose up
-
-This will create an agent network with a pool and two identical agents able to communicate with each other in the network.
-Navigate to http://localhost:7000/ and http://localhost:8000/ to create and accept connection invitations between the different agents.
-
-Running the unit tests
-----------------------
-
-.. code-block:: bash
-
- docker-compose -f docker-compose.test.yaml up --build --remove-orphans --abort-on-container-exit --exit-code-from test-agent
-
-Note: You may need to cleanup previous docker network created using `docker network prune`
diff --git a/docs/xamarin.rst b/docs/xamarin.rst
deleted file mode 100644
index cc7cd885..00000000
--- a/docs/xamarin.rst
+++ /dev/null
@@ -1,204 +0,0 @@
-**************************
-Mobile Agents with Xamarin
-**************************
-
-Using Indy with Xamarin
-=======================
-
-When working with Xamarin, we can fully leverage the offical `Indy wrapper for dotnet`_, since the package is fully compatible with Xamarin runtime. The wrapper uses ``DllImport`` to invoke the native Indy library which exposes all functionality as C callable functions.
-In order to make the library work in Xamarin, we need to make `libindy` available for Android and iOS, which requires bundling static libraries of libindy and it's dependencies built for each platform.
-
-.. _`Indy wrapper for dotnet`: https://github.com/hyperledger/indy-sdk/tree/master/wrappers/dotnet
-
-Instructions for Android
-========================
-
-To setup Indy on Android you need to add the native libindy references and dependencies. The process is described in detail at the official Xamarin documentation `Using Native Libraries with Xamarin.Android`_.
-
-.. _`Using Native Libraries with Xamarin.Android`: https://docs.microsoft.com/en-us/xamarin/android/platform/native-libraries
-
-Below are a few additional things that are not covered by the documentation that are Indy specific.
-
-Download static libraries
--------------------------
-
-- Sovrin repo - https://repo.sovrin.org/android/libindy/
-
-For Android the entire library and its dependencies are compiled into a single shared object (libindy.so). In order for ``libindy.so`` to be executable we must also include ``libc++_shared.so``.
-
-.. note:: You can find ``libc++_shared.so`` in your ``android-ndk`` installation directory under ``\sources\cxx-stl\llvm-libc++\libs``.
-
-.. note:: libindy versions < 1.12.0 were compiled using GCC and require ``libgnustl_shared.so`` instead of ``libc++_shared.so```. This is available in Android NDK versions < 18.
-
-Depending on the target abi(s) for the resulting app, not all of the artifacts need to be included, for ease of use below we document including all abi(s).
-
-Setup native references
-----------------------------
-
-In Visual Studio (for Windows or Mac) create new Xamarin Android project. If you want to use Xamarin Forms, the instructions are the same. Apply the changes to your Android project in Xamarin Forms.
-
-The required files can be added via your IDE by clicking Add-Item and setting the build action to ``AndroidNativeLibrary``. However when dealing with multiple ABI targets it is easier to manually add the references via the android projects .csproj. Note - if the path contains the abi i.e `..\x86\library.so` then the build process automatically infers the target ABI.
-
-If you are adding all the target ABI's to you android project add the following snippet to your .csproj.
-
-.. code-block:: xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. note:: Paths listed above will vary project to project.
-
-Load runtime dependencies
--------------------------
-
-Load these dependencies at runtime. To do this add the following to your MainActivity.cs
-
-.. code-block:: csharp
-
- JavaSystem.LoadLibrary("c++_shared");
- JavaSystem.LoadLibrary("indy");
-
-Setup Android permissions
--------------------------
-
-In order to use most of libindy's functionality, the following permissions must be granted to your app, you can do this by adjusting your AndroidManifest.xml, located under properties in your project.
-
-.. code-block:: xml
-
-
-
-
-
-If you are running your android app at API level 23 and above, these permissions also must be requested at runtime, in order to do this add the following to your MainActivity.cs
-
-.. code-block:: csharp
-
- if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
- {
- RequestPermissions(new[] { Manifest.Permission.ReadExternalStorage }, 10);
- RequestPermissions(new[] { Manifest.Permission.WriteExternalStorage }, 10);
- RequestPermissions(new[] { Manifest.Permission.Internet }, 10);
- }
-
-Instructions for iOS
-====================
-
-To setup Indy on iOS you need to add the native libindy references and dependencies.
-The process is described in detail at the official Xamarin documentation `Native References in iOS, Mac, and Bindings Projects
-`_.
-
-Below are a few additional things that are not covered by the documentation that are Indy specific.
-
-Download static libraries
--------------------------
-
-In order to enable the Indy SDK package to recognize the `DllImport` calls to the native static libraries, we need to include them in our solution.
-
-These includes the following static libraries:
-
-- libindy.a
-- libssl.a
-- libsodium.a
-- libcrypto.a
-- libzmq.a
-
-Pre-built libraries
-```````````````````
-
-Can be found in the `iOS sample project
-`_.
-
-Build your own libs
-```````````````````
-
-The Indy team doesn't provide static libraries for all of the dependencies for iOS.
-Here are some helpful instructions on building the dependencies for iOS should you decide to build your own.
-
-- `Open SSL for iOS`_
-- `Build ZeroMQ library`_
-- `libsodium script of iOS`_
-
-.. _`Open SSL for iOS`: https://github.com/x2on/OpenSSL-for-iPhone
-
-.. _`Build ZeroMQ library`: https://www.ics.com/blog/lets-build-zeromq-library
-
-.. _`libsodium script of iOS`: https://github.com/jedisct1/libsodium/blob/master/dist-build/ios.sh
-
-The above links should help you build the 4 static libraries that libindy depends on. To build libindy for iOS, check out the offical Indy SDK repo or [download the library from the Sovrin repo](https://repo.sovrin.org/ios/libindy/).
-
-Setup native references
------------------------
-
-In Visual Studio (for Windows or Mac) create new Xamarin iOS project. If you want to use Xamarin Forms, the instructions are the same. Apply the changes to your iOS project in Xamarin Forms.
-
-Add each library as native reference, either by right clicking the project and Add Native Reference, or add them directly in the project file.
-
-.. note:: Make sure libraries are set to ``Static`` in the properties window and ``Is C++`` is selected for ``libzmq.a`` only.
-
-The final project file should look like this (paths will vary per project):
-
-.. code-block:: xml
-
-
-
- Static
-
-
- Static
-
-
- Static
-
-
- Static
- True
-
-
- Static
-
-
-
-Update MTouch arguments
------------------------
-
-In your project options under `iOS Build` add the following to `Additional mtouch arguments`
-
-.. code-block:: bash
-
- -gcc_flags -dead_strip -v
-
-If you prefer to add them directly in the project file, add the following line:
-
-.. code-block:: xml
-
- -gcc_flags -dead_strip -v
-
-.. warning:: This step is mandatory, otherwise you won't be able to build the project.
- It prevents linking unused symbols in the static libraries. Make sure you add these arguments for all configurations. See `example project file
- `_.
-
-Install NuGet packages
-----------------------
-
-Install the Nuget packages for Indy SDK and/or Agent Framework and build your solution. Everything should work and run just fine.
-
-.. code-block:: bash
-
- dotnet add package AgentFramework.Core --source https://www.myget.org/F/agent-framework/api/v3/index.json
-
-----
-
-If you run into any errors or need help setting up, please open an issue in this repo.
-
-Finally, check the `Xamarin Sample
-`_ we have included for a fully configured project.
diff --git a/legacy/Directory.Build.props b/legacy/Directory.Build.props
new file mode 100644
index 00000000..df8c71ab
--- /dev/null
+++ b/legacy/Directory.Build.props
@@ -0,0 +1,49 @@
+
+
+ $(NoWarn);CS0612;CS0618;NU1902
+ 0
+
+
+
+ <_LegacyRefs Include="@(ProjectReference)" Condition="$([System.String]::Copy('%(ProjectReference.Identity)').ToLowerInvariant()).Contains('/legacy/') or
+ $([System.String]::Copy('%(ProjectReference.Identity)').ToLowerInvariant()).Contains('\legacy\')" />
+
+
+
+
+ 2.2.0
+ 2.2.0
+ 2.2.2
+ 3.0.0
+ 3.1.5
+ 3.1.5
+ 3.1.5
+ 16.6.1
+ 4.4.1
+ 4.7.2
+ 6.0.0
+ 1.12.0
+ 5.10.3
+ 9.2.0
+ 9.2.0
+ 2.8.2
+ 2.0.1
+ 0.4.2-alpha
+ 8.0.1
+ 8.0.2
+ 4.0.0
+ 4.14.5
+ 2.0.2
+ 13.0.1
+ 4.7.2
+ 8.5.0
+ 5.1.2
+ 5.5.1
+ 5.1.2
+ 5.5.1
+ 5.5.1
+ 5.5.1
+ 2.4.2
+ 2.7.0
+
+
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/.editorconfig b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/.editorconfig
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/.editorconfig
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/.editorconfig
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/AssemblyAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/AssemblyAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/AssemblyAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/AssemblyAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseApiRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseApiRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseApiRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseApiRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/FeatureAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/FeatureAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/FeatureAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/FeatureAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/FeatureAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/FeatureAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/FeatureAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/FeatureAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/_._ b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/_._
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/FeatureAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/FeatureAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/FeatureAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/FeatureAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/FeatureAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/FeatureAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/FeatureAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/FeatureAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Infrastructure/InternalsVisibleToClientAndServer.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Infrastructure/InternalsVisibleToClientAndServer.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Infrastructure/InternalsVisibleToClientAndServer.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Infrastructure/InternalsVisibleToClientAndServer.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Introduction/_._ b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Introduction/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Introduction/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Introduction/_._
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/FeatureAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/FeatureAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/FeatureAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/FeatureAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Ledger/_._ b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Ledger/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Ledger/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Ledger/_._
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/FeatureAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/FeatureAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/FeatureAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/FeatureAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Revocation/_._ b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Revocation/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Revocation/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Revocation/_._
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/FeatureAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/FeatureAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/FeatureAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/FeatureAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/TrustPing/_._ b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/TrustPing/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/TrustPing/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/TrustPing/_._
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/FeatureAnnotations.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/FeatureAnnotations.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/FeatureAnnotations.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/FeatureAnnotations.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequest.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequest.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequest.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequestValidator.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequestValidator.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequestValidator.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequestValidator.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletResponse.cs b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletResponse.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletResponse.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletResponse.cs
diff --git a/src/Hyperledger.Aries.AspNetCore.Contracts/Hyperledger.Aries.AspNetCore.Contracts.csproj b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Hyperledger.Aries.AspNetCore.Contracts.csproj
similarity index 89%
rename from src/Hyperledger.Aries.AspNetCore.Contracts/Hyperledger.Aries.AspNetCore.Contracts.csproj
rename to legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Hyperledger.Aries.AspNetCore.Contracts.csproj
index 9ce251b2..d0e4ddd2 100644
--- a/src/Hyperledger.Aries.AspNetCore.Contracts/Hyperledger.Aries.AspNetCore.Contracts.csproj
+++ b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/Hyperledger.Aries.AspNetCore.Contracts.csproj
@@ -28,4 +28,8 @@
+
+
+
+
diff --git a/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/buildTransitive/Legacy.Deprecated.targets b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/buildTransitive/Legacy.Deprecated.targets
new file mode 100644
index 00000000..76510c8b
--- /dev/null
+++ b/legacy/src/Hyperledger.Aries.AspNetCore.Contracts/buildTransitive/Legacy.Deprecated.targets
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/src/Hyperledger.Aries.AspNetCore/.editorconfig b/legacy/src/Hyperledger.Aries.AspNetCore/.editorconfig
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/.editorconfig
rename to legacy/src/Hyperledger.Aries.AspNetCore/.editorconfig
diff --git a/src/Hyperledger.Aries.AspNetCore/AgentMiddleware.cs b/legacy/src/Hyperledger.Aries.AspNetCore/AgentMiddleware.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/AgentMiddleware.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/AgentMiddleware.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Extensions/ApplicationBuilderExtensions.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Extensions/ApplicationBuilderExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Extensions/ApplicationBuilderExtensions.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Extensions/ApplicationBuilderExtensions.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Extensions/AriesOpenApiOptions.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Extensions/AriesOpenApiOptions.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Extensions/AriesOpenApiOptions.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Extensions/AriesOpenApiOptions.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Extensions/MvcBuilderExtensions.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Extensions/MvcBuilderExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Extensions/MvcBuilderExtensions.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Extensions/MvcBuilderExtensions.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Base/BaseEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseError.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseError.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Base/BaseError.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseError.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseException.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseException.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Base/BaseException.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Base/BaseException.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Introduction/_._ b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Introduction/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Introduction/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Introduction/_._
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Ledger/_._ b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Ledger/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Ledger/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Ledger/_._
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestsHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestsHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestsHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestsHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Revocation/_._ b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Revocation/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Revocation/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Revocation/_._
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/TrustPing/_._ b/legacy/src/Hyperledger.Aries.AspNetCore/Features/TrustPing/_._
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/TrustPing/_._
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/TrustPing/_._
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletEndpoint.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletEndpoint.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletEndpoint.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletHandler.cs b/legacy/src/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletHandler.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletHandler.cs
diff --git a/src/Hyperledger.Aries.AspNetCore/Hyperledger.Aries.AspNetCore.csproj b/legacy/src/Hyperledger.Aries.AspNetCore/Hyperledger.Aries.AspNetCore.csproj
similarity index 92%
rename from src/Hyperledger.Aries.AspNetCore/Hyperledger.Aries.AspNetCore.csproj
rename to legacy/src/Hyperledger.Aries.AspNetCore/Hyperledger.Aries.AspNetCore.csproj
index 7c95f345..930066b2 100644
--- a/src/Hyperledger.Aries.AspNetCore/Hyperledger.Aries.AspNetCore.csproj
+++ b/legacy/src/Hyperledger.Aries.AspNetCore/Hyperledger.Aries.AspNetCore.csproj
@@ -28,4 +28,8 @@
+
+
+
+
diff --git a/src/Hyperledger.Aries.AspNetCore/TailsMiddleware.cs b/legacy/src/Hyperledger.Aries.AspNetCore/TailsMiddleware.cs
similarity index 100%
rename from src/Hyperledger.Aries.AspNetCore/TailsMiddleware.cs
rename to legacy/src/Hyperledger.Aries.AspNetCore/TailsMiddleware.cs
diff --git a/legacy/src/Hyperledger.Aries.AspNetCore/buildTransitive/Legacy.Deprecated.targets b/legacy/src/Hyperledger.Aries.AspNetCore/buildTransitive/Legacy.Deprecated.targets
new file mode 100644
index 00000000..76510c8b
--- /dev/null
+++ b/legacy/src/Hyperledger.Aries.AspNetCore/buildTransitive/Legacy.Deprecated.targets
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/AgentBuilderExtensions.cs b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/AgentBuilderExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries.Payments.SovrinToken/AgentBuilderExtensions.cs
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/AgentBuilderExtensions.cs
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/AnyAgentMessage.cs b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/AnyAgentMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Payments.SovrinToken/AnyAgentMessage.cs
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/AnyAgentMessage.cs
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/GlobalSuppressions.cs b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/GlobalSuppressions.cs
similarity index 98%
rename from src/Hyperledger.Aries.Payments.SovrinToken/GlobalSuppressions.cs
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/GlobalSuppressions.cs
index df79da48..cf23f1d3 100644
--- a/src/Hyperledger.Aries.Payments.SovrinToken/GlobalSuppressions.cs
+++ b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/GlobalSuppressions.cs
@@ -1,9 +1,9 @@
-
-// This file is used by Code Analysis to maintain SuppressMessage
-// attributes that are applied to this project.
-// Project-level suppressions either have no target or are given
-// a specific target and scoped to a namespace, type, member, etc.
-
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Potential Code Quality Issues", "RECS0165:Asynchronous methods should return a Task instead of void", Justification = "", Scope = "member", Target = "~M:Hyperledger.Aries.Payments.SovrinToken.SovrinTokenConfigurationService.CreateDefaultPaymentAddress")]
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Name must match C callable method", Scope = "member", Target = "~M:Hyperledger.Aries.Payments.SovrinToken.TokenConfiguration.sovtoken_init")]
-
+
+// This file is used by Code Analysis to maintain SuppressMessage
+// attributes that are applied to this project.
+// Project-level suppressions either have no target or are given
+// a specific target and scoped to a namespace, type, member, etc.
+
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Potential Code Quality Issues", "RECS0165:Asynchronous methods should return a Task instead of void", Justification = "", Scope = "member", Target = "~M:Hyperledger.Aries.Payments.SovrinToken.SovrinTokenConfigurationService.CreateDefaultPaymentAddress")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Name must match C callable method", Scope = "member", Target = "~M:Hyperledger.Aries.Payments.SovrinToken.TokenConfiguration.sovtoken_init")]
+
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/Hyperledger.Aries.Payments.SovrinToken.csproj b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/Hyperledger.Aries.Payments.SovrinToken.csproj
similarity index 97%
rename from src/Hyperledger.Aries.Payments.SovrinToken/Hyperledger.Aries.Payments.SovrinToken.csproj
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/Hyperledger.Aries.Payments.SovrinToken.csproj
index 677184d9..a6857eb8 100644
--- a/src/Hyperledger.Aries.Payments.SovrinToken/Hyperledger.Aries.Payments.SovrinToken.csproj
+++ b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/Hyperledger.Aries.Payments.SovrinToken.csproj
@@ -1,10 +1,10 @@
-
-
- false
- bin\$(Configuration)\$(TargetFramework)\Hyperledger.Aries.Payments.SovrinToken.xml
-
-
-
-
-
-
+
+
+ false
+ bin\$(Configuration)\$(TargetFramework)\Hyperledger.Aries.Payments.SovrinToken.xml
+
+
+
+
+
+
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/PaymentUtils.cs b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/PaymentUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries.Payments.SovrinToken/PaymentUtils.cs
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/PaymentUtils.cs
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/PaymentsAgentMiddleware.cs b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/PaymentsAgentMiddleware.cs
similarity index 100%
rename from src/Hyperledger.Aries.Payments.SovrinToken/PaymentsAgentMiddleware.cs
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/PaymentsAgentMiddleware.cs
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/SovrinPaymentService.cs b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/SovrinPaymentService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Payments.SovrinToken/SovrinPaymentService.cs
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/SovrinPaymentService.cs
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/SovrinTokenConfigurationService.cs b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/SovrinTokenConfigurationService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Payments.SovrinToken/SovrinTokenConfigurationService.cs
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/SovrinTokenConfigurationService.cs
diff --git a/src/Hyperledger.Aries.Payments.SovrinToken/TokenConfiguration.cs b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/TokenConfiguration.cs
similarity index 97%
rename from src/Hyperledger.Aries.Payments.SovrinToken/TokenConfiguration.cs
rename to legacy/src/Hyperledger.Aries.Payments.SovrinToken/TokenConfiguration.cs
index 3ade70ea..29ce7450 100644
--- a/src/Hyperledger.Aries.Payments.SovrinToken/TokenConfiguration.cs
+++ b/legacy/src/Hyperledger.Aries.Payments.SovrinToken/TokenConfiguration.cs
@@ -1,33 +1,33 @@
using System.Runtime.InteropServices;
-using System.Threading.Tasks;
-
-namespace Hyperledger.Aries.Payments.SovrinToken
-{
- ///
- /// Token Configuration
- ///
- public static class TokenConfiguration
- {
- ///
- /// Method Name
- ///
- public const string MethodName = "sov";
-
- ///
- /// Initializes the internal static library
- ///
- ///
+using System.Threading.Tasks;
+
+namespace Hyperledger.Aries.Payments.SovrinToken
+{
+ ///
+ /// Token Configuration
+ ///
+ public static class TokenConfiguration
+ {
+ ///
+ /// Method Name
+ ///
+ public const string MethodName = "sov";
+
+ ///
+ /// Initializes the internal static library
+ ///
+ ///
public static Task InitializeAsync() => Task.Run(async () =>
{
await Task.Yield();
- sovtoken_init();
- });
-
-#if __IOS__
- [DllImport("__Internal", CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)]
-#else
- [DllImport("sovtoken", CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)]
-#endif
- internal static extern void sovtoken_init();
- }
-}
+ sovtoken_init();
+ });
+
+#if __IOS__
+ [DllImport("__Internal", CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)]
+#else
+ [DllImport("sovtoken", CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)]
+#endif
+ internal static extern void sovtoken_init();
+ }
+}
diff --git a/src/Hyperledger.Aries.Routing.Edge/AriesFrameworkBuilderExtensions.cs b/legacy/src/Hyperledger.Aries.Routing.Edge/AriesFrameworkBuilderExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Edge/AriesFrameworkBuilderExtensions.cs
rename to legacy/src/Hyperledger.Aries.Routing.Edge/AriesFrameworkBuilderExtensions.cs
diff --git a/src/Hyperledger.Aries.Routing.Edge/EdgeClientService.Backup.cs b/legacy/src/Hyperledger.Aries.Routing.Edge/EdgeClientService.Backup.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Edge/EdgeClientService.Backup.cs
rename to legacy/src/Hyperledger.Aries.Routing.Edge/EdgeClientService.Backup.cs
diff --git a/src/Hyperledger.Aries.Routing.Edge/EdgeClientService.cs b/legacy/src/Hyperledger.Aries.Routing.Edge/EdgeClientService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Edge/EdgeClientService.cs
rename to legacy/src/Hyperledger.Aries.Routing.Edge/EdgeClientService.cs
diff --git a/src/Hyperledger.Aries.Routing.Edge/EdgeConnectionService.cs b/legacy/src/Hyperledger.Aries.Routing.Edge/EdgeConnectionService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Edge/EdgeConnectionService.cs
rename to legacy/src/Hyperledger.Aries.Routing.Edge/EdgeConnectionService.cs
diff --git a/src/Hyperledger.Aries.Routing.Edge/EdgeProvisioningService.cs b/legacy/src/Hyperledger.Aries.Routing.Edge/EdgeProvisioningService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Edge/EdgeProvisioningService.cs
rename to legacy/src/Hyperledger.Aries.Routing.Edge/EdgeProvisioningService.cs
diff --git a/src/Hyperledger.Aries.Routing.Edge/Hyperledger.Aries.Routing.Edge.csproj b/legacy/src/Hyperledger.Aries.Routing.Edge/Hyperledger.Aries.Routing.Edge.csproj
similarity index 85%
rename from src/Hyperledger.Aries.Routing.Edge/Hyperledger.Aries.Routing.Edge.csproj
rename to legacy/src/Hyperledger.Aries.Routing.Edge/Hyperledger.Aries.Routing.Edge.csproj
index 41c63b3f..dca7c2e1 100644
--- a/src/Hyperledger.Aries.Routing.Edge/Hyperledger.Aries.Routing.Edge.csproj
+++ b/legacy/src/Hyperledger.Aries.Routing.Edge/Hyperledger.Aries.Routing.Edge.csproj
@@ -1,16 +1,18 @@
-
-
- WalletFramework.Routing.Edge
- bin\$(Configuration)\$(TargetFramework)\Hyperledger.Aries.Routing.Edge.xml
-
-
-
-
-
-
-
-
- EdgeClientService.cs
-
-
-
+
+
+ WalletFramework.Routing.Edge
+ bin\$(Configuration)\$(TargetFramework)\Hyperledger.Aries.Routing.Edge.xml
+ false
+ netstandard2.1
+
+
+
+
+
+
+
+
+ EdgeClientService.cs
+
+
+
diff --git a/src/Hyperledger.Aries.Routing.Edge/IEdgeClientService.cs b/legacy/src/Hyperledger.Aries.Routing.Edge/IEdgeClientService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Edge/IEdgeClientService.cs
rename to legacy/src/Hyperledger.Aries.Routing.Edge/IEdgeClientService.cs
diff --git a/src/Hyperledger.Aries.Routing.Edge/IEdgeProvisioningService.cs b/legacy/src/Hyperledger.Aries.Routing.Edge/IEdgeProvisioningService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Edge/IEdgeProvisioningService.cs
rename to legacy/src/Hyperledger.Aries.Routing.Edge/IEdgeProvisioningService.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/AriesFrameworkBuilderExtensions.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/AriesFrameworkBuilderExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/AriesFrameworkBuilderExtensions.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/AriesFrameworkBuilderExtensions.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/DefaultRoutingStore.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/DefaultRoutingStore.cs
similarity index 99%
rename from src/Hyperledger.Aries.Routing.Mediator/DefaultRoutingStore.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/DefaultRoutingStore.cs
index ee707837..d10766a9 100644
--- a/src/Hyperledger.Aries.Routing.Mediator/DefaultRoutingStore.cs
+++ b/legacy/src/Hyperledger.Aries.Routing.Mediator/DefaultRoutingStore.cs
@@ -21,11 +21,11 @@ public DefaultRoutingStore(
public async Task AddRouteAsync(string destinationRoute, string inboxId)
{
var agentContext = await agentProvider.GetContextAsync();
- var routeRecord = new RouteRecord
- {
- Id = destinationRoute,
- InboxId = inboxId
- };
+ var routeRecord = new RouteRecord
+ {
+ Id = destinationRoute,
+ InboxId = inboxId
+ };
await recordService.AddAsync(agentContext.Wallet, routeRecord);
}
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Handlers/MediatorForwardHandler.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Handlers/MediatorForwardHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Handlers/MediatorForwardHandler.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Handlers/MediatorForwardHandler.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Handlers/RetrieveBackupHandler.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Handlers/RetrieveBackupHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Handlers/RetrieveBackupHandler.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Handlers/RetrieveBackupHandler.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Handlers/RoutingInboxHandler.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Handlers/RoutingInboxHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Handlers/RoutingInboxHandler.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Handlers/RoutingInboxHandler.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Handlers/StoreBackupHandler.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Handlers/StoreBackupHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Handlers/StoreBackupHandler.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Handlers/StoreBackupHandler.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Hyperledger.Aries.Routing.Mediator.csproj b/legacy/src/Hyperledger.Aries.Routing.Mediator/Hyperledger.Aries.Routing.Mediator.csproj
similarity index 79%
rename from src/Hyperledger.Aries.Routing.Mediator/Hyperledger.Aries.Routing.Mediator.csproj
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Hyperledger.Aries.Routing.Mediator.csproj
index 4c3a6bfe..b95858cf 100644
--- a/src/Hyperledger.Aries.Routing.Mediator/Hyperledger.Aries.Routing.Mediator.csproj
+++ b/legacy/src/Hyperledger.Aries.Routing.Mediator/Hyperledger.Aries.Routing.Mediator.csproj
@@ -1,16 +1,20 @@
-
-
-
- WalletFramework.Routing.Mediator
- bin\$(Configuration)\$(TargetFramework)\Hyperledger.Aries.Routing.Mediator.xml
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ WalletFramework.Routing.Mediator
+ bin\$(Configuration)\$(TargetFramework)\Hyperledger.Aries.Routing.Mediator.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Hyperledger.Aries.Routing.Mediator/IRoutingStore.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/IRoutingStore.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/IRoutingStore.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/IRoutingStore.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/MediatorAgent.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/MediatorAgent.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/MediatorAgent.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/MediatorAgent.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/MediatorDiscoveryMiddleware.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/MediatorDiscoveryMiddleware.cs
similarity index 97%
rename from src/Hyperledger.Aries.Routing.Mediator/MediatorDiscoveryMiddleware.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/MediatorDiscoveryMiddleware.cs
index a1b8d5a5..d22cf6cf 100644
--- a/src/Hyperledger.Aries.Routing.Mediator/MediatorDiscoveryMiddleware.cs
+++ b/legacy/src/Hyperledger.Aries.Routing.Mediator/MediatorDiscoveryMiddleware.cs
@@ -1,65 +1,65 @@
-using System;
-using System.Linq;
-using System.Net;
-using System.Threading.Tasks;
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Agents.Edge;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Extensions;
-using Hyperledger.Aries.Features.Handshakes.Connection;
-using Hyperledger.Aries.Features.Handshakes.Connection.Models;
-using Microsoft.AspNetCore.Http;
-using Microsoft.Extensions.Options;
-
-namespace Hyperledger.Aries.Routing
-{
- public class MediatorDiscoveryMiddleware : IMiddleware
- {
- private readonly AgentOptions options;
- private readonly IProvisioningService provisioningService;
- private readonly IConnectionService connectionService;
- private readonly IAgentProvider agentProvider;
-
- public MediatorDiscoveryMiddleware(
- IOptions options,
- IProvisioningService provisioningService,
- IConnectionService connectionService,
- IAgentProvider agentProvider)
- {
- this.options = options.Value;
- this.provisioningService = provisioningService;
- this.connectionService = connectionService;
- this.agentProvider = agentProvider;
- }
-
- public async Task InvokeAsync(HttpContext context, RequestDelegate next)
- {
- var agentConfiguration = await GetConfigurationAsync();
- context.Response.ContentType = "application/json";
- context.Response.StatusCode = (int)HttpStatusCode.OK;
- await context.Response.WriteAsync(agentConfiguration.ToJson());
- }
-
- public async Task GetConfigurationAsync()
- {
- var agentContext = await agentProvider.GetContextAsync();
- var provisioningRecord = await provisioningService.GetProvisioningAsync(agentContext.Wallet);
- var connectionId = provisioningRecord.GetTag(MediatorProvisioningService.EdgeInvitationTagName);
-
- if (connectionId == null)
- {
- throw new Exception("This agent hasn't been provisioned as mediator agent");
- }
- var inviation = await connectionService.GetAsync(agentContext, connectionId);
-
- var agentConfiguration = new AgentPublicConfiguration
- {
- ServiceEndpoint = provisioningRecord.Endpoint.Uri,
- RoutingKey = provisioningRecord.Endpoint.Verkey.First(),
- Invitation = inviation.GetTag(MediatorProvisioningService.InvitationTagName)
- .ToObject()
- };
- return agentConfiguration;
- }
- }
-}
+using System;
+using System.Linq;
+using System.Net;
+using System.Threading.Tasks;
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Agents.Edge;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Extensions;
+using Hyperledger.Aries.Features.Handshakes.Connection;
+using Hyperledger.Aries.Features.Handshakes.Connection.Models;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Options;
+
+namespace Hyperledger.Aries.Routing
+{
+ public class MediatorDiscoveryMiddleware : IMiddleware
+ {
+ private readonly AgentOptions options;
+ private readonly IProvisioningService provisioningService;
+ private readonly IConnectionService connectionService;
+ private readonly IAgentProvider agentProvider;
+
+ public MediatorDiscoveryMiddleware(
+ IOptions options,
+ IProvisioningService provisioningService,
+ IConnectionService connectionService,
+ IAgentProvider agentProvider)
+ {
+ this.options = options.Value;
+ this.provisioningService = provisioningService;
+ this.connectionService = connectionService;
+ this.agentProvider = agentProvider;
+ }
+
+ public async Task InvokeAsync(HttpContext context, RequestDelegate next)
+ {
+ var agentConfiguration = await GetConfigurationAsync();
+ context.Response.ContentType = "application/json";
+ context.Response.StatusCode = (int)HttpStatusCode.OK;
+ await context.Response.WriteAsync(agentConfiguration.ToJson());
+ }
+
+ public async Task GetConfigurationAsync()
+ {
+ var agentContext = await agentProvider.GetContextAsync();
+ var provisioningRecord = await provisioningService.GetProvisioningAsync(agentContext.Wallet);
+ var connectionId = provisioningRecord.GetTag(MediatorProvisioningService.EdgeInvitationTagName);
+
+ if (connectionId == null)
+ {
+ throw new Exception("This agent hasn't been provisioned as mediator agent");
+ }
+ var inviation = await connectionService.GetAsync(agentContext, connectionId);
+
+ var agentConfiguration = new AgentPublicConfiguration
+ {
+ ServiceEndpoint = provisioningRecord.Endpoint.Uri,
+ RoutingKey = provisioningRecord.Endpoint.Verkey.First(),
+ Invitation = inviation.GetTag(MediatorProvisioningService.InvitationTagName)
+ .ToObject()
+ };
+ return agentConfiguration;
+ }
+ }
+}
diff --git a/src/Hyperledger.Aries.Routing.Mediator/MediatorProvisioningService.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/MediatorProvisioningService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/MediatorProvisioningService.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/MediatorProvisioningService.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Records/DeviceInfoRecord.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Records/DeviceInfoRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Records/DeviceInfoRecord.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Records/DeviceInfoRecord.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Records/InboxItemRecord.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Records/InboxItemRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Records/InboxItemRecord.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Records/InboxItemRecord.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Records/InboxRecord.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Records/InboxRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Records/InboxRecord.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Records/InboxRecord.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Records/RouteRecord.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Records/RouteRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Records/RouteRecord.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Records/RouteRecord.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Storage/DefaultStorageService.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Storage/DefaultStorageService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Storage/DefaultStorageService.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Storage/DefaultStorageService.cs
diff --git a/src/Hyperledger.Aries.Routing.Mediator/Storage/IStorageService.cs b/legacy/src/Hyperledger.Aries.Routing.Mediator/Storage/IStorageService.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing.Mediator/Storage/IStorageService.cs
rename to legacy/src/Hyperledger.Aries.Routing.Mediator/Storage/IStorageService.cs
diff --git a/legacy/src/Hyperledger.Aries.Routing.Mediator/buildTransitive/Legacy.Deprecated.targets b/legacy/src/Hyperledger.Aries.Routing.Mediator/buildTransitive/Legacy.Deprecated.targets
new file mode 100644
index 00000000..76510c8b
--- /dev/null
+++ b/legacy/src/Hyperledger.Aries.Routing.Mediator/buildTransitive/Legacy.Deprecated.targets
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/src/Hyperledger.Aries.Routing/AddDeviceInfoMessage.cs b/legacy/src/Hyperledger.Aries.Routing/AddDeviceInfoMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/AddDeviceInfoMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/AddDeviceInfoMessage.cs
diff --git a/src/Hyperledger.Aries.Routing/AddRouteMessage.cs b/legacy/src/Hyperledger.Aries.Routing/AddRouteMessage.cs
similarity index 98%
rename from src/Hyperledger.Aries.Routing/AddRouteMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/AddRouteMessage.cs
index f31eeae4..218add40 100644
--- a/src/Hyperledger.Aries.Routing/AddRouteMessage.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/AddRouteMessage.cs
@@ -1,28 +1,28 @@
-using System;
+using System;
using Hyperledger.Aries.Agents;
namespace Hyperledger.Aries.Routing
-{
- ///
- /// Add Route Message
- ///
- ///
+{
+ ///
+ /// Add Route Message
+ ///
+ ///
public class AddRouteMessage : AgentMessage
{
- ///
- /// Initializes a new instance of the class.
- ///
+ ///
+ /// Initializes a new instance of the class.
+ ///
public AddRouteMessage()
{
Id = Guid.NewGuid().ToString();
Type = RoutingTypeNames.AddRouteMessage;
}
- ///
- /// Gets or sets the route destination.
- ///
- ///
- /// The route destination.
- ///
+ ///
+ /// Gets or sets the route destination.
+ ///
+ ///
+ /// The route destination.
+ ///
public string RouteDestination { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/AgentPublicConfiguration.cs b/legacy/src/Hyperledger.Aries.Routing/AgentPublicConfiguration.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/AgentPublicConfiguration.cs
rename to legacy/src/Hyperledger.Aries.Routing/AgentPublicConfiguration.cs
diff --git a/src/Hyperledger.Aries.Routing/BackupTypeNames.cs b/legacy/src/Hyperledger.Aries.Routing/BackupTypeNames.cs
similarity index 98%
rename from src/Hyperledger.Aries.Routing/BackupTypeNames.cs
rename to legacy/src/Hyperledger.Aries.Routing/BackupTypeNames.cs
index 50c05d6d..26922b44 100644
--- a/src/Hyperledger.Aries.Routing/BackupTypeNames.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/BackupTypeNames.cs
@@ -1,16 +1,16 @@
-using Hyperledger.Aries.Agents;
-
-namespace Hyperledger.Aries.Routing
-{
- public static class BackupTypeNames
- {
- public const string RetrieveBackupAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/retrieve_backup";
- public const string RetrieveBackupResponseAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/retrieve_backup_response";
-
- public const string StoreBackupAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/store_backup";
- public const string StoreBackupResponseAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/store_backup_response";
-
- public const string ListBackupsAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/list_backups";
- public const string ListBackupsResponseAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/list_backups_response";
- }
+using Hyperledger.Aries.Agents;
+
+namespace Hyperledger.Aries.Routing
+{
+ public static class BackupTypeNames
+ {
+ public const string RetrieveBackupAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/retrieve_backup";
+ public const string RetrieveBackupResponseAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/retrieve_backup_response";
+
+ public const string StoreBackupAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/store_backup";
+ public const string StoreBackupResponseAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/store_backup_response";
+
+ public const string ListBackupsAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/list_backups";
+ public const string ListBackupsResponseAgentMessage = "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/backup_restore/1.0/list_backups_response";
+ }
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/CreateInboxMessage.cs b/legacy/src/Hyperledger.Aries.Routing/CreateInboxMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/CreateInboxMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/CreateInboxMessage.cs
diff --git a/src/Hyperledger.Aries.Routing/CreateInboxResponseMessage.cs b/legacy/src/Hyperledger.Aries.Routing/CreateInboxResponseMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/CreateInboxResponseMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/CreateInboxResponseMessage.cs
diff --git a/src/Hyperledger.Aries.Routing/DeleteInboxItemsMessage.cs b/legacy/src/Hyperledger.Aries.Routing/DeleteInboxItemsMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/DeleteInboxItemsMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/DeleteInboxItemsMessage.cs
diff --git a/src/Hyperledger.Aries.Routing/GetInboxItemsMessage.cs b/legacy/src/Hyperledger.Aries.Routing/GetInboxItemsMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/GetInboxItemsMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/GetInboxItemsMessage.cs
diff --git a/src/Hyperledger.Aries.Routing/GetInboxItemsResponseMessage.cs b/legacy/src/Hyperledger.Aries.Routing/GetInboxItemsResponseMessage.cs
similarity index 98%
rename from src/Hyperledger.Aries.Routing/GetInboxItemsResponseMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/GetInboxItemsResponseMessage.cs
index 37cbde85..f291c750 100644
--- a/src/Hyperledger.Aries.Routing/GetInboxItemsResponseMessage.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/GetInboxItemsResponseMessage.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using Hyperledger.Aries.Agents;
@@ -6,21 +6,21 @@ namespace Hyperledger.Aries.Routing
{
public class GetInboxItemsResponseMessage : AgentMessage
{
- ///
- /// Initializes a new instance of the class.
- ///
+ ///
+ /// Initializes a new instance of the class.
+ ///
public GetInboxItemsResponseMessage()
{
Id = Guid.NewGuid().ToString();
Type = RoutingTypeNames.GetInboxItemsResponseMessage;
}
- ///
- /// Gets or sets the items.
- ///
- ///
- /// The items.
- ///
+ ///
+ /// Gets or sets the items.
+ ///
+ ///
+ /// The items.
+ ///
public IEnumerable Items { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/Hyperledger.Aries.Routing.csproj b/legacy/src/Hyperledger.Aries.Routing/Hyperledger.Aries.Routing.csproj
similarity index 83%
rename from src/Hyperledger.Aries.Routing/Hyperledger.Aries.Routing.csproj
rename to legacy/src/Hyperledger.Aries.Routing/Hyperledger.Aries.Routing.csproj
index ff816e34..ba4e36d2 100644
--- a/src/Hyperledger.Aries.Routing/Hyperledger.Aries.Routing.csproj
+++ b/legacy/src/Hyperledger.Aries.Routing/Hyperledger.Aries.Routing.csproj
@@ -1,14 +1,16 @@
-
-
- WalletFramework.Routing
- bin\$(Configuration)\$(TargetFramework)\Hyperledger.Aries.Routing.xml
-
-
-
-
-
-
-
-
-
-
+
+
+ WalletFramework.Routing
+ bin\$(Configuration)\$(TargetFramework)\Hyperledger.Aries.Routing.xml
+ false
+ netstandard2.1
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Hyperledger.Aries.Routing/InboxItemEvent.cs b/legacy/src/Hyperledger.Aries.Routing/InboxItemEvent.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/InboxItemEvent.cs
rename to legacy/src/Hyperledger.Aries.Routing/InboxItemEvent.cs
diff --git a/src/Hyperledger.Aries.Routing/InboxItemMessage.cs b/legacy/src/Hyperledger.Aries.Routing/InboxItemMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/InboxItemMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/InboxItemMessage.cs
diff --git a/src/Hyperledger.Aries.Routing/ListBackupsAgentMessage.cs b/legacy/src/Hyperledger.Aries.Routing/ListBackupsAgentMessage.cs
similarity index 96%
rename from src/Hyperledger.Aries.Routing/ListBackupsAgentMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/ListBackupsAgentMessage.cs
index bd1d2449..cf64bee1 100644
--- a/src/Hyperledger.Aries.Routing/ListBackupsAgentMessage.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/ListBackupsAgentMessage.cs
@@ -1,24 +1,24 @@
-using System;
-using Hyperledger.Aries.Agents;
-
-namespace Hyperledger.Aries.Routing
-{
- public class ListBackupsAgentMessage : AgentMessage
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public ListBackupsAgentMessage()
- {
- Id = new Guid().ToString();
- Type = BackupTypeNames.ListBackupsAgentMessage;
- }
- ///
- /// Gets or sets the backup identifier.
- ///
- ///
- /// The backup identifier.
- ///
- public string BackupId { get; set; }
- }
+using System;
+using Hyperledger.Aries.Agents;
+
+namespace Hyperledger.Aries.Routing
+{
+ public class ListBackupsAgentMessage : AgentMessage
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public ListBackupsAgentMessage()
+ {
+ Id = new Guid().ToString();
+ Type = BackupTypeNames.ListBackupsAgentMessage;
+ }
+ ///
+ /// Gets or sets the backup identifier.
+ ///
+ ///
+ /// The backup identifier.
+ ///
+ public string BackupId { get; set; }
+ }
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/ListBackupsResponseAgentMessage.cs b/legacy/src/Hyperledger.Aries.Routing/ListBackupsResponseAgentMessage.cs
similarity index 96%
rename from src/Hyperledger.Aries.Routing/ListBackupsResponseAgentMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/ListBackupsResponseAgentMessage.cs
index b14193a3..d05127c3 100644
--- a/src/Hyperledger.Aries.Routing/ListBackupsResponseAgentMessage.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/ListBackupsResponseAgentMessage.cs
@@ -1,17 +1,17 @@
-using Hyperledger.Aries.Agents;
-using System;
-using System.Collections.Generic;
-
-namespace Hyperledger.Aries.Routing
-{
- public class ListBackupsResponseAgentMessage : AgentMessage
- {
- public ListBackupsResponseAgentMessage()
- {
- Id = Guid.NewGuid().ToString();
- Type = BackupTypeNames.ListBackupsResponseAgentMessage;
- }
-
- public IEnumerable BackupList { get; set; }
- }
+using Hyperledger.Aries.Agents;
+using System;
+using System.Collections.Generic;
+
+namespace Hyperledger.Aries.Routing
+{
+ public class ListBackupsResponseAgentMessage : AgentMessage
+ {
+ public ListBackupsResponseAgentMessage()
+ {
+ Id = Guid.NewGuid().ToString();
+ Type = BackupTypeNames.ListBackupsResponseAgentMessage;
+ }
+
+ public IEnumerable BackupList { get; set; }
+ }
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/RestoreInboxMessage.cs b/legacy/src/Hyperledger.Aries.Routing/RestoreInboxMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/RestoreInboxMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/RestoreInboxMessage.cs
diff --git a/src/Hyperledger.Aries.Routing/RetrieveBackupAgentMessage.cs b/legacy/src/Hyperledger.Aries.Routing/RetrieveBackupAgentMessage.cs
similarity index 96%
rename from src/Hyperledger.Aries.Routing/RetrieveBackupAgentMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/RetrieveBackupAgentMessage.cs
index cb613565..c2500a80 100644
--- a/src/Hyperledger.Aries.Routing/RetrieveBackupAgentMessage.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/RetrieveBackupAgentMessage.cs
@@ -1,17 +1,17 @@
-using Hyperledger.Aries.Agents;
-using System;
-
-namespace Hyperledger.Aries.Routing
-{
- public class RetrieveBackupAgentMessage : AgentMessage
- {
- public RetrieveBackupAgentMessage()
- {
- Id = Guid.NewGuid().ToString();
- Type = BackupTypeNames.RetrieveBackupAgentMessage;
- }
-
- public string BackupId { get; set; }
- public string Signature { get; set; }
- }
+using Hyperledger.Aries.Agents;
+using System;
+
+namespace Hyperledger.Aries.Routing
+{
+ public class RetrieveBackupAgentMessage : AgentMessage
+ {
+ public RetrieveBackupAgentMessage()
+ {
+ Id = Guid.NewGuid().ToString();
+ Type = BackupTypeNames.RetrieveBackupAgentMessage;
+ }
+
+ public string BackupId { get; set; }
+ public string Signature { get; set; }
+ }
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/RetrieveBackupResponseAgentMessage.cs b/legacy/src/Hyperledger.Aries.Routing/RetrieveBackupResponseAgentMessage.cs
similarity index 96%
rename from src/Hyperledger.Aries.Routing/RetrieveBackupResponseAgentMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/RetrieveBackupResponseAgentMessage.cs
index 1b4d3239..d1107fa3 100644
--- a/src/Hyperledger.Aries.Routing/RetrieveBackupResponseAgentMessage.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/RetrieveBackupResponseAgentMessage.cs
@@ -1,18 +1,18 @@
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Decorators.Attachments;
-using System;
-using System.Collections.Generic;
-
-namespace Hyperledger.Aries.Routing
-{
- public class RetrieveBackupResponseAgentMessage : AgentMessage
- {
- public RetrieveBackupResponseAgentMessage()
- {
- Id = Guid.NewGuid().ToString();
- Type = BackupTypeNames.RetrieveBackupResponseAgentMessage;
- }
-
- public List Payload { get; set; }
- }
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Decorators.Attachments;
+using System;
+using System.Collections.Generic;
+
+namespace Hyperledger.Aries.Routing
+{
+ public class RetrieveBackupResponseAgentMessage : AgentMessage
+ {
+ public RetrieveBackupResponseAgentMessage()
+ {
+ Id = Guid.NewGuid().ToString();
+ Type = BackupTypeNames.RetrieveBackupResponseAgentMessage;
+ }
+
+ public List Payload { get; set; }
+ }
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/RoutingTypeNames.cs b/legacy/src/Hyperledger.Aries.Routing/RoutingTypeNames.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/RoutingTypeNames.cs
rename to legacy/src/Hyperledger.Aries.Routing/RoutingTypeNames.cs
diff --git a/src/Hyperledger.Aries.Routing/StoreBackupAgentMessage.cs b/legacy/src/Hyperledger.Aries.Routing/StoreBackupAgentMessage.cs
similarity index 96%
rename from src/Hyperledger.Aries.Routing/StoreBackupAgentMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/StoreBackupAgentMessage.cs
index 58d42e5b..9c9b97c7 100644
--- a/src/Hyperledger.Aries.Routing/StoreBackupAgentMessage.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/StoreBackupAgentMessage.cs
@@ -1,20 +1,20 @@
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Decorators.Attachments;
-using System;
-using System.Collections.Generic;
-
-namespace Hyperledger.Aries.Routing
-{
- public class StoreBackupAgentMessage : AgentMessage
- {
- public StoreBackupAgentMessage()
- {
- Id = Guid.NewGuid().ToString();
- Type = BackupTypeNames.StoreBackupAgentMessage;
- }
-
- public string BackupId { get; set; }
- public List Payload { get; set; }
- public string PayloadSignature { get; set; }
- }
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Decorators.Attachments;
+using System;
+using System.Collections.Generic;
+
+namespace Hyperledger.Aries.Routing
+{
+ public class StoreBackupAgentMessage : AgentMessage
+ {
+ public StoreBackupAgentMessage()
+ {
+ Id = Guid.NewGuid().ToString();
+ Type = BackupTypeNames.StoreBackupAgentMessage;
+ }
+
+ public string BackupId { get; set; }
+ public List Payload { get; set; }
+ public string PayloadSignature { get; set; }
+ }
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/StoreBackupResponseAgentMessage.cs b/legacy/src/Hyperledger.Aries.Routing/StoreBackupResponseAgentMessage.cs
similarity index 96%
rename from src/Hyperledger.Aries.Routing/StoreBackupResponseAgentMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/StoreBackupResponseAgentMessage.cs
index 464cd8f6..2b74d5d3 100644
--- a/src/Hyperledger.Aries.Routing/StoreBackupResponseAgentMessage.cs
+++ b/legacy/src/Hyperledger.Aries.Routing/StoreBackupResponseAgentMessage.cs
@@ -1,15 +1,15 @@
-using Hyperledger.Aries.Agents;
-using System;
-
-namespace Hyperledger.Aries.Routing
-{
- public class StoreBackupResponseAgentMessage : AgentMessage
- {
- public StoreBackupResponseAgentMessage()
- {
- Id = Guid.NewGuid().ToString();
- Type = BackupTypeNames.StoreBackupResponseAgentMessage;
- }
- public DateTimeOffset BackupTimestamp { get; set; }
- }
+using Hyperledger.Aries.Agents;
+using System;
+
+namespace Hyperledger.Aries.Routing
+{
+ public class StoreBackupResponseAgentMessage : AgentMessage
+ {
+ public StoreBackupResponseAgentMessage()
+ {
+ Id = Guid.NewGuid().ToString();
+ Type = BackupTypeNames.StoreBackupResponseAgentMessage;
+ }
+ public DateTimeOffset BackupTimestamp { get; set; }
+ }
}
\ No newline at end of file
diff --git a/src/Hyperledger.Aries.Routing/UpsertDeviceInfoMessage.cs b/legacy/src/Hyperledger.Aries.Routing/UpsertDeviceInfoMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/UpsertDeviceInfoMessage.cs
rename to legacy/src/Hyperledger.Aries.Routing/UpsertDeviceInfoMessage.cs
diff --git a/src/Hyperledger.Aries.Routing/Utils.cs b/legacy/src/Hyperledger.Aries.Routing/Utils.cs
similarity index 100%
rename from src/Hyperledger.Aries.Routing/Utils.cs
rename to legacy/src/Hyperledger.Aries.Routing/Utils.cs
diff --git a/src/Hyperledger.Aries/Agents/Abstractions/IAgent.cs b/legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgent.cs
similarity index 96%
rename from src/Hyperledger.Aries/Agents/Abstractions/IAgent.cs
rename to legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgent.cs
index 64607cc9..b1174f97 100644
--- a/src/Hyperledger.Aries/Agents/Abstractions/IAgent.cs
+++ b/legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgent.cs
@@ -1,31 +1,31 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace Hyperledger.Aries.Agents
-{
- ///
- /// Agent.
- ///
- public interface IAgent
- {
- ///
- /// Gets the service provider used by this agent instance
- ///
- IServiceProvider Provider { get; }
-
- ///
- /// Processes the async.
- ///
- /// The async.
- /// Context.
- /// Message context.
- Task ProcessAsync(IAgentContext context, MessageContext messageContext);
-
- ///
- /// Gets the handlers.
- ///
- /// The handlers.
- IList Handlers { get; }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace Hyperledger.Aries.Agents
+{
+ ///
+ /// Agent.
+ ///
+ public interface IAgent
+ {
+ ///
+ /// Gets the service provider used by this agent instance
+ ///
+ IServiceProvider Provider { get; }
+
+ ///
+ /// Processes the async.
+ ///
+ /// The async.
+ /// Context.
+ /// Message context.
+ Task ProcessAsync(IAgentContext context, MessageContext messageContext);
+
+ ///
+ /// Gets the handlers.
+ ///
+ /// The handlers.
+ IList Handlers { get; }
+ }
+}
diff --git a/src/Hyperledger.Aries/Agents/Abstractions/IAgentContext.cs b/legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgentContext.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Abstractions/IAgentContext.cs
rename to legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgentContext.cs
diff --git a/src/Hyperledger.Aries/Agents/Abstractions/IAgentMiddleware.cs b/legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgentMiddleware.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Abstractions/IAgentMiddleware.cs
rename to legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgentMiddleware.cs
diff --git a/src/Hyperledger.Aries/Agents/Abstractions/IAgentProvider.cs b/legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgentProvider.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Abstractions/IAgentProvider.cs
rename to legacy/src/Hyperledger.Aries/Agents/Abstractions/IAgentProvider.cs
diff --git a/src/Hyperledger.Aries/Agents/Abstractions/IMessageHandler.cs b/legacy/src/Hyperledger.Aries/Agents/Abstractions/IMessageHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Abstractions/IMessageHandler.cs
rename to legacy/src/Hyperledger.Aries/Agents/Abstractions/IMessageHandler.cs
diff --git a/src/Hyperledger.Aries/Agents/AgentBase.cs b/legacy/src/Hyperledger.Aries/Agents/AgentBase.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/AgentBase.cs
rename to legacy/src/Hyperledger.Aries/Agents/AgentBase.cs
diff --git a/src/Hyperledger.Aries/Agents/AgentContext.cs b/legacy/src/Hyperledger.Aries/Agents/AgentContext.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/AgentContext.cs
rename to legacy/src/Hyperledger.Aries/Agents/AgentContext.cs
diff --git a/src/Hyperledger.Aries/Agents/Converters/AgentEndpointJsonConverter.cs b/legacy/src/Hyperledger.Aries/Agents/Converters/AgentEndpointJsonConverter.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Converters/AgentEndpointJsonConverter.cs
rename to legacy/src/Hyperledger.Aries/Agents/Converters/AgentEndpointJsonConverter.cs
diff --git a/src/Hyperledger.Aries/Agents/Converters/AgentMessageReader.cs b/legacy/src/Hyperledger.Aries/Agents/Converters/AgentMessageReader.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Converters/AgentMessageReader.cs
rename to legacy/src/Hyperledger.Aries/Agents/Converters/AgentMessageReader.cs
diff --git a/src/Hyperledger.Aries/Agents/Converters/AgentMessageWriter.cs b/legacy/src/Hyperledger.Aries/Agents/Converters/AgentMessageWriter.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Converters/AgentMessageWriter.cs
rename to legacy/src/Hyperledger.Aries/Agents/Converters/AgentMessageWriter.cs
diff --git a/src/Hyperledger.Aries/Agents/DefaultAgent.cs b/legacy/src/Hyperledger.Aries/Agents/DefaultAgent.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/DefaultAgent.cs
rename to legacy/src/Hyperledger.Aries/Agents/DefaultAgent.cs
diff --git a/src/Hyperledger.Aries/Agents/DefaultAgentContext.cs b/legacy/src/Hyperledger.Aries/Agents/DefaultAgentContext.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/DefaultAgentContext.cs
rename to legacy/src/Hyperledger.Aries/Agents/DefaultAgentContext.cs
diff --git a/src/Hyperledger.Aries/Agents/DefaultAgentProvider.cs b/legacy/src/Hyperledger.Aries/Agents/DefaultAgentProvider.cs
similarity index 97%
rename from src/Hyperledger.Aries/Agents/DefaultAgentProvider.cs
rename to legacy/src/Hyperledger.Aries/Agents/DefaultAgentProvider.cs
index 4d9b1bb3..26a84f1a 100644
--- a/src/Hyperledger.Aries/Agents/DefaultAgentProvider.cs
+++ b/legacy/src/Hyperledger.Aries/Agents/DefaultAgentProvider.cs
@@ -1,61 +1,61 @@
-using System.Threading.Tasks;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Contracts;
-using Hyperledger.Aries.Ledger;
-using Hyperledger.Aries.Storage;
-using Microsoft.Extensions.Options;
-
-namespace Hyperledger.Aries.Agents
-{
- ///
- public class DefaultAgentProvider : IAgentProvider
- {
- private readonly AgentOptions _agentOptions;
- private readonly IAgent _defaultAgent;
- private readonly IWalletService _walletService;
- private readonly IPoolService _poolService;
-
- ///
- /// Initializes a new instance of the class.
- ///
- ///
- /// Default agent.
- /// Wallet service.
- /// Pool service.
- public DefaultAgentProvider(
- IOptions agentOptions,
- IAgent defaultAgent,
- IWalletService walletService,
- IPoolService poolService)
- {
- _agentOptions = agentOptions.Value;
- _defaultAgent = defaultAgent;
- _walletService = walletService;
- _poolService = poolService;
- }
-
- ///
- public Task GetAgentAsync(params object[] args)
- {
- return Task.FromResult(_defaultAgent);
- }
-
- ///
- public async Task GetContextAsync(params object[] args)
- {
- var agent = await GetAgentAsync(args);
- return new DefaultAgentContext
- {
- Wallet = await _walletService.GetWalletAsync(
- configuration: _agentOptions.WalletConfiguration,
- credentials: _agentOptions.WalletCredentials),
- Pool = new PoolAwaitable(() => _poolService.GetPoolAsync(
- poolName: _agentOptions.PoolName,
- protocolVersion: _agentOptions.ProtocolVersion)),
- SupportedMessages = agent.GetSupportedMessageTypes(),
- Agent = await GetAgentAsync(args),
- UseMessageTypesHttps = _agentOptions.UseMessageTypesHttps
- };
- }
- }
-}
+using System.Threading.Tasks;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Contracts;
+using Hyperledger.Aries.Ledger;
+using Hyperledger.Aries.Storage;
+using Microsoft.Extensions.Options;
+
+namespace Hyperledger.Aries.Agents
+{
+ ///
+ public class DefaultAgentProvider : IAgentProvider
+ {
+ private readonly AgentOptions _agentOptions;
+ private readonly IAgent _defaultAgent;
+ private readonly IWalletService _walletService;
+ private readonly IPoolService _poolService;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ /// Default agent.
+ /// Wallet service.
+ /// Pool service.
+ public DefaultAgentProvider(
+ IOptions agentOptions,
+ IAgent defaultAgent,
+ IWalletService walletService,
+ IPoolService poolService)
+ {
+ _agentOptions = agentOptions.Value;
+ _defaultAgent = defaultAgent;
+ _walletService = walletService;
+ _poolService = poolService;
+ }
+
+ ///
+ public Task GetAgentAsync(params object[] args)
+ {
+ return Task.FromResult(_defaultAgent);
+ }
+
+ ///
+ public async Task GetContextAsync(params object[] args)
+ {
+ var agent = await GetAgentAsync(args);
+ return new DefaultAgentContext
+ {
+ Wallet = await _walletService.GetWalletAsync(
+ configuration: _agentOptions.WalletConfiguration,
+ credentials: _agentOptions.WalletCredentials),
+ Pool = new PoolAwaitable(() => _poolService.GetPoolAsync(
+ poolName: _agentOptions.PoolName,
+ protocolVersion: _agentOptions.ProtocolVersion)),
+ SupportedMessages = agent.GetSupportedMessageTypes(),
+ Agent = await GetAgentAsync(args),
+ UseMessageTypesHttps = _agentOptions.UseMessageTypesHttps
+ };
+ }
+ }
+}
diff --git a/src/Hyperledger.Aries/Agents/Extensions/AgentFrameworkBuilderExtensions.cs b/legacy/src/Hyperledger.Aries/Agents/Extensions/AgentFrameworkBuilderExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Extensions/AgentFrameworkBuilderExtensions.cs
rename to legacy/src/Hyperledger.Aries/Agents/Extensions/AgentFrameworkBuilderExtensions.cs
diff --git a/src/Hyperledger.Aries/Agents/Extensions/AgentsExtensions.cs b/legacy/src/Hyperledger.Aries/Agents/Extensions/AgentsExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Extensions/AgentsExtensions.cs
rename to legacy/src/Hyperledger.Aries/Agents/Extensions/AgentsExtensions.cs
diff --git a/src/Hyperledger.Aries/Agents/Extensions/ServiceCollectionExtensions.cs b/legacy/src/Hyperledger.Aries/Agents/Extensions/ServiceCollectionExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Extensions/ServiceCollectionExtensions.cs
rename to legacy/src/Hyperledger.Aries/Agents/Extensions/ServiceCollectionExtensions.cs
diff --git a/src/Hyperledger.Aries/Agents/MessageHandlerBase.cs b/legacy/src/Hyperledger.Aries/Agents/MessageHandlerBase.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/MessageHandlerBase.cs
rename to legacy/src/Hyperledger.Aries/Agents/MessageHandlerBase.cs
diff --git a/src/Hyperledger.Aries/Agents/MessageType.cs b/legacy/src/Hyperledger.Aries/Agents/MessageType.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/MessageType.cs
rename to legacy/src/Hyperledger.Aries/Agents/MessageType.cs
diff --git a/src/Hyperledger.Aries/Agents/MessageTypes.cs b/legacy/src/Hyperledger.Aries/Agents/MessageTypes.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/MessageTypes.cs
rename to legacy/src/Hyperledger.Aries/Agents/MessageTypes.cs
diff --git a/src/Hyperledger.Aries/Agents/MessageTypesHttps.cs b/legacy/src/Hyperledger.Aries/Agents/MessageTypesHttps.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/MessageTypesHttps.cs
rename to legacy/src/Hyperledger.Aries/Agents/MessageTypesHttps.cs
diff --git a/src/Hyperledger.Aries/Agents/Models/AgentEndpoint.cs b/legacy/src/Hyperledger.Aries/Agents/Models/AgentEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Models/AgentEndpoint.cs
rename to legacy/src/Hyperledger.Aries/Agents/Models/AgentEndpoint.cs
diff --git a/src/Hyperledger.Aries/Agents/Models/AgentMessage.cs b/legacy/src/Hyperledger.Aries/Agents/Models/AgentMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Models/AgentMessage.cs
rename to legacy/src/Hyperledger.Aries/Agents/Models/AgentMessage.cs
diff --git a/src/Hyperledger.Aries/Agents/Models/AgentOwner.cs b/legacy/src/Hyperledger.Aries/Agents/Models/AgentOwner.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Models/AgentOwner.cs
rename to legacy/src/Hyperledger.Aries/Agents/Models/AgentOwner.cs
diff --git a/src/Hyperledger.Aries/Agents/Models/MessageContext.cs b/legacy/src/Hyperledger.Aries/Agents/Models/MessageContext.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Models/MessageContext.cs
rename to legacy/src/Hyperledger.Aries/Agents/Models/MessageContext.cs
diff --git a/src/Hyperledger.Aries/Agents/Models/PackedMessageContext.cs b/legacy/src/Hyperledger.Aries/Agents/Models/PackedMessageContext.cs
similarity index 97%
rename from src/Hyperledger.Aries/Agents/Models/PackedMessageContext.cs
rename to legacy/src/Hyperledger.Aries/Agents/Models/PackedMessageContext.cs
index bbdca88c..bde5a35a 100644
--- a/src/Hyperledger.Aries/Agents/Models/PackedMessageContext.cs
+++ b/legacy/src/Hyperledger.Aries/Agents/Models/PackedMessageContext.cs
@@ -1,48 +1,48 @@
-using Hyperledger.Aries.Extensions;
-using Hyperledger.Aries.Features.Handshakes.Common;
-using Newtonsoft.Json.Linq;
-
-namespace Hyperledger.Aries.Agents
-{
- ///
- /// Represents an agent message in encrypted (packed) format
- ///
- public class PackedMessageContext : MessageContext
- {
- ///
- /// Initializes a new instance of the class.
- ///
- ///
- ///
- public PackedMessageContext(byte[] message) : base(message, true)
- {
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- ///
- ///
- public PackedMessageContext(string message) : base(message, true)
- {
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- ///
- public PackedMessageContext(JObject message) : base(message.ToJson(), true)
- {
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- ///
- ///
- ///
- public PackedMessageContext(string message, ConnectionRecord connection) : base(message, true, connection)
- {
- }
- }
-}
+using Hyperledger.Aries.Extensions;
+using Hyperledger.Aries.Features.Handshakes.Common;
+using Newtonsoft.Json.Linq;
+
+namespace Hyperledger.Aries.Agents
+{
+ ///
+ /// Represents an agent message in encrypted (packed) format
+ ///
+ public class PackedMessageContext : MessageContext
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ ///
+ public PackedMessageContext(byte[] message) : base(message, true)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ ///
+ public PackedMessageContext(string message) : base(message, true)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ public PackedMessageContext(JObject message) : base(message.ToJson(), true)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ ///
+ ///
+ public PackedMessageContext(string message, ConnectionRecord connection) : base(message, true, connection)
+ {
+ }
+ }
+}
diff --git a/src/Hyperledger.Aries/Agents/Models/UnpackedMessageContext.cs b/legacy/src/Hyperledger.Aries/Agents/Models/UnpackedMessageContext.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Models/UnpackedMessageContext.cs
rename to legacy/src/Hyperledger.Aries/Agents/Models/UnpackedMessageContext.cs
diff --git a/src/Hyperledger.Aries/Agents/Transport/DefaultMessageService.cs b/legacy/src/Hyperledger.Aries/Agents/Transport/DefaultMessageService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Transport/DefaultMessageService.cs
rename to legacy/src/Hyperledger.Aries/Agents/Transport/DefaultMessageService.cs
diff --git a/src/Hyperledger.Aries/Agents/Transport/HttpMessageDispatcher.cs b/legacy/src/Hyperledger.Aries/Agents/Transport/HttpMessageDispatcher.cs
similarity index 97%
rename from src/Hyperledger.Aries/Agents/Transport/HttpMessageDispatcher.cs
rename to legacy/src/Hyperledger.Aries/Agents/Transport/HttpMessageDispatcher.cs
index 508e8b64..0687ed05 100644
--- a/src/Hyperledger.Aries/Agents/Transport/HttpMessageDispatcher.cs
+++ b/legacy/src/Hyperledger.Aries/Agents/Transport/HttpMessageDispatcher.cs
@@ -1,66 +1,66 @@
-using System;
-using System.Linq;
-using System.Net.Http;
-using System.Net.Http.Headers;
-using System.Threading.Tasks;
-
-namespace Hyperledger.Aries.Agents
-{
- ///
- /// Http message dispatcher.
- ///
- public class HttpMessageDispatcher : IMessageDispatcher
- {
- /// The HTTP client
- protected readonly HttpClient HttpClient;
-
- ///
- /// Default constructor.
- ///
- /// The HTTP client factory.
- public HttpMessageDispatcher(IHttpClientFactory httpClientFactory)
- {
- HttpClient = httpClientFactory.CreateClient();
- }
-
- ///
- public string[] TransportSchemes => new[] { "http", "https" };
-
- ///
- public async Task DispatchAsync(Uri endpointUri, PackedMessageContext message)
- {
- var request = new HttpRequestMessage
- {
- RequestUri = endpointUri,
- Method = HttpMethod.Post,
- Content = new ByteArrayContent(message.Payload)
- };
-
- var encryptedEnvelopeContentType = new MediaTypeHeaderValue(DefaultMessageService.EncryptedEnvelopeMessageMimeType);
- request.Content.Headers.ContentType = encryptedEnvelopeContentType;
-
- var response = await HttpClient.SendAsync(request);
-
- if (!response.IsSuccessStatusCode)
- {
- var responseBody = await response.Content.ReadAsStringAsync();
- throw new AriesFrameworkException(
- ErrorCode.A2AMessageTransmissionError, $"Dispatch Failure. Endpoint:{endpointUri} Status: {response.StatusCode} Content: {responseBody}");
- }
-
- var responseContentType = response.Content?.Headers?.ContentType?.MediaType;
- if(DefaultMessageService.SupportedMimeTypes.Contains(responseContentType))
- {
- var rawContent = await response.Content.ReadAsByteArrayAsync();
-
- //TODO this assumes all messages are packed
- if (rawContent.Length > 0)
- {
- return new PackedMessageContext(rawContent);
- }
- }
-
- return null;
- }
- }
-}
+using System;
+using System.Linq;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Threading.Tasks;
+
+namespace Hyperledger.Aries.Agents
+{
+ ///
+ /// Http message dispatcher.
+ ///
+ public class HttpMessageDispatcher : IMessageDispatcher
+ {
+ /// The HTTP client
+ protected readonly HttpClient HttpClient;
+
+ ///
+ /// Default constructor.
+ ///
+ /// The HTTP client factory.
+ public HttpMessageDispatcher(IHttpClientFactory httpClientFactory)
+ {
+ HttpClient = httpClientFactory.CreateClient();
+ }
+
+ ///
+ public string[] TransportSchemes => new[] { "http", "https" };
+
+ ///
+ public async Task DispatchAsync(Uri endpointUri, PackedMessageContext message)
+ {
+ var request = new HttpRequestMessage
+ {
+ RequestUri = endpointUri,
+ Method = HttpMethod.Post,
+ Content = new ByteArrayContent(message.Payload)
+ };
+
+ var encryptedEnvelopeContentType = new MediaTypeHeaderValue(DefaultMessageService.EncryptedEnvelopeMessageMimeType);
+ request.Content.Headers.ContentType = encryptedEnvelopeContentType;
+
+ var response = await HttpClient.SendAsync(request);
+
+ if (!response.IsSuccessStatusCode)
+ {
+ var responseBody = await response.Content.ReadAsStringAsync();
+ throw new AriesFrameworkException(
+ ErrorCode.A2AMessageTransmissionError, $"Dispatch Failure. Endpoint:{endpointUri} Status: {response.StatusCode} Content: {responseBody}");
+ }
+
+ var responseContentType = response.Content?.Headers?.ContentType?.MediaType;
+ if(DefaultMessageService.SupportedMimeTypes.Contains(responseContentType))
+ {
+ var rawContent = await response.Content.ReadAsByteArrayAsync();
+
+ //TODO this assumes all messages are packed
+ if (rawContent.Length > 0)
+ {
+ return new PackedMessageContext(rawContent);
+ }
+ }
+
+ return null;
+ }
+ }
+}
diff --git a/src/Hyperledger.Aries/Agents/Transport/IMessageDispatcher.cs b/legacy/src/Hyperledger.Aries/Agents/Transport/IMessageDispatcher.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Transport/IMessageDispatcher.cs
rename to legacy/src/Hyperledger.Aries/Agents/Transport/IMessageDispatcher.cs
diff --git a/src/Hyperledger.Aries/Agents/Transport/IMessageService.cs b/legacy/src/Hyperledger.Aries/Agents/Transport/IMessageService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Transport/IMessageService.cs
rename to legacy/src/Hyperledger.Aries/Agents/Transport/IMessageService.cs
diff --git a/src/Hyperledger.Aries/Agents/Transport/MessageServiceExtensions.cs b/legacy/src/Hyperledger.Aries/Agents/Transport/MessageServiceExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Agents/Transport/MessageServiceExtensions.cs
rename to legacy/src/Hyperledger.Aries/Agents/Transport/MessageServiceExtensions.cs
diff --git a/src/Hyperledger.Aries/Common/AcknowledgeMessage.cs b/legacy/src/Hyperledger.Aries/Common/AcknowledgeMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/AcknowledgeMessage.cs
rename to legacy/src/Hyperledger.Aries/Common/AcknowledgeMessage.cs
diff --git a/src/Hyperledger.Aries/Common/AcknowledgementStatusConstants.cs b/legacy/src/Hyperledger.Aries/Common/AcknowledgementStatusConstants.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/AcknowledgementStatusConstants.cs
rename to legacy/src/Hyperledger.Aries/Common/AcknowledgementStatusConstants.cs
diff --git a/src/Hyperledger.Aries/Common/AgentFrameworkException.cs b/legacy/src/Hyperledger.Aries/Common/AgentFrameworkException.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/AgentFrameworkException.cs
rename to legacy/src/Hyperledger.Aries/Common/AgentFrameworkException.cs
diff --git a/src/Hyperledger.Aries/Common/ErrorCode.cs b/legacy/src/Hyperledger.Aries/Common/ErrorCode.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/ErrorCode.cs
rename to legacy/src/Hyperledger.Aries/Common/ErrorCode.cs
diff --git a/src/Hyperledger.Aries/Common/EventAggregator.cs b/legacy/src/Hyperledger.Aries/Common/EventAggregator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/EventAggregator.cs
rename to legacy/src/Hyperledger.Aries/Common/EventAggregator.cs
diff --git a/src/Hyperledger.Aries/Common/FormattingExtensions.cs b/legacy/src/Hyperledger.Aries/Common/FormattingExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/FormattingExtensions.cs
rename to legacy/src/Hyperledger.Aries/Common/FormattingExtensions.cs
diff --git a/src/Hyperledger.Aries/Common/IEventAggregator.cs b/legacy/src/Hyperledger.Aries/Common/IEventAggregator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/IEventAggregator.cs
rename to legacy/src/Hyperledger.Aries/Common/IEventAggregator.cs
diff --git a/src/Hyperledger.Aries/Common/LoggingEvents.cs b/legacy/src/Hyperledger.Aries/Common/LoggingEvents.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/LoggingEvents.cs
rename to legacy/src/Hyperledger.Aries/Common/LoggingEvents.cs
diff --git a/src/Hyperledger.Aries/Common/MediaTypes.cs b/legacy/src/Hyperledger.Aries/Common/MediaTypes.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/MediaTypes.cs
rename to legacy/src/Hyperledger.Aries/Common/MediaTypes.cs
diff --git a/src/Hyperledger.Aries/Common/ServiceMessageProcessingEvent.cs b/legacy/src/Hyperledger.Aries/Common/ServiceMessageProcessingEvent.cs
similarity index 100%
rename from src/Hyperledger.Aries/Common/ServiceMessageProcessingEvent.cs
rename to legacy/src/Hyperledger.Aries/Common/ServiceMessageProcessingEvent.cs
diff --git a/src/Hyperledger.Aries/Configuration/AgentOptions.cs b/legacy/src/Hyperledger.Aries/Configuration/AgentOptions.cs
similarity index 96%
rename from src/Hyperledger.Aries/Configuration/AgentOptions.cs
rename to legacy/src/Hyperledger.Aries/Configuration/AgentOptions.cs
index ad367bc3..a3c04c84 100644
--- a/src/Hyperledger.Aries/Configuration/AgentOptions.cs
+++ b/legacy/src/Hyperledger.Aries/Configuration/AgentOptions.cs
@@ -1,187 +1,187 @@
-using Hyperledger.Aries.Storage;
-using Hyperledger.Aries.Utils;
-using System;
-using System.Collections.Generic;
-using System.IO;
-
-namespace Hyperledger.Aries.Configuration
-{
- ///
- /// Agent options
- ///
- public class AgentOptions
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public AgentOptions()
- {
- WalletConfiguration = new WalletConfiguration { Id = "DefaultWallet" };
- WalletCredentials = new WalletCredentials { Key = "DefaultKey" };
- }
-
- ///
- /// Gets or sets the wallet configuration.
- ///
- /// The wallet configuration.
- public WalletConfiguration WalletConfiguration
- {
- get;
- set;
- }
-
- ///
- /// Gets or sets the wallet credentials.
- ///
- /// The wallet credentials.
- public WalletCredentials WalletCredentials
- {
- get;
- set;
- }
- ///
- /// The DID of the issuer key pair
- ///
- ///
- public string IssuerDid { get; set; }
-
- ///
- /// The key of the
- ///
- ///
- public string IssuerKeySeed { get; set; }
-
- ///
- /// Gets or sets the agent did
- ///
- ///
- public string AgentDid { get; set; }
-
- ///
- /// Gets or sets the agent key generation seed
- ///
- ///
- public string AgentKeySeed { get; set; }
-
- ///
- /// Gets or sets the agent endpoint uri
- ///
- ///
- public string EndpointUri { get; set; }
-
- ///
- /// Gets or sets the agent name used in connection invitations
- ///
- ///
- public string AgentName { get; set; }
-
- ///
- /// Gets or sets the agent image uri
- ///
- ///
- public string AgentImageUri { get; set; }
-
- ///
- /// The verification key of the agent
- ///
- ///
- public string AgentKey { get; set; }
-
- ///
- /// Gets or sets the name of the pool.
- ///
- /// The name of the pool.
- public string PoolName
- {
- get;
- set;
- } = "DefaultPool";
-
- ///
- /// Gets or sets the genesis filename.
- ///
- /// The genesis filename.
- public string GenesisFilename
- {
- get;
- set;
- }
-
- ///
- /// Gets or sets the protocol version of the nodes.
- ///
- ///
- /// The protocol version.
- ///
- public int ProtocolVersion
- {
- get;
- set;
- } = 2;
-
- ///
- /// Gets or sets the revocation registry URI path e.g. "/tails".
- /// This path will be appended to the EndpointUri value.
- /// This is used to optimize the ASP.NET Core middleware pipeline.
- /// Default value is "/tails". The value must start with a slash '/'.
- ///
- ///
- /// The revocation registry base URI path.
- ///
- public string RevocationRegistryUriPath { get; set; } = "/tails";
-
- ///
- /// Gets or sets the revocation registry directory where
- /// revocation tails files will be stored. The default path
- /// is ~/.indy_client/tails
- ///
- ///
- /// The revocation registry directory.
- ///
- public string RevocationRegistryDirectory { get; set; } = EnvironmentUtils.GetTailsPath();
-
- ///
- /// Gets or sets the backup directory where physical backups will be stored.
- /// This property is only used when running a mediator service.
- ///
- ///
- /// The backup directory.
- ///
- public string BackupDirectory { get; set; } = Path.Combine(Path.GetTempPath(), "AriesBackups");
-
- ///
- /// Automatically respond to credential offers with a credential request. Default: false
- ///
- /// The name of the pool.
- public bool AutoRespondCredentialOffer
- {
- get;
- set;
- } = false;
-
- ///
- /// Automatically respond to credential request with corresponding credentials. Default: false
- ///
- /// The name of the pool.
- public bool AutoRespondCredentialRequest
- {
- get;
- set;
- } = false;
-
- ///
- /// Gets or sets the value for UseMessageTypesHttps.
- /// Only affects messages created by the default services,
- /// if you create additional messages you have to set the useMessageTypesHttps via ctor too
- ///
- /// True if to use UseMessageTypesHttps.
- public bool UseMessageTypesHttps { get; set; }
-
- ///
- /// Gets or sets the value for Metadata dictionary.
- /// This dictionary can be used with InboxCreation on the mediator agent.
- /// Data is stored under InboxRecord tags on the mediator agent.
- ///
- public Dictionary MetaData { get; set; }
- }
-}
+using Hyperledger.Aries.Storage;
+using Hyperledger.Aries.Utils;
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace Hyperledger.Aries.Configuration
+{
+ ///
+ /// Agent options
+ ///
+ public class AgentOptions
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public AgentOptions()
+ {
+ WalletConfiguration = new WalletConfiguration { Id = "DefaultWallet" };
+ WalletCredentials = new WalletCredentials { Key = "DefaultKey" };
+ }
+
+ ///
+ /// Gets or sets the wallet configuration.
+ ///
+ /// The wallet configuration.
+ public WalletConfiguration WalletConfiguration
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Gets or sets the wallet credentials.
+ ///
+ /// The wallet credentials.
+ public WalletCredentials WalletCredentials
+ {
+ get;
+ set;
+ }
+ ///
+ /// The DID of the issuer key pair
+ ///
+ ///
+ public string IssuerDid { get; set; }
+
+ ///
+ /// The key of the
+ ///
+ ///
+ public string IssuerKeySeed { get; set; }
+
+ ///
+ /// Gets or sets the agent did
+ ///
+ ///
+ public string AgentDid { get; set; }
+
+ ///
+ /// Gets or sets the agent key generation seed
+ ///
+ ///
+ public string AgentKeySeed { get; set; }
+
+ ///
+ /// Gets or sets the agent endpoint uri
+ ///
+ ///
+ public string EndpointUri { get; set; }
+
+ ///
+ /// Gets or sets the agent name used in connection invitations
+ ///
+ ///
+ public string AgentName { get; set; }
+
+ ///
+ /// Gets or sets the agent image uri
+ ///
+ ///
+ public string AgentImageUri { get; set; }
+
+ ///
+ /// The verification key of the agent
+ ///
+ ///
+ public string AgentKey { get; set; }
+
+ ///
+ /// Gets or sets the name of the pool.
+ ///
+ /// The name of the pool.
+ public string PoolName
+ {
+ get;
+ set;
+ } = "DefaultPool";
+
+ ///
+ /// Gets or sets the genesis filename.
+ ///
+ /// The genesis filename.
+ public string GenesisFilename
+ {
+ get;
+ set;
+ }
+
+ ///
+ /// Gets or sets the protocol version of the nodes.
+ ///
+ ///
+ /// The protocol version.
+ ///
+ public int ProtocolVersion
+ {
+ get;
+ set;
+ } = 2;
+
+ ///
+ /// Gets or sets the revocation registry URI path e.g. "/tails".
+ /// This path will be appended to the EndpointUri value.
+ /// This is used to optimize the ASP.NET Core middleware pipeline.
+ /// Default value is "/tails". The value must start with a slash '/'.
+ ///
+ ///
+ /// The revocation registry base URI path.
+ ///
+ public string RevocationRegistryUriPath { get; set; } = "/tails";
+
+ ///
+ /// Gets or sets the revocation registry directory where
+ /// revocation tails files will be stored. The default path
+ /// is ~/.indy_client/tails
+ ///
+ ///
+ /// The revocation registry directory.
+ ///
+ public string RevocationRegistryDirectory { get; set; } = EnvironmentUtils.GetTailsPath();
+
+ ///
+ /// Gets or sets the backup directory where physical backups will be stored.
+ /// This property is only used when running a mediator service.
+ ///
+ ///
+ /// The backup directory.
+ ///
+ public string BackupDirectory { get; set; } = Path.Combine(Path.GetTempPath(), "AriesBackups");
+
+ ///
+ /// Automatically respond to credential offers with a credential request. Default: false
+ ///
+ /// The name of the pool.
+ public bool AutoRespondCredentialOffer
+ {
+ get;
+ set;
+ } = false;
+
+ ///
+ /// Automatically respond to credential request with corresponding credentials. Default: false
+ ///
+ /// The name of the pool.
+ public bool AutoRespondCredentialRequest
+ {
+ get;
+ set;
+ } = false;
+
+ ///
+ /// Gets or sets the value for UseMessageTypesHttps.
+ /// Only affects messages created by the default services,
+ /// if you create additional messages you have to set the useMessageTypesHttps via ctor too
+ ///
+ /// True if to use UseMessageTypesHttps.
+ public bool UseMessageTypesHttps { get; set; }
+
+ ///
+ /// Gets or sets the value for Metadata dictionary.
+ /// This dictionary can be used with InboxCreation on the mediator agent.
+ /// Data is stored under InboxRecord tags on the mediator agent.
+ ///
+ public Dictionary MetaData { get; set; }
+ }
+}
diff --git a/src/Hyperledger.Aries/Configuration/AriesFrameworkBuilder.cs b/legacy/src/Hyperledger.Aries/Configuration/AriesFrameworkBuilder.cs
similarity index 100%
rename from src/Hyperledger.Aries/Configuration/AriesFrameworkBuilder.cs
rename to legacy/src/Hyperledger.Aries/Configuration/AriesFrameworkBuilder.cs
diff --git a/src/Hyperledger.Aries/Configuration/DefaultProvisioningHostedService.cs b/legacy/src/Hyperledger.Aries/Configuration/DefaultProvisioningHostedService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Configuration/DefaultProvisioningHostedService.cs
rename to legacy/src/Hyperledger.Aries/Configuration/DefaultProvisioningHostedService.cs
diff --git a/src/Hyperledger.Aries/Configuration/DefaultProvisioningService.cs b/legacy/src/Hyperledger.Aries/Configuration/DefaultProvisioningService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Configuration/DefaultProvisioningService.cs
rename to legacy/src/Hyperledger.Aries/Configuration/DefaultProvisioningService.cs
diff --git a/src/Hyperledger.Aries/Configuration/IProvisioningService.cs b/legacy/src/Hyperledger.Aries/Configuration/IProvisioningService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Configuration/IProvisioningService.cs
rename to legacy/src/Hyperledger.Aries/Configuration/IProvisioningService.cs
diff --git a/src/Hyperledger.Aries/Configuration/PoolConfigurationService.cs b/legacy/src/Hyperledger.Aries/Configuration/PoolConfigurationService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Configuration/PoolConfigurationService.cs
rename to legacy/src/Hyperledger.Aries/Configuration/PoolConfigurationService.cs
diff --git a/src/Hyperledger.Aries/Configuration/ProvisioningRecord.cs b/legacy/src/Hyperledger.Aries/Configuration/ProvisioningRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Configuration/ProvisioningRecord.cs
rename to legacy/src/Hyperledger.Aries/Configuration/ProvisioningRecord.cs
diff --git a/src/Hyperledger.Aries/Configuration/ServiceCollectionExtensions.cs b/legacy/src/Hyperledger.Aries/Configuration/ServiceCollectionExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Configuration/ServiceCollectionExtensions.cs
rename to legacy/src/Hyperledger.Aries/Configuration/ServiceCollectionExtensions.cs
diff --git a/src/Hyperledger.Aries/Configuration/TxnAuthorAcceptanceService.cs b/legacy/src/Hyperledger.Aries/Configuration/TxnAuthorAcceptanceService.cs
similarity index 99%
rename from src/Hyperledger.Aries/Configuration/TxnAuthorAcceptanceService.cs
rename to legacy/src/Hyperledger.Aries/Configuration/TxnAuthorAcceptanceService.cs
index c9088d6e..bb0baf84 100644
--- a/src/Hyperledger.Aries/Configuration/TxnAuthorAcceptanceService.cs
+++ b/legacy/src/Hyperledger.Aries/Configuration/TxnAuthorAcceptanceService.cs
@@ -79,7 +79,7 @@ public Task StopAsync(CancellationToken cancellationToken)
private string GetDigest(IndyTaa taa)
{
- using var shaAlgorithm = SHA256.Create();
+ using var shaAlgorithm = SHA256.Create();
return shaAlgorithm.ComputeHash(
$"{taa.Version}{taa.Text}"
.GetUTF8Bytes())
diff --git a/src/Hyperledger.Aries/Decorators/Attachments/AttachDecorator.cs b/legacy/src/Hyperledger.Aries/Decorators/Attachments/AttachDecorator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Attachments/AttachDecorator.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Attachments/AttachDecorator.cs
diff --git a/src/Hyperledger.Aries/Decorators/Attachments/AttachExtensions.cs b/legacy/src/Hyperledger.Aries/Decorators/Attachments/AttachExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Attachments/AttachExtensions.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Attachments/AttachExtensions.cs
diff --git a/src/Hyperledger.Aries/Decorators/Attachments/Attachment.cs b/legacy/src/Hyperledger.Aries/Decorators/Attachments/Attachment.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Attachments/Attachment.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Attachments/Attachment.cs
diff --git a/src/Hyperledger.Aries/Decorators/Attachments/AttachmentContent.cs b/legacy/src/Hyperledger.Aries/Decorators/Attachments/AttachmentContent.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Attachments/AttachmentContent.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Attachments/AttachmentContent.cs
diff --git a/src/Hyperledger.Aries/Decorators/Attachments/AttachmentContentExtensions.cs b/legacy/src/Hyperledger.Aries/Decorators/Attachments/AttachmentContentExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Attachments/AttachmentContentExtensions.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Attachments/AttachmentContentExtensions.cs
diff --git a/src/Hyperledger.Aries/Decorators/Attachments/JsonWebSignature.cs b/legacy/src/Hyperledger.Aries/Decorators/Attachments/JsonWebSignature.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Attachments/JsonWebSignature.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Attachments/JsonWebSignature.cs
diff --git a/src/Hyperledger.Aries/Decorators/DecoratorExtensions.cs b/legacy/src/Hyperledger.Aries/Decorators/DecoratorExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/DecoratorExtensions.cs
rename to legacy/src/Hyperledger.Aries/Decorators/DecoratorExtensions.cs
diff --git a/src/Hyperledger.Aries/Decorators/Decorators.cs b/legacy/src/Hyperledger.Aries/Decorators/Decorators.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Decorators.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Decorators.cs
diff --git a/src/Hyperledger.Aries/Decorators/Payments/PaymentReceiptDecorator.cs b/legacy/src/Hyperledger.Aries/Decorators/Payments/PaymentReceiptDecorator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Payments/PaymentReceiptDecorator.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Payments/PaymentReceiptDecorator.cs
diff --git a/src/Hyperledger.Aries/Decorators/Payments/PaymentRequestDecorator.cs b/legacy/src/Hyperledger.Aries/Decorators/Payments/PaymentRequestDecorator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Payments/PaymentRequestDecorator.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Payments/PaymentRequestDecorator.cs
diff --git a/src/Hyperledger.Aries/Decorators/PleaseAck/OnValues.cs b/legacy/src/Hyperledger.Aries/Decorators/PleaseAck/OnValues.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/PleaseAck/OnValues.cs
rename to legacy/src/Hyperledger.Aries/Decorators/PleaseAck/OnValues.cs
diff --git a/src/Hyperledger.Aries/Decorators/PleaseAck/PleaseAckDecorator.cs b/legacy/src/Hyperledger.Aries/Decorators/PleaseAck/PleaseAckDecorator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/PleaseAck/PleaseAckDecorator.cs
rename to legacy/src/Hyperledger.Aries/Decorators/PleaseAck/PleaseAckDecorator.cs
diff --git a/src/Hyperledger.Aries/Decorators/Service/ServiceDecorator.cs b/legacy/src/Hyperledger.Aries/Decorators/Service/ServiceDecorator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Service/ServiceDecorator.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Service/ServiceDecorator.cs
diff --git a/src/Hyperledger.Aries/Decorators/Service/ServiceDecoratorExtensions.cs b/legacy/src/Hyperledger.Aries/Decorators/Service/ServiceDecoratorExtensions.cs
similarity index 97%
rename from src/Hyperledger.Aries/Decorators/Service/ServiceDecoratorExtensions.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Service/ServiceDecoratorExtensions.cs
index 89a52227..1dd24442 100644
--- a/src/Hyperledger.Aries/Decorators/Service/ServiceDecoratorExtensions.cs
+++ b/legacy/src/Hyperledger.Aries/Decorators/Service/ServiceDecoratorExtensions.cs
@@ -1,29 +1,29 @@
-using System.Linq;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Decorators.Service;
-using Hyperledger.Aries.Utils;
-
-namespace System
-{
- ///
- /// Service decorator extensions
- ///
- public static class ServiceDecoratorExtensions
- {
- ///
- /// Get a service decorator representation for this provisioning record
- ///
- ///
- ///
- ///
- public static ServiceDecorator ToServiceDecorator(this ProvisioningRecord record, bool useDidKeyFormat = false)
- {
- return new ServiceDecorator
- {
- ServiceEndpoint = record.Endpoint.Uri,
- RoutingKeys = useDidKeyFormat ? record.Endpoint.Verkey.Select(DidUtils.ConvertVerkeyToDidKey) : record.Endpoint.Verkey,
- RecipientKeys = new [] { useDidKeyFormat ? DidUtils.ConvertVerkeyToDidKey(record.IssuerVerkey) : record.IssuerVerkey }
- };
- }
- }
-}
+using System.Linq;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Decorators.Service;
+using Hyperledger.Aries.Utils;
+
+namespace System
+{
+ ///
+ /// Service decorator extensions
+ ///
+ public static class ServiceDecoratorExtensions
+ {
+ ///
+ /// Get a service decorator representation for this provisioning record
+ ///
+ ///
+ ///
+ ///
+ public static ServiceDecorator ToServiceDecorator(this ProvisioningRecord record, bool useDidKeyFormat = false)
+ {
+ return new ServiceDecorator
+ {
+ ServiceEndpoint = record.Endpoint.Uri,
+ RoutingKeys = useDidKeyFormat ? record.Endpoint.Verkey.Select(DidUtils.ConvertVerkeyToDidKey) : record.Endpoint.Verkey,
+ RecipientKeys = new [] { useDidKeyFormat ? DidUtils.ConvertVerkeyToDidKey(record.IssuerVerkey) : record.IssuerVerkey }
+ };
+ }
+ }
+}
diff --git a/src/Hyperledger.Aries/Decorators/Signature/SignatureDecorator.cs b/legacy/src/Hyperledger.Aries/Decorators/Signature/SignatureDecorator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Signature/SignatureDecorator.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Signature/SignatureDecorator.cs
diff --git a/src/Hyperledger.Aries/Decorators/Signature/SignatureUtils.cs b/legacy/src/Hyperledger.Aries/Decorators/Signature/SignatureUtils.cs
similarity index 99%
rename from src/Hyperledger.Aries/Decorators/Signature/SignatureUtils.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Signature/SignatureUtils.cs
index d0508caa..d9d4578d 100644
--- a/src/Hyperledger.Aries/Decorators/Signature/SignatureUtils.cs
+++ b/legacy/src/Hyperledger.Aries/Decorators/Signature/SignatureUtils.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Linq;
using System.Threading.Tasks;
using Hyperledger.Aries.Agents;
diff --git a/src/Hyperledger.Aries/Decorators/Threading/ThreadDecorator.cs b/legacy/src/Hyperledger.Aries/Decorators/Threading/ThreadDecorator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Threading/ThreadDecorator.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Threading/ThreadDecorator.cs
diff --git a/src/Hyperledger.Aries/Decorators/Threading/ThreadDecoratorExtensions.cs b/legacy/src/Hyperledger.Aries/Decorators/Threading/ThreadDecoratorExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Threading/ThreadDecoratorExtensions.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Threading/ThreadDecoratorExtensions.cs
diff --git a/src/Hyperledger.Aries/Decorators/Transport/TransportDecorator.cs b/legacy/src/Hyperledger.Aries/Decorators/Transport/TransportDecorator.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Transport/TransportDecorator.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Transport/TransportDecorator.cs
diff --git a/src/Hyperledger.Aries/Decorators/Transport/TransportDecoratorExtensions.cs b/legacy/src/Hyperledger.Aries/Decorators/Transport/TransportDecoratorExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Decorators/Transport/TransportDecoratorExtensions.cs
rename to legacy/src/Hyperledger.Aries/Decorators/Transport/TransportDecoratorExtensions.cs
diff --git a/src/Hyperledger.Aries/Features/BasicMessage/BasicMessage.cs b/legacy/src/Hyperledger.Aries/Features/BasicMessage/BasicMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/BasicMessage/BasicMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/BasicMessage/BasicMessage.cs
diff --git a/src/Hyperledger.Aries/Features/BasicMessage/BasicMessageRecord.cs b/legacy/src/Hyperledger.Aries/Features/BasicMessage/BasicMessageRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/BasicMessage/BasicMessageRecord.cs
rename to legacy/src/Hyperledger.Aries/Features/BasicMessage/BasicMessageRecord.cs
diff --git a/src/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageHandler.cs b/legacy/src/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageHandler.cs
diff --git a/src/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageService.cs b/legacy/src/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageService.cs
rename to legacy/src/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageService.cs
diff --git a/src/Hyperledger.Aries/Features/BasicMessage/IBasicMessageService.cs b/legacy/src/Hyperledger.Aries/Features/BasicMessage/IBasicMessageService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/BasicMessage/IBasicMessageService.cs
rename to legacy/src/Hyperledger.Aries/Features/BasicMessage/IBasicMessageService.cs
diff --git a/src/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryHandler.cs b/legacy/src/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryHandler.cs
diff --git a/src/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryService.cs b/legacy/src/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryService.cs
rename to legacy/src/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryService.cs
diff --git a/src/Hyperledger.Aries/Features/Discovery/DiscoveryDiscloseMessage.cs b/legacy/src/Hyperledger.Aries/Features/Discovery/DiscoveryDiscloseMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Discovery/DiscoveryDiscloseMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Discovery/DiscoveryDiscloseMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Discovery/DiscoveryQueryMessage.cs b/legacy/src/Hyperledger.Aries/Features/Discovery/DiscoveryQueryMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Discovery/DiscoveryQueryMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Discovery/DiscoveryQueryMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Discovery/IDiscoveryService.cs b/legacy/src/Hyperledger.Aries/Features/Discovery/IDiscoveryService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Discovery/IDiscoveryService.cs
rename to legacy/src/Hyperledger.Aries/Features/Discovery/IDiscoveryService.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Connection.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Connection.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Connection.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Connection.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/ConnectionAlias.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/ConnectionAlias.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/ConnectionAlias.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/ConnectionAlias.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/ConnectionRecord.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/ConnectionRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/ConnectionRecord.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/ConnectionRecord.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidCommServiceEndpoint.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidCommServiceEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidCommServiceEndpoint.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidCommServiceEndpoint.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDoc.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDoc.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDoc.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDoc.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocExtensions.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocExtensions.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocExtensions.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocKey.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocKey.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocKey.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocKey.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointTypes.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointTypes.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointTypes.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointTypes.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointsConverter.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointsConverter.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointsConverter.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointsConverter.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/IDidDocServiceEndpoint.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/IDidDocServiceEndpoint.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Dids/IDidDocServiceEndpoint.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/IDidDocServiceEndpoint.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/IndyAgentDidDocService.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/IndyAgentDidDocService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Common/Dids/IndyAgentDidDocService.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Common/Dids/IndyAgentDidDocService.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionHandler.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionHandler.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionService.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionService.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionService.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/Extensions/ConnectionServiceExtensions.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Extensions/ConnectionServiceExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/Extensions/ConnectionServiceExtensions.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Extensions/ConnectionServiceExtensions.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/IConnectionService.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/IConnectionService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/IConnectionService.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/IConnectionService.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionAcknowledgeMessage.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionAcknowledgeMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionAcknowledgeMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionAcknowledgeMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionInvitationMessage.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionInvitationMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionInvitationMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionInvitationMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionRequestMessage.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionRequestMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionRequestMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionRequestMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionResponseMessage.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionResponseMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionResponseMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionResponseMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/InviteConfiguration.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/InviteConfiguration.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/Connection/Models/InviteConfiguration.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/Connection/Models/InviteConfiguration.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeHandler.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeHandler.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeService.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeService.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeService.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/DidExchange/IDidExchangeService.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/IDidExchangeService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/DidExchange/IDidExchangeService.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/IDidExchangeService.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeCompleteMessage.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeCompleteMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeCompleteMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeCompleteMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeProblemReportMessage.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeProblemReportMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeProblemReportMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeProblemReportMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeRequestMessage.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeRequestMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeRequestMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeRequestMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeResponseMessage.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeResponseMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeResponseMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeResponseMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/HandshakeConstants.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/HandshakeConstants.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/HandshakeConstants.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/HandshakeConstants.cs
diff --git a/src/Hyperledger.Aries/Features/Handshakes/HandshakeProtocol.cs b/legacy/src/Hyperledger.Aries/Features/Handshakes/HandshakeProtocol.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Handshakes/HandshakeProtocol.cs
rename to legacy/src/Hyperledger.Aries/Features/Handshakes/HandshakeProtocol.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ICredentialService.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ICredentialService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ICredentialService.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ICredentialService.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ISchemaService.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ISchemaService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ISchemaService.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ISchemaService.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ITailsService.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ITailsService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ITailsService.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Abstractions/ITailsService.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/CredentialServiceExtensions.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/CredentialServiceExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/CredentialServiceExtensions.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/CredentialServiceExtensions.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialHandler.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialHandler.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialService.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialService.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialService.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/DefaultSchemaService.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultSchemaService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/DefaultSchemaService.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultSchemaService.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/DefaultTailsService.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultTailsService.cs
similarity index 99%
rename from src/Hyperledger.Aries/Features/IssueCredential/DefaultTailsService.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultTailsService.cs
index 1778bfc8..a8d531d8 100644
--- a/src/Hyperledger.Aries/Features/IssueCredential/DefaultTailsService.cs
+++ b/legacy/src/Hyperledger.Aries/Features/IssueCredential/DefaultTailsService.cs
@@ -3,7 +3,7 @@
using System.IO;
using System.Linq;
using System.Net.Http;
-using System.Security.Cryptography;
+using System.Security.Cryptography;
using System.Threading.Tasks;
using Hyperledger.Aries.Agents;
using Hyperledger.Aries.Configuration;
@@ -13,7 +13,7 @@
using Hyperledger.Indy.BlobStorageApi;
using Hyperledger.Indy.PoolApi;
using Microsoft.Extensions.Options;
-using Multiformats.Base;
+using Multiformats.Base;
using Newtonsoft.Json.Linq;
namespace Hyperledger.Aries.Features.IssueCredential
@@ -113,9 +113,9 @@ public virtual async Task EnsureTailsExistsAsync(IAgentContext agentCont
using var sha256 = SHA256.Create();
var computedHash = sha256.ComputeHash(bytes);
- if (!computedHash.SequenceEqual(hash))
- {
- throw new Exception("Tails file hash didn't match");
+ if (!computedHash.SequenceEqual(hash))
+ {
+ throw new Exception("Tails file hash didn't match");
}
File.WriteAllBytes(
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/Credential.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Credential.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/Credential.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Credential.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialDefinitionConfiguration.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialDefinitionConfiguration.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialDefinitionConfiguration.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialDefinitionConfiguration.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialInfo.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialInfo.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialInfo.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialInfo.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialMimeTypes.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialMimeTypes.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialMimeTypes.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialMimeTypes.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttribute.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttribute.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttribute.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttribute.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttributeConverter.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttributeConverter.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttributeConverter.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttributeConverter.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialAcknowledgeMessage.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialAcknowledgeMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialAcknowledgeMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialAcknowledgeMessage.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialIssueMessage.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialIssueMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialIssueMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialIssueMessage.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialOfferMessage.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialOfferMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialOfferMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialOfferMessage.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialPreviewMessage.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialPreviewMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialPreviewMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialPreviewMessage.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialProposalMessage.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialProposalMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialProposalMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialProposalMessage.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialRequestMessage.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialRequestMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialRequestMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialRequestMessage.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Models/OfferConfiguration.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/OfferConfiguration.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Models/OfferConfiguration.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Models/OfferConfiguration.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialRecord.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialRecord.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialRecord.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialState.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialState.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialState.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialState.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialTrigger.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialTrigger.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialTrigger.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/CredentialTrigger.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Records/DefinitionRecord.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/DefinitionRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Records/DefinitionRecord.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/DefinitionRecord.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Records/RevocationRegistryRecord.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/RevocationRegistryRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Records/RevocationRegistryRecord.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/RevocationRegistryRecord.cs
diff --git a/src/Hyperledger.Aries/Features/IssueCredential/Records/SchemaRecord.cs b/legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/SchemaRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/IssueCredential/Records/SchemaRecord.cs
rename to legacy/src/Hyperledger.Aries/Features/IssueCredential/Records/SchemaRecord.cs
diff --git a/src/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandHandler.cs b/legacy/src/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandHandler.cs
diff --git a/src/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandService.cs b/legacy/src/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandService.cs
rename to legacy/src/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandService.cs
diff --git a/src/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseAcceptedMessage.cs b/legacy/src/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseAcceptedMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseAcceptedMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseAcceptedMessage.cs
diff --git a/src/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseMessage.cs b/legacy/src/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseMessage.cs
diff --git a/src/Hyperledger.Aries/Features/OutOfBand/IOutOfBandService.cs b/legacy/src/Hyperledger.Aries/Features/OutOfBand/IOutOfBandService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/OutOfBand/IOutOfBandService.cs
rename to legacy/src/Hyperledger.Aries/Features/OutOfBand/IOutOfBandService.cs
diff --git a/src/Hyperledger.Aries/Features/OutOfBand/InvitationMessage.cs b/legacy/src/Hyperledger.Aries/Features/OutOfBand/InvitationMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/OutOfBand/InvitationMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/OutOfBand/InvitationMessage.cs
diff --git a/src/Hyperledger.Aries/Features/OutOfBand/InvitationMessageExtensions.cs b/legacy/src/Hyperledger.Aries/Features/OutOfBand/InvitationMessageExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/OutOfBand/InvitationMessageExtensions.cs
rename to legacy/src/Hyperledger.Aries/Features/OutOfBand/InvitationMessageExtensions.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/DefaultProofHandler.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/DefaultProofHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/DefaultProofHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/DefaultProofHandler.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/DefaultProofService.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/DefaultProofService.cs
similarity index 97%
rename from src/Hyperledger.Aries/Features/PresentProof/DefaultProofService.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/DefaultProofService.cs
index a40c7d0c..38447660 100644
--- a/src/Hyperledger.Aries/Features/PresentProof/DefaultProofService.cs
+++ b/legacy/src/Hyperledger.Aries/Features/PresentProof/DefaultProofService.cs
@@ -1,991 +1,991 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Common;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Contracts;
-using Hyperledger.Aries.Decorators;
-using Hyperledger.Aries.Decorators.Attachments;
-using Hyperledger.Aries.Decorators.Service;
-using Hyperledger.Aries.Decorators.Threading;
-using Hyperledger.Aries.Extensions;
-using Hyperledger.Aries.Features.Handshakes.Common;
-using Hyperledger.Aries.Features.Handshakes.Connection;
-using Hyperledger.Aries.Features.IssueCredential;
-using Hyperledger.Aries.Features.PresentProof.Messages;
-using Hyperledger.Aries.Ledger.Models;
-using Hyperledger.Aries.Models.Events;
-using Hyperledger.Aries.Storage;
-using Hyperledger.Aries.Utils;
-using Hyperledger.Indy.AnonCredsApi;
-using Microsoft.Extensions.Logging;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-
-namespace Hyperledger.Aries.Features.PresentProof
-{
- ///
- /// Proof Service
- ///
- ///
- public class DefaultProofService : IProofService
- {
- ///
- /// The event aggregator
- ///
- protected readonly IEventAggregator EventAggregator;
-
- ///
- /// The connection service
- ///
- protected readonly IConnectionService ConnectionService;
-
- ///
- /// The record service
- ///
- protected readonly IWalletRecordService RecordService;
-
- ///
- /// The provisioning service
- ///
- protected readonly IProvisioningService ProvisioningService;
-
- ///
- /// The ledger service
- ///
- protected readonly ILedgerService LedgerService;
-
- ///
- /// The logger
- ///
- protected readonly ILogger Logger;
-
- ///
- /// The tails service
- ///
- protected readonly ITailsService TailsService;
-
- ///
- /// Message Service
- ///
- protected readonly IMessageService MessageService;
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// The event aggregator.
- /// The connection service.
- /// The record service.
- /// The provisioning service.
- /// The ledger service.
- /// The tails service.
- /// The message service.
- /// The logger.
- public DefaultProofService(
- IEventAggregator eventAggregator,
- IConnectionService connectionService,
- IWalletRecordService recordService,
- IProvisioningService provisioningService,
- ILedgerService ledgerService,
- ITailsService tailsService,
- IMessageService messageService,
- ILogger logger)
- {
- EventAggregator = eventAggregator;
- TailsService = tailsService;
- MessageService = messageService;
- ConnectionService = connectionService;
- RecordService = recordService;
- ProvisioningService = provisioningService;
- LedgerService = ledgerService;
- Logger = logger;
- }
-
- ///
- public virtual async Task CreateProofAsync(IAgentContext agentContext,
- ProofRequest proofRequest, RequestedCredentials requestedCredentials)
- {
- var provisioningRecord = await ProvisioningService.GetProvisioningAsync(agentContext.Wallet);
-
- var credentialObjects = new List();
- foreach (var credId in requestedCredentials.GetCredentialIdentifiers())
- {
- var credentialInfo = JsonConvert.DeserializeObject(
- await AnonCreds.ProverGetCredentialAsync(agentContext.Wallet, credId));
-
- credentialObjects.Add(credentialInfo);
- }
-
- var schemas = await BuildSchemasAsync(
- agentContext: agentContext,
- schemaIds: credentialObjects.Select(x => x.SchemaId).Distinct());
-
- var definitions = await BuildCredentialDefinitionsAsync(
- agentContext: agentContext,
- credentialDefIds: credentialObjects.Select(x => x.CredentialDefinitionId).Distinct());
-
- var revocationStates = await BuildRevocationStatesAsync(
- agentContext: agentContext,
- credentialObjects: credentialObjects,
- proofRequest: proofRequest,
- requestedCredentials: requestedCredentials);
-
- var proofJson = await AnonCreds.ProverCreateProofAsync(
- wallet: agentContext.Wallet,
- proofRequest: proofRequest.ToJson(),
- requestedCredentials: requestedCredentials.ToJson(),
- masterSecret: provisioningRecord.MasterSecretId,
- schemas: schemas,
- credentialDefs: definitions,
- revStates: revocationStates);
-
- return proofJson;
- }
-
- ///
- public virtual async Task CreatePresentationAsync(IAgentContext agentContext, RequestPresentationMessage requestPresentation, RequestedCredentials requestedCredentials)
- {
- var service = requestPresentation.GetDecorator(DecoratorNames.ServiceDecorator);
-
- var record = await ProcessRequestAsync(agentContext, requestPresentation, null);
- var (presentationMessage, proofRecord) = await CreatePresentationAsync(agentContext, record.Id, requestedCredentials);
-
- await MessageService.SendAsync(
- agentContext: agentContext,
- message: presentationMessage,
- recipientKey: service.RecipientKeys.First(),
- endpointUri: service.ServiceEndpoint,
- routingKeys: service.RoutingKeys?.ToArray());
-
- return proofRecord;
- }
-
- ///
- public virtual async Task RejectProofRequestAsync(IAgentContext agentContext, string proofRequestId)
- {
- var request = await GetAsync(agentContext, proofRequestId);
-
- if (request.State != ProofState.Requested)
- throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
- $"Proof record state was invalid. Expected '{ProofState.Requested}', found '{request.State}'");
-
- await request.TriggerAsync(ProofTrigger.Reject);
- await RecordService.UpdateAsync(agentContext.Wallet, request);
- }
-
- ///
- public virtual async Task IsRevokedAsync(IAgentContext context, string credentialRecordId)
- {
- return await IsRevokedAsync(context, await RecordService.GetAsync(context.Wallet, credentialRecordId));
- }
-
- ///
- public virtual async Task IsRevokedAsync(IAgentContext context, CredentialRecord record)
- {
- if (record.RevocationRegistryId == null) return false;
- if (record.State == CredentialState.Offered || record.State == CredentialState.Requested) return false;
- if (record.State == CredentialState.Revoked || record.State == CredentialState.Rejected) return true;
-
- var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
- var proofRequest = new ProofRequest
- {
- Name = "revocation check",
- Version = "1.0",
- Nonce = await AnonCreds.GenerateNonceAsync(),
- RequestedAttributes = new Dictionary
- {
- { "referent1", new ProofAttributeInfo { Name = record.CredentialAttributesValues.First().Name } }
- }, NonRevoked = new RevocationInterval
- {
- From = (uint)now,
- To = (uint)now
- }
- };
-
- var proof = await CreateProofAsync(context, proofRequest, new RequestedCredentials
- {
- RequestedAttributes = new Dictionary
- {
- { "referent1", new RequestedAttribute { CredentialId = record.CredentialId, Timestamp = now, Revealed = true } }
- }
- });
-
- var isValid = await VerifyProofAsync(context, proofRequest.ToJson(), proof);
-
- if (!isValid)
- {
- await record.TriggerAsync(CredentialTrigger.Revoke);
-
- record.SetTag("LastRevocationCheck", now.ToString());
- await RecordService.UpdateAsync(context.Wallet, record);
- }
-
- return !isValid;
- }
-
- ///
- public virtual async Task VerifyProofAsync(IAgentContext agentContext, string proofRequestJson, string proofJson, bool validateEncoding = true)
- {
- var proof = JsonConvert.DeserializeObject(proofJson);
- var proofRequest = proofRequestJson.ToObject();
-
- // If any values are revealed, validate encoding
- // against expected values
- if (validateEncoding && proof.RequestedProof.RevealedAttributes != null)
- foreach (var attribute in proof.RequestedProof.RevealedAttributes)
- {
- if (!CredentialUtils.CheckValidEncoding(attribute.Value.Raw, attribute.Value.Encoded))
- {
- throw new AriesFrameworkException(ErrorCode.InvalidProofEncoding,
- $"The encoded value for '{attribute.Key}' is invalid. " +
- $"Expected '{CredentialUtils.GetEncoded(attribute.Value.Raw)}'. " +
- $"Actual '{attribute.Value.Encoded}'");
- }
- }
-
- var schemas = await BuildSchemasAsync(agentContext,
- proof.Identifiers
- .Select(x => x.SchemaId)
- .Where(x => x != null)
- .Distinct());
-
- var definitions = await BuildCredentialDefinitionsAsync(agentContext,
- proof.Identifiers
- .Select(x => x.CredentialDefintionId)
- .Where(x => x != null)
- .Distinct());
-
- var revocationDefinitions = await BuildRevocationRegistryDefinitionsAsync(agentContext,
- proof.Identifiers
- .Select(x => x.RevocationRegistryId)
- .Where(x => x != null)
- .Distinct());
-
- var revocationRegistries = await BuildRevocationRegistriesAsync(
- agentContext,
- proof.Identifiers.Where(x => x.RevocationRegistryId != null));
-
- return await AnonCreds.VerifierVerifyProofAsync(
- proofRequestJson,
- proofJson,
- schemas,
- definitions,
- revocationDefinitions,
- revocationRegistries);
- }
-
- ///
- public virtual async Task VerifyProofAsync(IAgentContext agentContext, string proofRecId)
- {
- var proofRecord = await GetAsync(agentContext, proofRecId);
-
- if (proofRecord.State != ProofState.Accepted)
- throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
- $"Proof record state was invalid. Expected '{ProofState.Accepted}', found '{proofRecord.State}'");
-
- return await VerifyProofAsync(agentContext, proofRecord.RequestJson, proofRecord.ProofJson);
- }
-
- ///
- public virtual Task> ListAsync(IAgentContext agentContext, ISearchQuery query = null,
- int count = 100) => RecordService.SearchAsync(agentContext.Wallet, query, null, count);
-
- ///
- public virtual async Task GetAsync(IAgentContext agentContext, string proofRecId)
- {
- Logger.LogInformation(LoggingEvents.GetProofRecord, "ProofRecordId {0}", proofRecId);
-
- return await RecordService.GetAsync(agentContext.Wallet, proofRecId) ??
- throw new AriesFrameworkException(ErrorCode.RecordNotFound, "Proof record not found");
- }
-
- ///
- public virtual async Task> ListCredentialsForProofRequestAsync(IAgentContext agentContext,
- ProofRequest proofRequest, string attributeReferent)
- {
- using (var search =
- await AnonCreds.ProverSearchCredentialsForProofRequestAsync(agentContext.Wallet, proofRequest.ToJson()))
- {
- var searchResult = await search.NextAsync(attributeReferent, 100);
- return JsonConvert.DeserializeObject>(searchResult);
- }
- }
-
- ///
- public virtual async Task CreateAcknowledgeMessageAsync(IAgentContext agentContext,
- string proofRecordId, string status = AcknowledgementStatusConstants.Ok)
- {
- var record = await GetAsync(agentContext, proofRecordId);
-
- var threadId = record.GetTag(TagConstants.LastThreadId);
- var acknowledgeMessage = new PresentationAcknowledgeMessage(agentContext.UseMessageTypesHttps)
- {
- Id = threadId,
- Status = status
- };
- acknowledgeMessage.ThreadFrom(threadId);
-
- return acknowledgeMessage;
- }
-
- ///
- public virtual async Task ProcessAcknowledgeMessageAsync(IAgentContext agentContext, PresentationAcknowledgeMessage acknowledgeMessage)
- {
- var proofRecord = await this.GetByThreadIdAsync(agentContext, acknowledgeMessage.GetThreadId());
-
- EventAggregator.Publish(new ServiceMessageProcessingEvent
- {
- RecordId = proofRecord.Id,
- MessageType = acknowledgeMessage.Type,
- ThreadId = acknowledgeMessage.GetThreadId()
- });
-
- return proofRecord;
- }
-
- ///
- public virtual async Task<(ProposePresentationMessage, ProofRecord)> CreateProposalAsync(IAgentContext agentContext, ProofProposal proofProposal, string connectionId)
- {
- Logger.LogInformation(LoggingEvents.CreateProofRequest, "ConnectionId {0}", connectionId);
-
- if (proofProposal == null)
- {
- throw new ArgumentNullException(nameof(proofProposal), "You must provide a presentation preview"); ;
- }
- if (connectionId != null)
- {
- var connection = await ConnectionService.GetAsync(agentContext, connectionId);
-
- if (connection.State != ConnectionState.Connected)
- throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
- $"Connection state was invalid. Expected '{ConnectionState.Connected}', found '{connection.State}'");
- }
- this.CheckProofProposalParameters(proofProposal);
-
-
- var threadId = Guid.NewGuid().ToString();
- var proofRecord = new ProofRecord
- {
- Id = Guid.NewGuid().ToString(),
- ConnectionId = connectionId,
- ProposalJson = proofProposal.ToJson(),
- State = ProofState.Proposed
- };
-
- proofRecord.SetTag(TagConstants.Role, TagConstants.Holder);
- proofRecord.SetTag(TagConstants.LastThreadId, threadId);
-
- await RecordService.AddAsync(agentContext.Wallet, proofRecord);
-
- var message = new ProposePresentationMessage(agentContext.UseMessageTypesHttps)
- {
- Id = threadId,
- Comment = proofProposal.Comment,
- PresentationPreviewMessage = new PresentationPreviewMessage(agentContext.UseMessageTypesHttps)
- {
- ProposedAttributes = proofProposal.ProposedAttributes.ToArray(),
- ProposedPredicates = proofProposal.ProposedPredicates.ToArray()
- },
- };
- message.ThreadFrom(threadId);
- return (message, proofRecord);
- }
-
- public virtual async Task ProcessProposalAsync(IAgentContext agentContext, ProposePresentationMessage proposePresentationMessage, ConnectionRecord connection)
- {
- // save in wallet
-
- var proofProposal = new ProofProposal
- {
- Comment = proposePresentationMessage.Comment,
- ProposedAttributes = proposePresentationMessage.PresentationPreviewMessage.ProposedAttributes.ToList(),
- ProposedPredicates = proposePresentationMessage.PresentationPreviewMessage.ProposedPredicates.ToList()
- };
-
- var proofRecord = new ProofRecord
- {
- Id = Guid.NewGuid().ToString(),
- ProposalJson = proofProposal.ToJson(),
- ConnectionId = connection?.Id,
- State = ProofState.Proposed
- };
-
- proofRecord.SetTag(TagConstants.LastThreadId, proposePresentationMessage.GetThreadId());
- proofRecord.SetTag(TagConstants.Role, TagConstants.Requestor);
- await RecordService.AddAsync(agentContext.Wallet, proofRecord);
-
- EventAggregator.Publish(new ServiceMessageProcessingEvent
- {
- RecordId = proofRecord.Id,
- MessageType = proposePresentationMessage.Type,
- ThreadId = proposePresentationMessage.GetThreadId()
- });
-
- return proofRecord;
- }
-
- ///
- public virtual async Task<(RequestPresentationMessage, ProofRecord)> CreateRequestFromProposalAsync(
- IAgentContext agentContext, ProofRequestParameters requestParams, string proofRecordId, string connectionId)
- {
- Logger.LogInformation(LoggingEvents.CreateProofRequest, "ConnectionId {0}", connectionId);
-
- if (proofRecordId == null)
- {
- throw new ArgumentNullException(nameof(proofRecordId), "You must provide proof record Id");
- }
- if (connectionId != null)
- {
- var connection = await ConnectionService.GetAsync(agentContext, connectionId);
-
- if (connection.State != ConnectionState.Connected)
- throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
- $"Connection state was invalid. Expected '{ConnectionState.Connected}', found '{connection.State}'");
- }
-
- var proofRecord = await RecordService.GetAsync(agentContext.Wallet, proofRecordId);
- var proofProposal = proofRecord.ProposalJson.ToObject();
-
-
- // Build Proof Request from Proposal info
- var proofRequest = new ProofRequest
- {
- Name = requestParams.Name,
- Version = requestParams.Version,
- Nonce = await AnonCreds.GenerateNonceAsync(),
- RequestedAttributes = new Dictionary(),
- NonRevoked = requestParams.NonRevoked
- };
-
- var attributesByReferent = new Dictionary>();
- foreach (var proposedAttribute in proofProposal.ProposedAttributes)
- {
- if (proposedAttribute.Referent == null)
- {
- proposedAttribute.Referent = Guid.NewGuid().ToString();
- }
-
- if (attributesByReferent.TryGetValue(proposedAttribute.Referent, out var referentAttributes))
- {
- referentAttributes.Add(proposedAttribute);
- }
- else
- {
- attributesByReferent.Add(proposedAttribute.Referent, new List { proposedAttribute });
- }
- }
-
- foreach (var referent in attributesByReferent.AsEnumerable())
- {
- var proposedAttributes = referent.Value;
- var attributeName = proposedAttributes.Count() == 1 ? proposedAttributes.Single().Name : null;
- var attributeNames = proposedAttributes.Count() > 1 ? proposedAttributes.ConvertAll(r => r.Name).ToArray() : null;
-
-
- var requestedAttribute = new ProofAttributeInfo()
- {
- Name = attributeName,
- Names = attributeNames,
- Restrictions = new List
- {
- new AttributeFilter {
- CredentialDefinitionId = proposedAttributes.First().CredentialDefinitionId,
- SchemaId = proposedAttributes.First().SchemaId,
- IssuerDid = proposedAttributes.First().IssuerDid
- }
- }
- };
- proofRequest.RequestedAttributes.Add(referent.Key, requestedAttribute);
- Console.WriteLine($"Added Attribute to Proof Request \n {proofRequest.ToString()}");
- }
-
- foreach (var pred in proofProposal.ProposedPredicates)
- {
- if (pred.Referent == null)
- {
- pred.Referent = Guid.NewGuid().ToString();
- }
- var predicate = new ProofPredicateInfo()
- {
- Name = pred.Name,
- PredicateType = pred.Predicate,
- PredicateValue = pred.Threshold,
- Restrictions = new List
- {
- new AttributeFilter {
- CredentialDefinitionId = pred.CredentialDefinitionId,
- SchemaId = pred.SchemaId,
- IssuerDid = pred.IssuerDid
- }
- }
-
- };
- proofRequest.RequestedPredicates.Add(pred.Referent, predicate);
- }
-
- proofRecord.RequestJson = proofRequest.ToJson();
- await proofRecord.TriggerAsync(ProofTrigger.Request);
- await RecordService.UpdateAsync(agentContext.Wallet, proofRecord);
-
- var message = new RequestPresentationMessage(agentContext.UseMessageTypesHttps)
- {
- Id = proofRecord.Id,
- Requests = new[]
- {
- new Attachment
- {
- Id = "libindy-request-presentation-0",
- MimeType = CredentialMimeTypes.ApplicationJsonMimeType,
- Data = new AttachmentContent
- {
- Base64 = proofRequest
- .ToJson()
- .GetUTF8Bytes()
- .ToBase64String()
- }
- }
- }
- };
- message.ThreadFrom(proofRecord.GetTag(TagConstants.LastThreadId));
- return (message, proofRecord);
- }
-
- ///
- public virtual Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(
- IAgentContext agentContext,
- ProofRequest proofRequest,
- string connectionId) =>
- CreateRequestAsync(
- agentContext: agentContext,
- proofRequestJson: proofRequest?.ToJson(),
- connectionId: connectionId);
-
- ///
- public virtual async Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext, string proofRequestJson, string connectionId)
- {
- Logger.LogInformation(LoggingEvents.CreateProofRequest, "ConnectionId {0}", connectionId);
-
- if (proofRequestJson == null)
- {
- throw new ArgumentNullException(nameof(proofRequestJson), "You must provide proof request");
- }
- if (connectionId != null)
- {
- var connection = await ConnectionService.GetAsync(agentContext, connectionId);
-
- if (connection.State != ConnectionState.Connected)
- throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
- $"Connection state was invalid. Expected '{ConnectionState.Connected}', found '{connection.State}'");
- }
-
- var threadId = Guid.NewGuid().ToString();
- var proofRecord = new ProofRecord
- {
- Id = Guid.NewGuid().ToString(),
- ConnectionId = connectionId,
- RequestJson = proofRequestJson
- };
- proofRecord.SetTag(TagConstants.Role, TagConstants.Requestor);
- proofRecord.SetTag(TagConstants.LastThreadId, threadId);
- await RecordService.AddAsync(agentContext.Wallet, proofRecord);
-
- var message = new RequestPresentationMessage(agentContext.UseMessageTypesHttps)
- {
- Id = threadId,
- Requests = new[]
- {
- new Attachment
- {
- Id = "libindy-request-presentation-0",
- MimeType = CredentialMimeTypes.ApplicationJsonMimeType,
- Data = new AttachmentContent
- {
- Base64 = proofRequestJson
- .GetUTF8Bytes()
- .ToBase64String()
- }
- }
- }
- };
- message.ThreadFrom(threadId);
- return (message, proofRecord);
- }
-
- ///
- public virtual async Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext, ProofRequest proofRequest, bool useDidKeyFormat = false)
- {
- var (message, record) = await CreateRequestAsync(agentContext, proofRequest, null);
- var provisioning = await ProvisioningService.GetProvisioningAsync(agentContext.Wallet);
-
- message.AddDecorator(provisioning.ToServiceDecorator(useDidKeyFormat), DecoratorNames.ServiceDecorator);
- record.SetTag("RequestData", message.ToByteArray().ToBase64UrlString());
-
- return (message, record);
- }
-
- ///
- public virtual async Task ProcessRequestAsync(IAgentContext agentContext, RequestPresentationMessage requestPresentationMessage, ConnectionRecord connection)
- {
- var requestAttachment = requestPresentationMessage.Requests.FirstOrDefault(x => x.Id == "libindy-request-presentation-0")
- ?? throw new ArgumentException("Presentation request attachment not found.");
-
- var requestJson = requestAttachment.Data.Base64.GetBytesFromBase64().GetUTF8String();
-
- ProofRecord proofRecord = null;
-
- try
- {
- proofRecord = await this.GetByThreadIdAsync(agentContext, requestPresentationMessage.GetThreadId());
- }
- catch (AriesFrameworkException e)
- {
- if (e.ErrorCode != ErrorCode.RecordNotFound)
- {
- throw;
- }
- }
-
- if (proofRecord is null)
- {
- proofRecord = new ProofRecord
- {
- Id = Guid.NewGuid().ToString(),
- RequestJson = requestJson,
- ConnectionId = connection?.Id,
- State = ProofState.Requested
- };
- proofRecord.SetTag(TagConstants.LastThreadId, requestPresentationMessage.GetThreadId());
- proofRecord.SetTag(TagConstants.Role, TagConstants.Holder);
- await RecordService.AddAsync(agentContext.Wallet, proofRecord);
- }
- else
- {
- await proofRecord.TriggerAsync(ProofTrigger.Request);
- proofRecord.RequestJson = requestJson;
- await RecordService.UpdateAsync(agentContext.Wallet, proofRecord);
- }
-
- EventAggregator.Publish(new ServiceMessageProcessingEvent
- {
- RecordId = proofRecord.Id,
- MessageType = requestPresentationMessage.Type,
- ThreadId = requestPresentationMessage.GetThreadId()
- });
-
- return proofRecord;
- }
-
- ///
- public virtual async Task ProcessPresentationAsync(IAgentContext agentContext, PresentationMessage presentationMessage)
- {
- var proofRecord = await this.GetByThreadIdAsync(agentContext, presentationMessage.GetThreadId());
-
- var requestAttachment = presentationMessage.Presentations.FirstOrDefault(x => x.Id == "libindy-presentation-0")
- ?? throw new ArgumentException("Presentation attachment not found.");
-
- var proofJson = requestAttachment.Data.Base64.GetBytesFromBase64().GetUTF8String();
-
- if (proofRecord.State != ProofState.Requested)
- throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
- $"Proof state was invalid. Expected '{ProofState.Requested}', found '{proofRecord.State}'");
-
- proofRecord.ProofJson = proofJson;
- await proofRecord.TriggerAsync(ProofTrigger.Accept);
- await RecordService.UpdateAsync(agentContext.Wallet, proofRecord);
-
- EventAggregator.Publish(new ServiceMessageProcessingEvent
- {
- RecordId = proofRecord.Id,
- MessageType = presentationMessage.Type,
- ThreadId = presentationMessage.GetThreadId()
- });
-
- return proofRecord;
- }
-
- ///
- public virtual Task CreatePresentationAsync(IAgentContext agentContext, ProofRequest proofRequest, RequestedCredentials requestedCredentials) =>
- CreateProofAsync(agentContext, proofRequest, requestedCredentials);
-
- ///
- public virtual async Task<(PresentationMessage, ProofRecord)> CreatePresentationAsync(IAgentContext agentContext, string proofRecordId, RequestedCredentials requestedCredentials)
- {
- var record = await GetAsync(agentContext, proofRecordId);
-
- if (record.State != ProofState.Requested)
- throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
- $"Proof state was invalid. Expected '{ProofState.Requested}', found '{record.State}'");
- var proofJson = await CreatePresentationAsync(
- agentContext,
- record.RequestJson.ToObject(),
- requestedCredentials);
-
- record.ProofJson = proofJson;
- await record.TriggerAsync(ProofTrigger.Accept);
- await RecordService.UpdateAsync(agentContext.Wallet, record);
-
- var threadId = record.GetTag(TagConstants.LastThreadId);
-
- var proofMsg = new PresentationMessage(agentContext.UseMessageTypesHttps)
- {
- Id = Guid.NewGuid().ToString(),
- Presentations = new[]
- {
- new Attachment
- {
- Id = "libindy-presentation-0",
- MimeType = CredentialMimeTypes.ApplicationJsonMimeType,
- Data = new AttachmentContent
- {
- Base64 = proofJson
- .GetUTF8Bytes()
- .ToBase64String()
- }
- }
- }
- };
- proofMsg.ThreadFrom(threadId);
-
- return (proofMsg, record);
- }
-
- #region Private Methods
-
- private async Task BuildSchemasAsync(IAgentContext agentContext, IEnumerable schemaIds)
- {
- var result = new Dictionary();
-
- foreach (var schemaId in schemaIds)
- {
- var ledgerSchema = await LedgerService.LookupSchemaAsync(agentContext, schemaId);
- result.Add(schemaId, JObject.Parse(ledgerSchema.ObjectJson));
- }
-
- return result.ToJson();
- }
-
- private async Task BuildCredentialDefinitionsAsync(IAgentContext agentContext, IEnumerable credentialDefIds)
- {
- var result = new Dictionary();
-
- foreach (var schemaId in credentialDefIds)
- {
- var ledgerDefinition = await LedgerService.LookupDefinitionAsync(agentContext, schemaId);
- result.Add(schemaId, JObject.Parse(ledgerDefinition.ObjectJson));
- }
-
- return result.ToJson();
- }
-
- private bool HasNonRevokedOnAttributeLevel(ProofRequest proofRequest)
- {
- foreach (var proofRequestRequestedAttribute in proofRequest.RequestedAttributes)
- if (proofRequestRequestedAttribute.Value.NonRevoked != null)
- return true;
-
- foreach (var proofRequestRequestedPredicate in proofRequest.RequestedPredicates)
- if (proofRequestRequestedPredicate.Value.NonRevoked != null)
- return true;
-
- return false;
- }
-
- private async Task<(ParseRegistryResponseResult, string)> BuildRevocationStateAsync(
- IAgentContext agentContext, CredentialInfo credential, ParseResponseResult registryDefinition,
- RevocationInterval nonRevoked)
- {
- var delta = await LedgerService.LookupRevocationRegistryDeltaAsync(
- agentContext: agentContext,
- revocationRegistryId: credential.RevocationRegistryId,
- // Ledger will not return correct revocation state if the 'from' field
- // is other than 0
- from: 0, //nonRevoked.From,
- to: nonRevoked.To);
-
- var tailsFile = await TailsService.EnsureTailsExistsAsync(agentContext, credential.RevocationRegistryId);
- var tailsReader = await TailsService.OpenTailsAsync(tailsFile);
-
- var state = await AnonCreds.CreateRevocationStateAsync(
- blobStorageReader: tailsReader,
- revRegDef: registryDefinition.ObjectJson,
- revRegDelta: delta.ObjectJson,
- timestamp: (long)delta.Timestamp,
- credRevId: credential.CredentialRevocationId);
-
- return (delta, state);
- }
-
- private async Task BuildRevocationStatesAsync(IAgentContext agentContext,
- IEnumerable credentialObjects,
- ProofRequest proofRequest,
- RequestedCredentials requestedCredentials)
- {
- var allCredentials = new List();
- allCredentials.AddRange(requestedCredentials.RequestedAttributes.Values);
- allCredentials.AddRange(requestedCredentials.RequestedPredicates.Values);
-
- var result = new Dictionary>();
-
- if (proofRequest.NonRevoked == null && !HasNonRevokedOnAttributeLevel(proofRequest))
- return result.ToJson();
-
- foreach (var requestedCredential in allCredentials)
- {
- // ReSharper disable once PossibleMultipleEnumeration
- var credential = credentialObjects.First(x => x.Referent == requestedCredential.CredentialId);
- if (credential.RevocationRegistryId == null)
- continue;
-
- var registryDefinition = await LedgerService.LookupRevocationRegistryDefinitionAsync(
- agentContext: agentContext,
- registryId: credential.RevocationRegistryId);
-
- if (proofRequest.NonRevoked != null)
- {
- var (delta, state) = await BuildRevocationStateAsync(
- agentContext, credential, registryDefinition, proofRequest.NonRevoked);
-
- if (!result.ContainsKey(credential.RevocationRegistryId))
- result.Add(credential.RevocationRegistryId, new Dictionary());
-
- requestedCredential.Timestamp = (long) delta.Timestamp;
- if (!result[credential.RevocationRegistryId].ContainsKey($"{delta.Timestamp}"))
- result[credential.RevocationRegistryId].Add($"{delta.Timestamp}", JObject.Parse(state));
-
- continue;
- }
-
- foreach (var proofRequestRequestedAttribute in proofRequest.RequestedAttributes)
- {
- var revocationInterval = proofRequestRequestedAttribute.Value.NonRevoked;
- if (revocationInterval == null)
- continue;
-
- var (delta, state) = await BuildRevocationStateAsync(
- agentContext, credential, registryDefinition, revocationInterval);
-
- if (!result.ContainsKey(credential.RevocationRegistryId))
- result.Add(credential.RevocationRegistryId, new Dictionary());
-
- requestedCredential.Timestamp = (long) delta.Timestamp;
- if (!result[credential.RevocationRegistryId].ContainsKey($"{delta.Timestamp}"))
- result[credential.RevocationRegistryId].Add($"{delta.Timestamp}", JObject.Parse(state));
- }
-
- foreach (var proofRequestRequestedPredicate in proofRequest.RequestedPredicates)
- {
- var revocationInterval = proofRequestRequestedPredicate.Value.NonRevoked;
- if (revocationInterval == null)
- continue;
-
- var (delta, state) = await BuildRevocationStateAsync(
- agentContext, credential, registryDefinition, revocationInterval);
-
- if (!result.ContainsKey(credential.RevocationRegistryId))
- result.Add(credential.RevocationRegistryId, new Dictionary());
-
- requestedCredential.Timestamp = (long) delta.Timestamp;
- if (!result[credential.RevocationRegistryId].ContainsKey($"{delta.Timestamp}"))
- result[credential.RevocationRegistryId].Add($"{delta.Timestamp}", JObject.Parse(state));
- }
- }
-
- return result.ToJson();
- }
-
- private async Task BuildRevocationRegistriesAsync(
- IAgentContext agentContext,
- IEnumerable proofIdentifiers)
- {
- var result = new Dictionary>();
-
- foreach (var identifier in proofIdentifiers)
- {
- if (identifier.Timestamp == null) continue;
-
- var revocationRegistry = await LedgerService.LookupRevocationRegistryAsync(
- agentContext,
- identifier.RevocationRegistryId,
- long.Parse(identifier.Timestamp));
-
- result.Add(identifier.RevocationRegistryId,
- new Dictionary
- {
- {identifier.Timestamp, JObject.Parse(revocationRegistry.ObjectJson)}
- });
- }
-
- return result.ToJson();
- }
-
- private async Task BuildRevocationRegistryDefinitionsAsync(IAgentContext agentContext,
- IEnumerable revocationRegistryIds)
- {
- var result = new Dictionary();
-
- foreach (var revocationRegistryId in revocationRegistryIds)
- {
- var ledgerSchema =
- await LedgerService.LookupRevocationRegistryDefinitionAsync(agentContext, revocationRegistryId);
- result.Add(revocationRegistryId, JObject.Parse(ledgerSchema.ObjectJson));
- }
-
- return result.ToJson();
- }
-
- private void CheckProofProposalParameters(ProofProposal proofProposal)
- {
- if (proofProposal.ProposedAttributes.Count > 1)
- {
- var attrList = proofProposal.ProposedAttributes;
- var referents = new Dictionary();
-
- // Check if all attributes that share referent have same requirements
- for (int i = 0; i < attrList.Count; i++)
- {
- var attr = attrList[i];
- if (referents.ContainsKey(attr.Referent))
- {
- if(referents[attr.Referent].IssuerDid != attr.IssuerDid ||
- referents[attr.Referent].SchemaId != attr.SchemaId ||
- referents[attr.Referent].CredentialDefinitionId != attr.CredentialDefinitionId)
- {
- throw new AriesFrameworkException(ErrorCode.InvalidParameterFormat, "All attributes that share a referent must have identical requirements");
- }
- else
- {
- continue;
- }
- }
- else
- {
- referents.Add(attr.Referent, attr);
- }
- }
- }
-
- if (proofProposal.ProposedPredicates.Count > 1)
- {
- var predList = proofProposal.ProposedPredicates;
- var referents = new Dictionary();
-
- for (int i = 0; i < predList.Count; i++)
- {
- var pred = predList[i];
- if (referents.ContainsKey(pred.Referent))
- {
- throw new AriesFrameworkException(ErrorCode.InvalidParameterFormat, "Proposed Predicates must all have unique referents");
- }
- else
- {
- referents.Add(pred.Referent, pred);
- }
- }
- }
- }
-
- #endregion
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Common;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Contracts;
+using Hyperledger.Aries.Decorators;
+using Hyperledger.Aries.Decorators.Attachments;
+using Hyperledger.Aries.Decorators.Service;
+using Hyperledger.Aries.Decorators.Threading;
+using Hyperledger.Aries.Extensions;
+using Hyperledger.Aries.Features.Handshakes.Common;
+using Hyperledger.Aries.Features.Handshakes.Connection;
+using Hyperledger.Aries.Features.IssueCredential;
+using Hyperledger.Aries.Features.PresentProof.Messages;
+using Hyperledger.Aries.Ledger.Models;
+using Hyperledger.Aries.Models.Events;
+using Hyperledger.Aries.Storage;
+using Hyperledger.Aries.Utils;
+using Hyperledger.Indy.AnonCredsApi;
+using Microsoft.Extensions.Logging;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+
+namespace Hyperledger.Aries.Features.PresentProof
+{
+ ///
+ /// Proof Service
+ ///
+ ///
+ public class DefaultProofService : IProofService
+ {
+ ///
+ /// The event aggregator
+ ///
+ protected readonly IEventAggregator EventAggregator;
+
+ ///
+ /// The connection service
+ ///
+ protected readonly IConnectionService ConnectionService;
+
+ ///
+ /// The record service
+ ///
+ protected readonly IWalletRecordService RecordService;
+
+ ///
+ /// The provisioning service
+ ///
+ protected readonly IProvisioningService ProvisioningService;
+
+ ///
+ /// The ledger service
+ ///
+ protected readonly ILedgerService LedgerService;
+
+ ///
+ /// The logger
+ ///
+ protected readonly ILogger Logger;
+
+ ///
+ /// The tails service
+ ///
+ protected readonly ITailsService TailsService;
+
+ ///
+ /// Message Service
+ ///
+ protected readonly IMessageService MessageService;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The event aggregator.
+ /// The connection service.
+ /// The record service.
+ /// The provisioning service.
+ /// The ledger service.
+ /// The tails service.
+ /// The message service.
+ /// The logger.
+ public DefaultProofService(
+ IEventAggregator eventAggregator,
+ IConnectionService connectionService,
+ IWalletRecordService recordService,
+ IProvisioningService provisioningService,
+ ILedgerService ledgerService,
+ ITailsService tailsService,
+ IMessageService messageService,
+ ILogger logger)
+ {
+ EventAggregator = eventAggregator;
+ TailsService = tailsService;
+ MessageService = messageService;
+ ConnectionService = connectionService;
+ RecordService = recordService;
+ ProvisioningService = provisioningService;
+ LedgerService = ledgerService;
+ Logger = logger;
+ }
+
+ ///
+ public virtual async Task CreateProofAsync(IAgentContext agentContext,
+ ProofRequest proofRequest, RequestedCredentials requestedCredentials)
+ {
+ var provisioningRecord = await ProvisioningService.GetProvisioningAsync(agentContext.Wallet);
+
+ var credentialObjects = new List();
+ foreach (var credId in requestedCredentials.GetCredentialIdentifiers())
+ {
+ var credentialInfo = JsonConvert.DeserializeObject(
+ await AnonCreds.ProverGetCredentialAsync(agentContext.Wallet, credId));
+
+ credentialObjects.Add(credentialInfo);
+ }
+
+ var schemas = await BuildSchemasAsync(
+ agentContext: agentContext,
+ schemaIds: credentialObjects.Select(x => x.SchemaId).Distinct());
+
+ var definitions = await BuildCredentialDefinitionsAsync(
+ agentContext: agentContext,
+ credentialDefIds: credentialObjects.Select(x => x.CredentialDefinitionId).Distinct());
+
+ var revocationStates = await BuildRevocationStatesAsync(
+ agentContext: agentContext,
+ credentialObjects: credentialObjects,
+ proofRequest: proofRequest,
+ requestedCredentials: requestedCredentials);
+
+ var proofJson = await AnonCreds.ProverCreateProofAsync(
+ wallet: agentContext.Wallet,
+ proofRequest: proofRequest.ToJson(),
+ requestedCredentials: requestedCredentials.ToJson(),
+ masterSecret: provisioningRecord.MasterSecretId,
+ schemas: schemas,
+ credentialDefs: definitions,
+ revStates: revocationStates);
+
+ return proofJson;
+ }
+
+ ///
+ public virtual async Task CreatePresentationAsync(IAgentContext agentContext, RequestPresentationMessage requestPresentation, RequestedCredentials requestedCredentials)
+ {
+ var service = requestPresentation.GetDecorator(DecoratorNames.ServiceDecorator);
+
+ var record = await ProcessRequestAsync(agentContext, requestPresentation, null);
+ var (presentationMessage, proofRecord) = await CreatePresentationAsync(agentContext, record.Id, requestedCredentials);
+
+ await MessageService.SendAsync(
+ agentContext: agentContext,
+ message: presentationMessage,
+ recipientKey: service.RecipientKeys.First(),
+ endpointUri: service.ServiceEndpoint,
+ routingKeys: service.RoutingKeys?.ToArray());
+
+ return proofRecord;
+ }
+
+ ///
+ public virtual async Task RejectProofRequestAsync(IAgentContext agentContext, string proofRequestId)
+ {
+ var request = await GetAsync(agentContext, proofRequestId);
+
+ if (request.State != ProofState.Requested)
+ throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
+ $"Proof record state was invalid. Expected '{ProofState.Requested}', found '{request.State}'");
+
+ await request.TriggerAsync(ProofTrigger.Reject);
+ await RecordService.UpdateAsync(agentContext.Wallet, request);
+ }
+
+ ///
+ public virtual async Task IsRevokedAsync(IAgentContext context, string credentialRecordId)
+ {
+ return await IsRevokedAsync(context, await RecordService.GetAsync(context.Wallet, credentialRecordId));
+ }
+
+ ///
+ public virtual async Task IsRevokedAsync(IAgentContext context, CredentialRecord record)
+ {
+ if (record.RevocationRegistryId == null) return false;
+ if (record.State == CredentialState.Offered || record.State == CredentialState.Requested) return false;
+ if (record.State == CredentialState.Revoked || record.State == CredentialState.Rejected) return true;
+
+ var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
+ var proofRequest = new ProofRequest
+ {
+ Name = "revocation check",
+ Version = "1.0",
+ Nonce = await AnonCreds.GenerateNonceAsync(),
+ RequestedAttributes = new Dictionary
+ {
+ { "referent1", new ProofAttributeInfo { Name = record.CredentialAttributesValues.First().Name } }
+ }, NonRevoked = new RevocationInterval
+ {
+ From = (uint)now,
+ To = (uint)now
+ }
+ };
+
+ var proof = await CreateProofAsync(context, proofRequest, new RequestedCredentials
+ {
+ RequestedAttributes = new Dictionary
+ {
+ { "referent1", new RequestedAttribute { CredentialId = record.CredentialId, Timestamp = now, Revealed = true } }
+ }
+ });
+
+ var isValid = await VerifyProofAsync(context, proofRequest.ToJson(), proof);
+
+ if (!isValid)
+ {
+ await record.TriggerAsync(CredentialTrigger.Revoke);
+
+ record.SetTag("LastRevocationCheck", now.ToString());
+ await RecordService.UpdateAsync(context.Wallet, record);
+ }
+
+ return !isValid;
+ }
+
+ ///
+ public virtual async Task VerifyProofAsync(IAgentContext agentContext, string proofRequestJson, string proofJson, bool validateEncoding = true)
+ {
+ var proof = JsonConvert.DeserializeObject(proofJson);
+ var proofRequest = proofRequestJson.ToObject();
+
+ // If any values are revealed, validate encoding
+ // against expected values
+ if (validateEncoding && proof.RequestedProof.RevealedAttributes != null)
+ foreach (var attribute in proof.RequestedProof.RevealedAttributes)
+ {
+ if (!CredentialUtils.CheckValidEncoding(attribute.Value.Raw, attribute.Value.Encoded))
+ {
+ throw new AriesFrameworkException(ErrorCode.InvalidProofEncoding,
+ $"The encoded value for '{attribute.Key}' is invalid. " +
+ $"Expected '{CredentialUtils.GetEncoded(attribute.Value.Raw)}'. " +
+ $"Actual '{attribute.Value.Encoded}'");
+ }
+ }
+
+ var schemas = await BuildSchemasAsync(agentContext,
+ proof.Identifiers
+ .Select(x => x.SchemaId)
+ .Where(x => x != null)
+ .Distinct());
+
+ var definitions = await BuildCredentialDefinitionsAsync(agentContext,
+ proof.Identifiers
+ .Select(x => x.CredentialDefintionId)
+ .Where(x => x != null)
+ .Distinct());
+
+ var revocationDefinitions = await BuildRevocationRegistryDefinitionsAsync(agentContext,
+ proof.Identifiers
+ .Select(x => x.RevocationRegistryId)
+ .Where(x => x != null)
+ .Distinct());
+
+ var revocationRegistries = await BuildRevocationRegistriesAsync(
+ agentContext,
+ proof.Identifiers.Where(x => x.RevocationRegistryId != null));
+
+ return await AnonCreds.VerifierVerifyProofAsync(
+ proofRequestJson,
+ proofJson,
+ schemas,
+ definitions,
+ revocationDefinitions,
+ revocationRegistries);
+ }
+
+ ///
+ public virtual async Task VerifyProofAsync(IAgentContext agentContext, string proofRecId)
+ {
+ var proofRecord = await GetAsync(agentContext, proofRecId);
+
+ if (proofRecord.State != ProofState.Accepted)
+ throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
+ $"Proof record state was invalid. Expected '{ProofState.Accepted}', found '{proofRecord.State}'");
+
+ return await VerifyProofAsync(agentContext, proofRecord.RequestJson, proofRecord.ProofJson);
+ }
+
+ ///
+ public virtual Task> ListAsync(IAgentContext agentContext, ISearchQuery query = null,
+ int count = 100) => RecordService.SearchAsync(agentContext.Wallet, query, null, count);
+
+ ///
+ public virtual async Task GetAsync(IAgentContext agentContext, string proofRecId)
+ {
+ Logger.LogInformation(LoggingEvents.GetProofRecord, "ProofRecordId {0}", proofRecId);
+
+ return await RecordService.GetAsync(agentContext.Wallet, proofRecId) ??
+ throw new AriesFrameworkException(ErrorCode.RecordNotFound, "Proof record not found");
+ }
+
+ ///
+ public virtual async Task> ListCredentialsForProofRequestAsync(IAgentContext agentContext,
+ ProofRequest proofRequest, string attributeReferent)
+ {
+ using (var search =
+ await AnonCreds.ProverSearchCredentialsForProofRequestAsync(agentContext.Wallet, proofRequest.ToJson()))
+ {
+ var searchResult = await search.NextAsync(attributeReferent, 100);
+ return JsonConvert.DeserializeObject>(searchResult);
+ }
+ }
+
+ ///
+ public virtual async Task CreateAcknowledgeMessageAsync(IAgentContext agentContext,
+ string proofRecordId, string status = AcknowledgementStatusConstants.Ok)
+ {
+ var record = await GetAsync(agentContext, proofRecordId);
+
+ var threadId = record.GetTag(TagConstants.LastThreadId);
+ var acknowledgeMessage = new PresentationAcknowledgeMessage(agentContext.UseMessageTypesHttps)
+ {
+ Id = threadId,
+ Status = status
+ };
+ acknowledgeMessage.ThreadFrom(threadId);
+
+ return acknowledgeMessage;
+ }
+
+ ///
+ public virtual async Task ProcessAcknowledgeMessageAsync(IAgentContext agentContext, PresentationAcknowledgeMessage acknowledgeMessage)
+ {
+ var proofRecord = await this.GetByThreadIdAsync(agentContext, acknowledgeMessage.GetThreadId());
+
+ EventAggregator.Publish(new ServiceMessageProcessingEvent
+ {
+ RecordId = proofRecord.Id,
+ MessageType = acknowledgeMessage.Type,
+ ThreadId = acknowledgeMessage.GetThreadId()
+ });
+
+ return proofRecord;
+ }
+
+ ///
+ public virtual async Task<(ProposePresentationMessage, ProofRecord)> CreateProposalAsync(IAgentContext agentContext, ProofProposal proofProposal, string connectionId)
+ {
+ Logger.LogInformation(LoggingEvents.CreateProofRequest, "ConnectionId {0}", connectionId);
+
+ if (proofProposal == null)
+ {
+ throw new ArgumentNullException(nameof(proofProposal), "You must provide a presentation preview"); ;
+ }
+ if (connectionId != null)
+ {
+ var connection = await ConnectionService.GetAsync(agentContext, connectionId);
+
+ if (connection.State != ConnectionState.Connected)
+ throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
+ $"Connection state was invalid. Expected '{ConnectionState.Connected}', found '{connection.State}'");
+ }
+ this.CheckProofProposalParameters(proofProposal);
+
+
+ var threadId = Guid.NewGuid().ToString();
+ var proofRecord = new ProofRecord
+ {
+ Id = Guid.NewGuid().ToString(),
+ ConnectionId = connectionId,
+ ProposalJson = proofProposal.ToJson(),
+ State = ProofState.Proposed
+ };
+
+ proofRecord.SetTag(TagConstants.Role, TagConstants.Holder);
+ proofRecord.SetTag(TagConstants.LastThreadId, threadId);
+
+ await RecordService.AddAsync(agentContext.Wallet, proofRecord);
+
+ var message = new ProposePresentationMessage(agentContext.UseMessageTypesHttps)
+ {
+ Id = threadId,
+ Comment = proofProposal.Comment,
+ PresentationPreviewMessage = new PresentationPreviewMessage(agentContext.UseMessageTypesHttps)
+ {
+ ProposedAttributes = proofProposal.ProposedAttributes.ToArray(),
+ ProposedPredicates = proofProposal.ProposedPredicates.ToArray()
+ },
+ };
+ message.ThreadFrom(threadId);
+ return (message, proofRecord);
+ }
+
+ public virtual async Task ProcessProposalAsync(IAgentContext agentContext, ProposePresentationMessage proposePresentationMessage, ConnectionRecord connection)
+ {
+ // save in wallet
+
+ var proofProposal = new ProofProposal
+ {
+ Comment = proposePresentationMessage.Comment,
+ ProposedAttributes = proposePresentationMessage.PresentationPreviewMessage.ProposedAttributes.ToList(),
+ ProposedPredicates = proposePresentationMessage.PresentationPreviewMessage.ProposedPredicates.ToList()
+ };
+
+ var proofRecord = new ProofRecord
+ {
+ Id = Guid.NewGuid().ToString(),
+ ProposalJson = proofProposal.ToJson(),
+ ConnectionId = connection?.Id,
+ State = ProofState.Proposed
+ };
+
+ proofRecord.SetTag(TagConstants.LastThreadId, proposePresentationMessage.GetThreadId());
+ proofRecord.SetTag(TagConstants.Role, TagConstants.Requestor);
+ await RecordService.AddAsync(agentContext.Wallet, proofRecord);
+
+ EventAggregator.Publish(new ServiceMessageProcessingEvent
+ {
+ RecordId = proofRecord.Id,
+ MessageType = proposePresentationMessage.Type,
+ ThreadId = proposePresentationMessage.GetThreadId()
+ });
+
+ return proofRecord;
+ }
+
+ ///
+ public virtual async Task<(RequestPresentationMessage, ProofRecord)> CreateRequestFromProposalAsync(
+ IAgentContext agentContext, ProofRequestParameters requestParams, string proofRecordId, string connectionId)
+ {
+ Logger.LogInformation(LoggingEvents.CreateProofRequest, "ConnectionId {0}", connectionId);
+
+ if (proofRecordId == null)
+ {
+ throw new ArgumentNullException(nameof(proofRecordId), "You must provide proof record Id");
+ }
+ if (connectionId != null)
+ {
+ var connection = await ConnectionService.GetAsync(agentContext, connectionId);
+
+ if (connection.State != ConnectionState.Connected)
+ throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
+ $"Connection state was invalid. Expected '{ConnectionState.Connected}', found '{connection.State}'");
+ }
+
+ var proofRecord = await RecordService.GetAsync(agentContext.Wallet, proofRecordId);
+ var proofProposal = proofRecord.ProposalJson.ToObject();
+
+
+ // Build Proof Request from Proposal info
+ var proofRequest = new ProofRequest
+ {
+ Name = requestParams.Name,
+ Version = requestParams.Version,
+ Nonce = await AnonCreds.GenerateNonceAsync(),
+ RequestedAttributes = new Dictionary(),
+ NonRevoked = requestParams.NonRevoked
+ };
+
+ var attributesByReferent = new Dictionary>();
+ foreach (var proposedAttribute in proofProposal.ProposedAttributes)
+ {
+ if (proposedAttribute.Referent == null)
+ {
+ proposedAttribute.Referent = Guid.NewGuid().ToString();
+ }
+
+ if (attributesByReferent.TryGetValue(proposedAttribute.Referent, out var referentAttributes))
+ {
+ referentAttributes.Add(proposedAttribute);
+ }
+ else
+ {
+ attributesByReferent.Add(proposedAttribute.Referent, new List { proposedAttribute });
+ }
+ }
+
+ foreach (var referent in attributesByReferent.AsEnumerable())
+ {
+ var proposedAttributes = referent.Value;
+ var attributeName = proposedAttributes.Count() == 1 ? proposedAttributes.Single().Name : null;
+ var attributeNames = proposedAttributes.Count() > 1 ? proposedAttributes.ConvertAll(r => r.Name).ToArray() : null;
+
+
+ var requestedAttribute = new ProofAttributeInfo()
+ {
+ Name = attributeName,
+ Names = attributeNames,
+ Restrictions = new List
+ {
+ new AttributeFilter {
+ CredentialDefinitionId = proposedAttributes.First().CredentialDefinitionId,
+ SchemaId = proposedAttributes.First().SchemaId,
+ IssuerDid = proposedAttributes.First().IssuerDid
+ }
+ }
+ };
+ proofRequest.RequestedAttributes.Add(referent.Key, requestedAttribute);
+ Console.WriteLine($"Added Attribute to Proof Request \n {proofRequest.ToString()}");
+ }
+
+ foreach (var pred in proofProposal.ProposedPredicates)
+ {
+ if (pred.Referent == null)
+ {
+ pred.Referent = Guid.NewGuid().ToString();
+ }
+ var predicate = new ProofPredicateInfo()
+ {
+ Name = pred.Name,
+ PredicateType = pred.Predicate,
+ PredicateValue = pred.Threshold,
+ Restrictions = new List
+ {
+ new AttributeFilter {
+ CredentialDefinitionId = pred.CredentialDefinitionId,
+ SchemaId = pred.SchemaId,
+ IssuerDid = pred.IssuerDid
+ }
+ }
+
+ };
+ proofRequest.RequestedPredicates.Add(pred.Referent, predicate);
+ }
+
+ proofRecord.RequestJson = proofRequest.ToJson();
+ await proofRecord.TriggerAsync(ProofTrigger.Request);
+ await RecordService.UpdateAsync(agentContext.Wallet, proofRecord);
+
+ var message = new RequestPresentationMessage(agentContext.UseMessageTypesHttps)
+ {
+ Id = proofRecord.Id,
+ Requests = new[]
+ {
+ new Attachment
+ {
+ Id = "libindy-request-presentation-0",
+ MimeType = CredentialMimeTypes.ApplicationJsonMimeType,
+ Data = new AttachmentContent
+ {
+ Base64 = proofRequest
+ .ToJson()
+ .GetUTF8Bytes()
+ .ToBase64String()
+ }
+ }
+ }
+ };
+ message.ThreadFrom(proofRecord.GetTag(TagConstants.LastThreadId));
+ return (message, proofRecord);
+ }
+
+ ///
+ public virtual Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(
+ IAgentContext agentContext,
+ ProofRequest proofRequest,
+ string connectionId) =>
+ CreateRequestAsync(
+ agentContext: agentContext,
+ proofRequestJson: proofRequest?.ToJson(),
+ connectionId: connectionId);
+
+ ///
+ public virtual async Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext, string proofRequestJson, string connectionId)
+ {
+ Logger.LogInformation(LoggingEvents.CreateProofRequest, "ConnectionId {0}", connectionId);
+
+ if (proofRequestJson == null)
+ {
+ throw new ArgumentNullException(nameof(proofRequestJson), "You must provide proof request");
+ }
+ if (connectionId != null)
+ {
+ var connection = await ConnectionService.GetAsync(agentContext, connectionId);
+
+ if (connection.State != ConnectionState.Connected)
+ throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
+ $"Connection state was invalid. Expected '{ConnectionState.Connected}', found '{connection.State}'");
+ }
+
+ var threadId = Guid.NewGuid().ToString();
+ var proofRecord = new ProofRecord
+ {
+ Id = Guid.NewGuid().ToString(),
+ ConnectionId = connectionId,
+ RequestJson = proofRequestJson
+ };
+ proofRecord.SetTag(TagConstants.Role, TagConstants.Requestor);
+ proofRecord.SetTag(TagConstants.LastThreadId, threadId);
+ await RecordService.AddAsync(agentContext.Wallet, proofRecord);
+
+ var message = new RequestPresentationMessage(agentContext.UseMessageTypesHttps)
+ {
+ Id = threadId,
+ Requests = new[]
+ {
+ new Attachment
+ {
+ Id = "libindy-request-presentation-0",
+ MimeType = CredentialMimeTypes.ApplicationJsonMimeType,
+ Data = new AttachmentContent
+ {
+ Base64 = proofRequestJson
+ .GetUTF8Bytes()
+ .ToBase64String()
+ }
+ }
+ }
+ };
+ message.ThreadFrom(threadId);
+ return (message, proofRecord);
+ }
+
+ ///
+ public virtual async Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext, ProofRequest proofRequest, bool useDidKeyFormat = false)
+ {
+ var (message, record) = await CreateRequestAsync(agentContext, proofRequest, null);
+ var provisioning = await ProvisioningService.GetProvisioningAsync(agentContext.Wallet);
+
+ message.AddDecorator(provisioning.ToServiceDecorator(useDidKeyFormat), DecoratorNames.ServiceDecorator);
+ record.SetTag("RequestData", message.ToByteArray().ToBase64UrlString());
+
+ return (message, record);
+ }
+
+ ///
+ public virtual async Task ProcessRequestAsync(IAgentContext agentContext, RequestPresentationMessage requestPresentationMessage, ConnectionRecord connection)
+ {
+ var requestAttachment = requestPresentationMessage.Requests.FirstOrDefault(x => x.Id == "libindy-request-presentation-0")
+ ?? throw new ArgumentException("Presentation request attachment not found.");
+
+ var requestJson = requestAttachment.Data.Base64.GetBytesFromBase64().GetUTF8String();
+
+ ProofRecord proofRecord = null;
+
+ try
+ {
+ proofRecord = await this.GetByThreadIdAsync(agentContext, requestPresentationMessage.GetThreadId());
+ }
+ catch (AriesFrameworkException e)
+ {
+ if (e.ErrorCode != ErrorCode.RecordNotFound)
+ {
+ throw;
+ }
+ }
+
+ if (proofRecord is null)
+ {
+ proofRecord = new ProofRecord
+ {
+ Id = Guid.NewGuid().ToString(),
+ RequestJson = requestJson,
+ ConnectionId = connection?.Id,
+ State = ProofState.Requested
+ };
+ proofRecord.SetTag(TagConstants.LastThreadId, requestPresentationMessage.GetThreadId());
+ proofRecord.SetTag(TagConstants.Role, TagConstants.Holder);
+ await RecordService.AddAsync(agentContext.Wallet, proofRecord);
+ }
+ else
+ {
+ await proofRecord.TriggerAsync(ProofTrigger.Request);
+ proofRecord.RequestJson = requestJson;
+ await RecordService.UpdateAsync(agentContext.Wallet, proofRecord);
+ }
+
+ EventAggregator.Publish(new ServiceMessageProcessingEvent
+ {
+ RecordId = proofRecord.Id,
+ MessageType = requestPresentationMessage.Type,
+ ThreadId = requestPresentationMessage.GetThreadId()
+ });
+
+ return proofRecord;
+ }
+
+ ///
+ public virtual async Task ProcessPresentationAsync(IAgentContext agentContext, PresentationMessage presentationMessage)
+ {
+ var proofRecord = await this.GetByThreadIdAsync(agentContext, presentationMessage.GetThreadId());
+
+ var requestAttachment = presentationMessage.Presentations.FirstOrDefault(x => x.Id == "libindy-presentation-0")
+ ?? throw new ArgumentException("Presentation attachment not found.");
+
+ var proofJson = requestAttachment.Data.Base64.GetBytesFromBase64().GetUTF8String();
+
+ if (proofRecord.State != ProofState.Requested)
+ throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
+ $"Proof state was invalid. Expected '{ProofState.Requested}', found '{proofRecord.State}'");
+
+ proofRecord.ProofJson = proofJson;
+ await proofRecord.TriggerAsync(ProofTrigger.Accept);
+ await RecordService.UpdateAsync(agentContext.Wallet, proofRecord);
+
+ EventAggregator.Publish(new ServiceMessageProcessingEvent
+ {
+ RecordId = proofRecord.Id,
+ MessageType = presentationMessage.Type,
+ ThreadId = presentationMessage.GetThreadId()
+ });
+
+ return proofRecord;
+ }
+
+ ///
+ public virtual Task CreatePresentationAsync(IAgentContext agentContext, ProofRequest proofRequest, RequestedCredentials requestedCredentials) =>
+ CreateProofAsync(agentContext, proofRequest, requestedCredentials);
+
+ ///
+ public virtual async Task<(PresentationMessage, ProofRecord)> CreatePresentationAsync(IAgentContext agentContext, string proofRecordId, RequestedCredentials requestedCredentials)
+ {
+ var record = await GetAsync(agentContext, proofRecordId);
+
+ if (record.State != ProofState.Requested)
+ throw new AriesFrameworkException(ErrorCode.RecordInInvalidState,
+ $"Proof state was invalid. Expected '{ProofState.Requested}', found '{record.State}'");
+ var proofJson = await CreatePresentationAsync(
+ agentContext,
+ record.RequestJson.ToObject(),
+ requestedCredentials);
+
+ record.ProofJson = proofJson;
+ await record.TriggerAsync(ProofTrigger.Accept);
+ await RecordService.UpdateAsync(agentContext.Wallet, record);
+
+ var threadId = record.GetTag(TagConstants.LastThreadId);
+
+ var proofMsg = new PresentationMessage(agentContext.UseMessageTypesHttps)
+ {
+ Id = Guid.NewGuid().ToString(),
+ Presentations = new[]
+ {
+ new Attachment
+ {
+ Id = "libindy-presentation-0",
+ MimeType = CredentialMimeTypes.ApplicationJsonMimeType,
+ Data = new AttachmentContent
+ {
+ Base64 = proofJson
+ .GetUTF8Bytes()
+ .ToBase64String()
+ }
+ }
+ }
+ };
+ proofMsg.ThreadFrom(threadId);
+
+ return (proofMsg, record);
+ }
+
+ #region Private Methods
+
+ private async Task BuildSchemasAsync(IAgentContext agentContext, IEnumerable schemaIds)
+ {
+ var result = new Dictionary();
+
+ foreach (var schemaId in schemaIds)
+ {
+ var ledgerSchema = await LedgerService.LookupSchemaAsync(agentContext, schemaId);
+ result.Add(schemaId, JObject.Parse(ledgerSchema.ObjectJson));
+ }
+
+ return result.ToJson();
+ }
+
+ private async Task BuildCredentialDefinitionsAsync(IAgentContext agentContext, IEnumerable credentialDefIds)
+ {
+ var result = new Dictionary();
+
+ foreach (var schemaId in credentialDefIds)
+ {
+ var ledgerDefinition = await LedgerService.LookupDefinitionAsync(agentContext, schemaId);
+ result.Add(schemaId, JObject.Parse(ledgerDefinition.ObjectJson));
+ }
+
+ return result.ToJson();
+ }
+
+ private bool HasNonRevokedOnAttributeLevel(ProofRequest proofRequest)
+ {
+ foreach (var proofRequestRequestedAttribute in proofRequest.RequestedAttributes)
+ if (proofRequestRequestedAttribute.Value.NonRevoked != null)
+ return true;
+
+ foreach (var proofRequestRequestedPredicate in proofRequest.RequestedPredicates)
+ if (proofRequestRequestedPredicate.Value.NonRevoked != null)
+ return true;
+
+ return false;
+ }
+
+ private async Task<(ParseRegistryResponseResult, string)> BuildRevocationStateAsync(
+ IAgentContext agentContext, CredentialInfo credential, ParseResponseResult registryDefinition,
+ RevocationInterval nonRevoked)
+ {
+ var delta = await LedgerService.LookupRevocationRegistryDeltaAsync(
+ agentContext: agentContext,
+ revocationRegistryId: credential.RevocationRegistryId,
+ // Ledger will not return correct revocation state if the 'from' field
+ // is other than 0
+ from: 0, //nonRevoked.From,
+ to: nonRevoked.To);
+
+ var tailsFile = await TailsService.EnsureTailsExistsAsync(agentContext, credential.RevocationRegistryId);
+ var tailsReader = await TailsService.OpenTailsAsync(tailsFile);
+
+ var state = await AnonCreds.CreateRevocationStateAsync(
+ blobStorageReader: tailsReader,
+ revRegDef: registryDefinition.ObjectJson,
+ revRegDelta: delta.ObjectJson,
+ timestamp: (long)delta.Timestamp,
+ credRevId: credential.CredentialRevocationId);
+
+ return (delta, state);
+ }
+
+ private async Task BuildRevocationStatesAsync(IAgentContext agentContext,
+ IEnumerable credentialObjects,
+ ProofRequest proofRequest,
+ RequestedCredentials requestedCredentials)
+ {
+ var allCredentials = new List();
+ allCredentials.AddRange(requestedCredentials.RequestedAttributes.Values);
+ allCredentials.AddRange(requestedCredentials.RequestedPredicates.Values);
+
+ var result = new Dictionary>();
+
+ if (proofRequest.NonRevoked == null && !HasNonRevokedOnAttributeLevel(proofRequest))
+ return result.ToJson();
+
+ foreach (var requestedCredential in allCredentials)
+ {
+ // ReSharper disable once PossibleMultipleEnumeration
+ var credential = credentialObjects.First(x => x.Referent == requestedCredential.CredentialId);
+ if (credential.RevocationRegistryId == null)
+ continue;
+
+ var registryDefinition = await LedgerService.LookupRevocationRegistryDefinitionAsync(
+ agentContext: agentContext,
+ registryId: credential.RevocationRegistryId);
+
+ if (proofRequest.NonRevoked != null)
+ {
+ var (delta, state) = await BuildRevocationStateAsync(
+ agentContext, credential, registryDefinition, proofRequest.NonRevoked);
+
+ if (!result.ContainsKey(credential.RevocationRegistryId))
+ result.Add(credential.RevocationRegistryId, new Dictionary());
+
+ requestedCredential.Timestamp = (long) delta.Timestamp;
+ if (!result[credential.RevocationRegistryId].ContainsKey($"{delta.Timestamp}"))
+ result[credential.RevocationRegistryId].Add($"{delta.Timestamp}", JObject.Parse(state));
+
+ continue;
+ }
+
+ foreach (var proofRequestRequestedAttribute in proofRequest.RequestedAttributes)
+ {
+ var revocationInterval = proofRequestRequestedAttribute.Value.NonRevoked;
+ if (revocationInterval == null)
+ continue;
+
+ var (delta, state) = await BuildRevocationStateAsync(
+ agentContext, credential, registryDefinition, revocationInterval);
+
+ if (!result.ContainsKey(credential.RevocationRegistryId))
+ result.Add(credential.RevocationRegistryId, new Dictionary());
+
+ requestedCredential.Timestamp = (long) delta.Timestamp;
+ if (!result[credential.RevocationRegistryId].ContainsKey($"{delta.Timestamp}"))
+ result[credential.RevocationRegistryId].Add($"{delta.Timestamp}", JObject.Parse(state));
+ }
+
+ foreach (var proofRequestRequestedPredicate in proofRequest.RequestedPredicates)
+ {
+ var revocationInterval = proofRequestRequestedPredicate.Value.NonRevoked;
+ if (revocationInterval == null)
+ continue;
+
+ var (delta, state) = await BuildRevocationStateAsync(
+ agentContext, credential, registryDefinition, revocationInterval);
+
+ if (!result.ContainsKey(credential.RevocationRegistryId))
+ result.Add(credential.RevocationRegistryId, new Dictionary());
+
+ requestedCredential.Timestamp = (long) delta.Timestamp;
+ if (!result[credential.RevocationRegistryId].ContainsKey($"{delta.Timestamp}"))
+ result[credential.RevocationRegistryId].Add($"{delta.Timestamp}", JObject.Parse(state));
+ }
+ }
+
+ return result.ToJson();
+ }
+
+ private async Task BuildRevocationRegistriesAsync(
+ IAgentContext agentContext,
+ IEnumerable proofIdentifiers)
+ {
+ var result = new Dictionary>();
+
+ foreach (var identifier in proofIdentifiers)
+ {
+ if (identifier.Timestamp == null) continue;
+
+ var revocationRegistry = await LedgerService.LookupRevocationRegistryAsync(
+ agentContext,
+ identifier.RevocationRegistryId,
+ long.Parse(identifier.Timestamp));
+
+ result.Add(identifier.RevocationRegistryId,
+ new Dictionary
+ {
+ {identifier.Timestamp, JObject.Parse(revocationRegistry.ObjectJson)}
+ });
+ }
+
+ return result.ToJson();
+ }
+
+ private async Task BuildRevocationRegistryDefinitionsAsync(IAgentContext agentContext,
+ IEnumerable revocationRegistryIds)
+ {
+ var result = new Dictionary();
+
+ foreach (var revocationRegistryId in revocationRegistryIds)
+ {
+ var ledgerSchema =
+ await LedgerService.LookupRevocationRegistryDefinitionAsync(agentContext, revocationRegistryId);
+ result.Add(revocationRegistryId, JObject.Parse(ledgerSchema.ObjectJson));
+ }
+
+ return result.ToJson();
+ }
+
+ private void CheckProofProposalParameters(ProofProposal proofProposal)
+ {
+ if (proofProposal.ProposedAttributes.Count > 1)
+ {
+ var attrList = proofProposal.ProposedAttributes;
+ var referents = new Dictionary();
+
+ // Check if all attributes that share referent have same requirements
+ for (int i = 0; i < attrList.Count; i++)
+ {
+ var attr = attrList[i];
+ if (referents.ContainsKey(attr.Referent))
+ {
+ if(referents[attr.Referent].IssuerDid != attr.IssuerDid ||
+ referents[attr.Referent].SchemaId != attr.SchemaId ||
+ referents[attr.Referent].CredentialDefinitionId != attr.CredentialDefinitionId)
+ {
+ throw new AriesFrameworkException(ErrorCode.InvalidParameterFormat, "All attributes that share a referent must have identical requirements");
+ }
+ else
+ {
+ continue;
+ }
+ }
+ else
+ {
+ referents.Add(attr.Referent, attr);
+ }
+ }
+ }
+
+ if (proofProposal.ProposedPredicates.Count > 1)
+ {
+ var predList = proofProposal.ProposedPredicates;
+ var referents = new Dictionary();
+
+ for (int i = 0; i < predList.Count; i++)
+ {
+ var pred = predList[i];
+ if (referents.ContainsKey(pred.Referent))
+ {
+ throw new AriesFrameworkException(ErrorCode.InvalidParameterFormat, "Proposed Predicates must all have unique referents");
+ }
+ else
+ {
+ referents.Add(pred.Referent, pred);
+ }
+ }
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/src/Hyperledger.Aries/Features/PresentProof/IProofService.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/IProofService.cs
similarity index 98%
rename from src/Hyperledger.Aries/Features/PresentProof/IProofService.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/IProofService.cs
index 656081e1..e2d12a95 100644
--- a/src/Hyperledger.Aries/Features/PresentProof/IProofService.cs
+++ b/legacy/src/Hyperledger.Aries/Features/PresentProof/IProofService.cs
@@ -1,247 +1,247 @@
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Common;
-using Hyperledger.Aries.Features.Handshakes.Common;
-using Hyperledger.Aries.Features.IssueCredential;
-using Hyperledger.Aries.Features.PresentProof.Messages;
-using Hyperledger.Aries.Storage;
-
-namespace Hyperledger.Aries.Features.PresentProof
-{
- ///
- /// Proof Service.
- ///
- public interface IProofService
- {
- ///
- /// Creates a proof proposal.
- ///
- /// The proof proposal.
- /// Agent Context.
- /// The proof proposal that will be created
- /// Connection identifier of who the proof request will be sent to.
- /// Proof Request message and identifier.
- Task<(ProposePresentationMessage, ProofRecord)> CreateProposalAsync(IAgentContext agentContext,
- ProofProposal proofProposal, string connectionId);
-
-
- ///
- /// Creates a proof request from a proof proposal.
- ///
- /// The proof request.
- /// Agent Context.
- /// The parameters requested to be proven
- /// proposal Id
- /// Connection identifier of who the proof proposal will be sent to.
- /// Proof Request message and identifier.
- Task<(RequestPresentationMessage, ProofRecord)> CreateRequestFromProposalAsync(IAgentContext agentContext, ProofRequestParameters requestParameters,
- string proofRecordId, string connectionId);
-
-
- ///
- /// Processes a proof proposal and stores it for a given connection.
- ///
- /// The identifier for the stored proof proposal.
- /// Agent Context.
- /// A proof proposal.
- /// Connection.
- /// Proof identifier.
- Task ProcessProposalAsync(IAgentContext agentContext, ProposePresentationMessage proposePresentationMessage, ConnectionRecord connection);
-
-
- ///
- /// Creates a proof request.
- ///
- /// The proof request.
- /// Agent Context.
- /// An enumeration of attribute we wish the prover to disclose.
- /// Connection identifier of who the proof request will be sent to.
- /// Proof Request message and identifier.
- Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext,
- ProofRequest proofRequest, string connectionId);
-
- ///
- /// Creates a new and associated
- /// for use with connectionless transport.
- ///
- ///
- ///
- ///
- ///
- Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext, ProofRequest proofRequest, bool useDidKeyFormat = false);
-
- ///
- /// Creates a proof request.
- ///
- /// The proof request.
- /// Agent Context.
- /// A string representation of proof request json object
- /// Connection identifier of who the proof request will be sent to.
- /// Proof Request message and identifier.
- Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext,
- string proofRequestJson, string connectionId);
-
- ///
- /// Processes a proof request and stores it for a given connection.
- ///
- /// The identifier for the stored proof request.
- /// Agent Context.
- /// A proof request.
- /// Connection.
- /// Proof identifier.
- Task ProcessRequestAsync(IAgentContext agentContext, RequestPresentationMessage proofRequest, ConnectionRecord connection);
-
- ///
- /// Processes a proof and stores it for a given connection.
- ///
- /// The identifier for the stored proof.
- /// Agent Context.
- /// A proof.
- /// Proof identifier.
- Task ProcessPresentationAsync(IAgentContext agentContext, PresentationMessage proof);
-
- ///
- /// Processes a proof request and generates an accompanying proof.
- ///
- /// Agent Context.
- /// Proof Request.
- /// Requested Credentials.
- ///
- /// The proof.
- ///
- Task CreatePresentationAsync(
- IAgentContext agentContext,
- ProofRequest proofRequest,
- RequestedCredentials requestedCredentials);
-
- ///
- /// Creates a presentation message based on a request over connectionless transport.
- ///
- ///
- ///
- ///
- ///
- Task CreatePresentationAsync(IAgentContext agentContext, RequestPresentationMessage requestPresentation, RequestedCredentials requestedCredentials);
-
- ///
- /// Creates a proof.
- ///
- /// Agent Context.
- /// Identifier of the proof request.
- /// The requested credentials.
- ///
- /// The proof.
- ///
- Task<(PresentationMessage, ProofRecord)> CreatePresentationAsync(IAgentContext agentContext,
- string proofRecordId, RequestedCredentials requestedCredentials);
-
- ///
- /// Rejects a proof request.
- ///
- /// The proof.
- /// Agent Context.
- /// Identifier of the proof request.
- Task RejectProofRequestAsync(IAgentContext agentContext, string proofRecordId);
-
- ///
- /// Verifies a proof.
- ///
- /// Agent Context.
- /// Identifier of the proof record.
- /// Status indicating validity of proof.
- Task VerifyProofAsync(IAgentContext agentContext, string proofRecordId);
-
- ///
- /// Check if a credential has been revoked by validating against the revocation state
- /// on the ledger.
- ///
- ///
- /// This method can be used as a holder, to check if a credential thay own has been
- /// revoked by the issuer. If a credential doesn't support revocation, this method will
- /// always return false
- ///
- ///
- ///
- ///
- Task IsRevokedAsync(IAgentContext context, CredentialRecord record);
-
- ///
- /// Check if a credential has been revoked by validating against the revocation state
- /// on the ledger.
- ///
- ///
- /// This method can be used as a holder, to check if a credential thay own has been
- /// revoked by the issuer. If a credential doesn't support revocation, this method will
- /// always return false
- ///
- ///
- ///
- ///
- Task IsRevokedAsync(IAgentContext context, string credentialRecordId);
-
- ///
- /// Verifies a proof.
- ///
- /// Agent Context.
- /// The proof request.
- /// The proof.
- ///
- /// If true, validate the encoded raw values against standard encoding.
- /// It is recommended to enable encoding validation to detect raw value tampering.
- ///
- /// Status indiciating the validity of proof.
- Task VerifyProofAsync(IAgentContext agentContext, string proofRequestJson, string proofJson, bool validateEncoding = true);
-
- ///
- /// Gets an enumeration of proofs stored in the wallet.
- ///
- /// Agent Context.
- /// The query.
- /// The count.
- ///
- /// A list of proofs.
- ///
- Task> ListAsync(IAgentContext agentContext, ISearchQuery query = null, int count = 100);
-
- ///
- /// Gets a particular proof stored in the wallet.
- ///
- /// Agent Context.
- /// Identifier of the proof record.
- /// The proof.
- Task GetAsync(IAgentContext agentContext, string proofRecId);
-
- ///
- /// Lists the credentials available for the given proof request.
- ///
- /// Agent Context.
- /// The proof request object.
- /// The attribute referent.
- ///
- /// A collection of that are available
- /// for building a proof for the given proof request
- ///
- Task> ListCredentialsForProofRequestAsync(
- IAgentContext agentContext,
- ProofRequest proofRequest,
- string attributeReferent);
-
- ///
- /// Creates a presentation acknowledge message async.
- ///
- /// Agent Context.
- /// The ID of the proof record that is used.
- /// The status of the acknowledgement message
- /// The Presentation Acknowledgement Message.
- Task CreateAcknowledgeMessageAsync(IAgentContext agentContext, string proofRecordId, string status = AcknowledgementStatusConstants.Ok);
-
- ///
- /// Processes a presentation acknowledge message async.
- ///
- /// Agent Context.
- /// The presentation acknowledgement message.
- /// The proof record associated with the acknowledge message.
- Task ProcessAcknowledgeMessageAsync(IAgentContext agentContext, PresentationAcknowledgeMessage presentationAcknowledgeMessage);
- }
-}
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Common;
+using Hyperledger.Aries.Features.Handshakes.Common;
+using Hyperledger.Aries.Features.IssueCredential;
+using Hyperledger.Aries.Features.PresentProof.Messages;
+using Hyperledger.Aries.Storage;
+
+namespace Hyperledger.Aries.Features.PresentProof
+{
+ ///
+ /// Proof Service.
+ ///
+ public interface IProofService
+ {
+ ///
+ /// Creates a proof proposal.
+ ///
+ /// The proof proposal.
+ /// Agent Context.
+ /// The proof proposal that will be created
+ /// Connection identifier of who the proof request will be sent to.
+ /// Proof Request message and identifier.
+ Task<(ProposePresentationMessage, ProofRecord)> CreateProposalAsync(IAgentContext agentContext,
+ ProofProposal proofProposal, string connectionId);
+
+
+ ///
+ /// Creates a proof request from a proof proposal.
+ ///
+ /// The proof request.
+ /// Agent Context.
+ /// The parameters requested to be proven
+ /// proposal Id
+ /// Connection identifier of who the proof proposal will be sent to.
+ /// Proof Request message and identifier.
+ Task<(RequestPresentationMessage, ProofRecord)> CreateRequestFromProposalAsync(IAgentContext agentContext, ProofRequestParameters requestParameters,
+ string proofRecordId, string connectionId);
+
+
+ ///
+ /// Processes a proof proposal and stores it for a given connection.
+ ///
+ /// The identifier for the stored proof proposal.
+ /// Agent Context.
+ /// A proof proposal.
+ /// Connection.
+ /// Proof identifier.
+ Task ProcessProposalAsync(IAgentContext agentContext, ProposePresentationMessage proposePresentationMessage, ConnectionRecord connection);
+
+
+ ///
+ /// Creates a proof request.
+ ///
+ /// The proof request.
+ /// Agent Context.
+ /// An enumeration of attribute we wish the prover to disclose.
+ /// Connection identifier of who the proof request will be sent to.
+ /// Proof Request message and identifier.
+ Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext,
+ ProofRequest proofRequest, string connectionId);
+
+ ///
+ /// Creates a new and associated
+ /// for use with connectionless transport.
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext, ProofRequest proofRequest, bool useDidKeyFormat = false);
+
+ ///
+ /// Creates a proof request.
+ ///
+ /// The proof request.
+ /// Agent Context.
+ /// A string representation of proof request json object
+ /// Connection identifier of who the proof request will be sent to.
+ /// Proof Request message and identifier.
+ Task<(RequestPresentationMessage, ProofRecord)> CreateRequestAsync(IAgentContext agentContext,
+ string proofRequestJson, string connectionId);
+
+ ///
+ /// Processes a proof request and stores it for a given connection.
+ ///
+ /// The identifier for the stored proof request.
+ /// Agent Context.
+ /// A proof request.
+ /// Connection.
+ /// Proof identifier.
+ Task ProcessRequestAsync(IAgentContext agentContext, RequestPresentationMessage proofRequest, ConnectionRecord connection);
+
+ ///
+ /// Processes a proof and stores it for a given connection.
+ ///
+ /// The identifier for the stored proof.
+ /// Agent Context.
+ /// A proof.
+ /// Proof identifier.
+ Task ProcessPresentationAsync(IAgentContext agentContext, PresentationMessage proof);
+
+ ///
+ /// Processes a proof request and generates an accompanying proof.
+ ///
+ /// Agent Context.
+ /// Proof Request.
+ /// Requested Credentials.
+ ///
+ /// The proof.
+ ///
+ Task CreatePresentationAsync(
+ IAgentContext agentContext,
+ ProofRequest proofRequest,
+ RequestedCredentials requestedCredentials);
+
+ ///
+ /// Creates a presentation message based on a request over connectionless transport.
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task CreatePresentationAsync(IAgentContext agentContext, RequestPresentationMessage requestPresentation, RequestedCredentials requestedCredentials);
+
+ ///
+ /// Creates a proof.
+ ///
+ /// Agent Context.
+ /// Identifier of the proof request.
+ /// The requested credentials.
+ ///
+ /// The proof.
+ ///
+ Task<(PresentationMessage, ProofRecord)> CreatePresentationAsync(IAgentContext agentContext,
+ string proofRecordId, RequestedCredentials requestedCredentials);
+
+ ///
+ /// Rejects a proof request.
+ ///
+ /// The proof.
+ /// Agent Context.
+ /// Identifier of the proof request.
+ Task RejectProofRequestAsync(IAgentContext agentContext, string proofRecordId);
+
+ ///
+ /// Verifies a proof.
+ ///
+ /// Agent Context.
+ /// Identifier of the proof record.
+ /// Status indicating validity of proof.
+ Task VerifyProofAsync(IAgentContext agentContext, string proofRecordId);
+
+ ///
+ /// Check if a credential has been revoked by validating against the revocation state
+ /// on the ledger.
+ ///
+ ///
+ /// This method can be used as a holder, to check if a credential thay own has been
+ /// revoked by the issuer. If a credential doesn't support revocation, this method will
+ /// always return false
+ ///
+ ///
+ ///
+ ///
+ Task IsRevokedAsync(IAgentContext context, CredentialRecord record);
+
+ ///
+ /// Check if a credential has been revoked by validating against the revocation state
+ /// on the ledger.
+ ///
+ ///
+ /// This method can be used as a holder, to check if a credential thay own has been
+ /// revoked by the issuer. If a credential doesn't support revocation, this method will
+ /// always return false
+ ///
+ ///
+ ///
+ ///
+ Task IsRevokedAsync(IAgentContext context, string credentialRecordId);
+
+ ///
+ /// Verifies a proof.
+ ///
+ /// Agent Context.
+ /// The proof request.
+ /// The proof.
+ ///
+ /// If true, validate the encoded raw values against standard encoding.
+ /// It is recommended to enable encoding validation to detect raw value tampering.
+ ///
+ /// Status indiciating the validity of proof.
+ Task VerifyProofAsync(IAgentContext agentContext, string proofRequestJson, string proofJson, bool validateEncoding = true);
+
+ ///
+ /// Gets an enumeration of proofs stored in the wallet.
+ ///
+ /// Agent Context.
+ /// The query.
+ /// The count.
+ ///
+ /// A list of proofs.
+ ///
+ Task> ListAsync(IAgentContext agentContext, ISearchQuery query = null, int count = 100);
+
+ ///
+ /// Gets a particular proof stored in the wallet.
+ ///
+ /// Agent Context.
+ /// Identifier of the proof record.
+ /// The proof.
+ Task GetAsync(IAgentContext agentContext, string proofRecId);
+
+ ///
+ /// Lists the credentials available for the given proof request.
+ ///
+ /// Agent Context.
+ /// The proof request object.
+ /// The attribute referent.
+ ///
+ /// A collection of that are available
+ /// for building a proof for the given proof request
+ ///
+ Task> ListCredentialsForProofRequestAsync(
+ IAgentContext agentContext,
+ ProofRequest proofRequest,
+ string attributeReferent);
+
+ ///
+ /// Creates a presentation acknowledge message async.
+ ///
+ /// Agent Context.
+ /// The ID of the proof record that is used.
+ /// The status of the acknowledgement message
+ /// The Presentation Acknowledgement Message.
+ Task CreateAcknowledgeMessageAsync(IAgentContext agentContext, string proofRecordId, string status = AcknowledgementStatusConstants.Ok);
+
+ ///
+ /// Processes a presentation acknowledge message async.
+ ///
+ /// Agent Context.
+ /// The presentation acknowledgement message.
+ /// The proof record associated with the acknowledge message.
+ Task ProcessAcknowledgeMessageAsync(IAgentContext agentContext, PresentationAcknowledgeMessage presentationAcknowledgeMessage);
+ }
+}
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationAcknowledgeMessage.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationAcknowledgeMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationAcknowledgeMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationAcknowledgeMessage.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationMessage.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationMessage.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationPreviewMessage.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationPreviewMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationPreviewMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/PresentationPreviewMessage.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Messages/ProposePresentationMessage.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/ProposePresentationMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Messages/ProposePresentationMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/ProposePresentationMessage.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Messages/RequestPresentationMessage.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/RequestPresentationMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Messages/RequestPresentationMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Messages/RequestPresentationMessage.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/AttributeFilterConverter.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/AttributeFilterConverter.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/AttributeFilterConverter.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/AttributeFilterConverter.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/PartialProof.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/PartialProof.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/PartialProof.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/PartialProof.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/ProofAttribute.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofAttribute.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/ProofAttribute.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofAttribute.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/ProofAttributeInfo.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofAttributeInfo.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/ProofAttributeInfo.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofAttributeInfo.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/ProofIdentifier.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofIdentifier.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/ProofIdentifier.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofIdentifier.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/ProofPredicateInfo.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofPredicateInfo.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/ProofPredicateInfo.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofPredicateInfo.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/ProofProposal.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofProposal.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/ProofProposal.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofProposal.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequest.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequest.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequest.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequest.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestConfiguration.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestConfiguration.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestConfiguration.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestConfiguration.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestParameters.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestParameters.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestParameters.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestParameters.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedAttribute.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedAttribute.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/RequestedAttribute.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedAttribute.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedCredentials.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedCredentials.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/RequestedCredentials.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedCredentials.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedProof.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedProof.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/RequestedProof.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/RequestedProof.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/Models/RevocationInterval.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/Models/RevocationInterval.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/Models/RevocationInterval.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/Models/RevocationInterval.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/ProofRecord.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/ProofRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/ProofRecord.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/ProofRecord.cs
diff --git a/src/Hyperledger.Aries/Features/PresentProof/ProofServiceExtensions.cs b/legacy/src/Hyperledger.Aries/Features/PresentProof/ProofServiceExtensions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/PresentProof/ProofServiceExtensions.cs
rename to legacy/src/Hyperledger.Aries/Features/PresentProof/ProofServiceExtensions.cs
diff --git a/src/Hyperledger.Aries/Features/ProblemReport/ProblemImpact.cs b/legacy/src/Hyperledger.Aries/Features/ProblemReport/ProblemImpact.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/ProblemReport/ProblemImpact.cs
rename to legacy/src/Hyperledger.Aries/Features/ProblemReport/ProblemImpact.cs
diff --git a/src/Hyperledger.Aries/Features/ProblemReport/ProblemReportMessage.cs b/legacy/src/Hyperledger.Aries/Features/ProblemReport/ProblemReportMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/ProblemReport/ProblemReportMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/ProblemReport/ProblemReportMessage.cs
diff --git a/src/Hyperledger.Aries/Features/ProblemReport/RetryParty.cs b/legacy/src/Hyperledger.Aries/Features/ProblemReport/RetryParty.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/ProblemReport/RetryParty.cs
rename to legacy/src/Hyperledger.Aries/Features/ProblemReport/RetryParty.cs
diff --git a/src/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationHandler.cs b/legacy/src/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationHandler.cs
diff --git a/src/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationService.cs b/legacy/src/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationService.cs
rename to legacy/src/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationService.cs
diff --git a/src/Hyperledger.Aries/Features/RevocationNotification/IRevocationNotificationService.cs b/legacy/src/Hyperledger.Aries/Features/RevocationNotification/IRevocationNotificationService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/RevocationNotification/IRevocationNotificationService.cs
rename to legacy/src/Hyperledger.Aries/Features/RevocationNotification/IRevocationNotificationService.cs
diff --git a/src/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationAcknowledgeMessage.cs b/legacy/src/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationAcknowledgeMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationAcknowledgeMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationAcknowledgeMessage.cs
diff --git a/src/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationMessage.cs b/legacy/src/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationMessage.cs
diff --git a/src/Hyperledger.Aries/Features/Routing/DefaultForwardHandler.cs b/legacy/src/Hyperledger.Aries/Features/Routing/DefaultForwardHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Routing/DefaultForwardHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/Routing/DefaultForwardHandler.cs
diff --git a/src/Hyperledger.Aries/Features/Routing/ForwardMessage.cs b/legacy/src/Hyperledger.Aries/Features/Routing/ForwardMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/Routing/ForwardMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/Routing/ForwardMessage.cs
diff --git a/src/Hyperledger.Aries/Features/TrustPing/DefaultTrustPingHandler.cs b/legacy/src/Hyperledger.Aries/Features/TrustPing/DefaultTrustPingHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/TrustPing/DefaultTrustPingHandler.cs
rename to legacy/src/Hyperledger.Aries/Features/TrustPing/DefaultTrustPingHandler.cs
diff --git a/src/Hyperledger.Aries/Features/TrustPing/TrustPingMessage.cs b/legacy/src/Hyperledger.Aries/Features/TrustPing/TrustPingMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/TrustPing/TrustPingMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/TrustPing/TrustPingMessage.cs
diff --git a/src/Hyperledger.Aries/Features/TrustPing/TrustPingResponseMessage.cs b/legacy/src/Hyperledger.Aries/Features/TrustPing/TrustPingResponseMessage.cs
similarity index 100%
rename from src/Hyperledger.Aries/Features/TrustPing/TrustPingResponseMessage.cs
rename to legacy/src/Hyperledger.Aries/Features/TrustPing/TrustPingResponseMessage.cs
diff --git a/src/Hyperledger.Aries/Hyperledger.Aries.csproj b/legacy/src/Hyperledger.Aries/Hyperledger.Aries.csproj
similarity index 95%
rename from src/Hyperledger.Aries/Hyperledger.Aries.csproj
rename to legacy/src/Hyperledger.Aries/Hyperledger.Aries.csproj
index b56d1af1..8db5486a 100644
--- a/src/Hyperledger.Aries/Hyperledger.Aries.csproj
+++ b/legacy/src/Hyperledger.Aries/Hyperledger.Aries.csproj
@@ -6,6 +6,8 @@
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
enable
9.0
+ false
+ netstandard2.1
diff --git a/src/Hyperledger.Aries/IsExternalInit.cs b/legacy/src/Hyperledger.Aries/IsExternalInit.cs
similarity index 100%
rename from src/Hyperledger.Aries/IsExternalInit.cs
rename to legacy/src/Hyperledger.Aries/IsExternalInit.cs
diff --git a/src/Hyperledger.Aries/Ledger/Abstractions/ILedgerService.cs b/legacy/src/Hyperledger.Aries/Ledger/Abstractions/ILedgerService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Abstractions/ILedgerService.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Abstractions/ILedgerService.cs
diff --git a/src/Hyperledger.Aries/Ledger/Abstractions/ILedgerSigningService.cs b/legacy/src/Hyperledger.Aries/Ledger/Abstractions/ILedgerSigningService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Abstractions/ILedgerSigningService.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Abstractions/ILedgerSigningService.cs
diff --git a/src/Hyperledger.Aries/Ledger/Abstractions/IPoolService.cs b/legacy/src/Hyperledger.Aries/Ledger/Abstractions/IPoolService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Abstractions/IPoolService.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Abstractions/IPoolService.cs
diff --git a/src/Hyperledger.Aries/Ledger/DefaultLedgerService.cs b/legacy/src/Hyperledger.Aries/Ledger/DefaultLedgerService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/DefaultLedgerService.cs
rename to legacy/src/Hyperledger.Aries/Ledger/DefaultLedgerService.cs
diff --git a/src/Hyperledger.Aries/Ledger/DefaultLedgerSigningService.cs b/legacy/src/Hyperledger.Aries/Ledger/DefaultLedgerSigningService.cs
similarity index 97%
rename from src/Hyperledger.Aries/Ledger/DefaultLedgerSigningService.cs
rename to legacy/src/Hyperledger.Aries/Ledger/DefaultLedgerSigningService.cs
index a5f6690a..6750042e 100644
--- a/src/Hyperledger.Aries/Ledger/DefaultLedgerSigningService.cs
+++ b/legacy/src/Hyperledger.Aries/Ledger/DefaultLedgerSigningService.cs
@@ -1,46 +1,46 @@
-using System;
-using System.Threading.Tasks;
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Contracts;
-using Hyperledger.Indy.WalletApi;
-using IndyLedger = Hyperledger.Indy.LedgerApi.Ledger;
-
-namespace Hyperledger.Aries.Ledger
-{
- ///
- public class DefaultLedgerSigningService : ILedgerSigningService
- {
- private readonly IProvisioningService provisioningService;
-
- public DefaultLedgerSigningService(IProvisioningService provisioningService)
- {
- this.provisioningService = provisioningService;
- }
- ///
- public virtual async Task SignRequestAsync(IAgentContext context, string submitterDid, string requestJson)
- {
- try
- {
- var provisioning = await provisioningService.GetProvisioningAsync(context.Wallet);
-
- if (provisioning?.TaaAcceptance != null)
- {
- requestJson = await IndyLedger.AppendTxnAuthorAgreementAcceptanceToRequestAsync(requestJson, provisioning.TaaAcceptance.Text,
- provisioning.TaaAcceptance.Version, provisioning.TaaAcceptance.Digest, provisioning.TaaAcceptance.AcceptanceMechanism, (ulong)DateTimeOffset.Now.ToUnixTimeSeconds());
- }
- }
- catch (AriesFrameworkException ex) when (ex.ErrorCode == ErrorCode.RecordNotFound)
- {
- // OK, used in unit tests and scenarios when we want to simply send ledger commands
- }
- return await SignRequestAsync(context.Wallet, submitterDid, requestJson);
- }
-
- ///
- public virtual Task SignRequestAsync(Wallet wallet, string submitterDid, string requestJson)
- {
- return IndyLedger.SignRequestAsync(wallet, submitterDid, requestJson);
- }
- }
-}
+using System;
+using System.Threading.Tasks;
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Contracts;
+using Hyperledger.Indy.WalletApi;
+using IndyLedger = Hyperledger.Indy.LedgerApi.Ledger;
+
+namespace Hyperledger.Aries.Ledger
+{
+ ///
+ public class DefaultLedgerSigningService : ILedgerSigningService
+ {
+ private readonly IProvisioningService provisioningService;
+
+ public DefaultLedgerSigningService(IProvisioningService provisioningService)
+ {
+ this.provisioningService = provisioningService;
+ }
+ ///
+ public virtual async Task SignRequestAsync(IAgentContext context, string submitterDid, string requestJson)
+ {
+ try
+ {
+ var provisioning = await provisioningService.GetProvisioningAsync(context.Wallet);
+
+ if (provisioning?.TaaAcceptance != null)
+ {
+ requestJson = await IndyLedger.AppendTxnAuthorAgreementAcceptanceToRequestAsync(requestJson, provisioning.TaaAcceptance.Text,
+ provisioning.TaaAcceptance.Version, provisioning.TaaAcceptance.Digest, provisioning.TaaAcceptance.AcceptanceMechanism, (ulong)DateTimeOffset.Now.ToUnixTimeSeconds());
+ }
+ }
+ catch (AriesFrameworkException ex) when (ex.ErrorCode == ErrorCode.RecordNotFound)
+ {
+ // OK, used in unit tests and scenarios when we want to simply send ledger commands
+ }
+ return await SignRequestAsync(context.Wallet, submitterDid, requestJson);
+ }
+
+ ///
+ public virtual Task SignRequestAsync(Wallet wallet, string submitterDid, string requestJson)
+ {
+ return IndyLedger.SignRequestAsync(wallet, submitterDid, requestJson);
+ }
+ }
+}
diff --git a/src/Hyperledger.Aries/Ledger/DefaultPoolService.cs b/legacy/src/Hyperledger.Aries/Ledger/DefaultPoolService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/DefaultPoolService.cs
rename to legacy/src/Hyperledger.Aries/Ledger/DefaultPoolService.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/AuthorizationConstraint.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/AuthorizationConstraint.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/AuthorizationConstraint.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/AuthorizationConstraint.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/AuthorizationRule.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/AuthorizationRule.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/AuthorizationRule.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/AuthorizationRule.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/ConstraintMetadata.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/ConstraintMetadata.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/ConstraintMetadata.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/ConstraintMetadata.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/CredDefId.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/CredDefId.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/CredDefId.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/CredDefId.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/IndyAml.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/IndyAml.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/IndyAml.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/IndyAml.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/IndyTaa.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/IndyTaa.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/IndyTaa.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/IndyTaa.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/IndyTaaAcceptance.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/IndyTaaAcceptance.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/IndyTaaAcceptance.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/IndyTaaAcceptance.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/ParseRegistryResponseResult.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/ParseRegistryResponseResult.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/ParseRegistryResponseResult.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/ParseRegistryResponseResult.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/ParseResponseResult.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/ParseResponseResult.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/ParseResponseResult.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/ParseResponseResult.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/PoolAwaitable.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/PoolAwaitable.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/PoolAwaitable.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/PoolAwaitable.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/SchemaId.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/SchemaId.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/SchemaId.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/SchemaId.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/ServiceEndpointResult.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/ServiceEndpointResult.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/ServiceEndpointResult.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/ServiceEndpointResult.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/TransactionActions.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/TransactionActions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/TransactionActions.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/TransactionActions.cs
diff --git a/src/Hyperledger.Aries/Ledger/Models/TransactionTypes.cs b/legacy/src/Hyperledger.Aries/Ledger/Models/TransactionTypes.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/Models/TransactionTypes.cs
rename to legacy/src/Hyperledger.Aries/Ledger/Models/TransactionTypes.cs
diff --git a/src/Hyperledger.Aries/Ledger/V2/DefaultLedgerServiceV2.cs b/legacy/src/Hyperledger.Aries/Ledger/V2/DefaultLedgerServiceV2.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/V2/DefaultLedgerServiceV2.cs
rename to legacy/src/Hyperledger.Aries/Ledger/V2/DefaultLedgerServiceV2.cs
diff --git a/src/Hyperledger.Aries/Ledger/V2/DefaultPoolServiceV2.cs b/legacy/src/Hyperledger.Aries/Ledger/V2/DefaultPoolServiceV2.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/V2/DefaultPoolServiceV2.cs
rename to legacy/src/Hyperledger.Aries/Ledger/V2/DefaultPoolServiceV2.cs
diff --git a/src/Hyperledger.Aries/Ledger/V2/ResponseParser.cs b/legacy/src/Hyperledger.Aries/Ledger/V2/ResponseParser.cs
similarity index 100%
rename from src/Hyperledger.Aries/Ledger/V2/ResponseParser.cs
rename to legacy/src/Hyperledger.Aries/Ledger/V2/ResponseParser.cs
diff --git a/src/Hyperledger.Aries/Payments/DefaultPaymentService.cs b/legacy/src/Hyperledger.Aries/Payments/DefaultPaymentService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/DefaultPaymentService.cs
rename to legacy/src/Hyperledger.Aries/Payments/DefaultPaymentService.cs
diff --git a/src/Hyperledger.Aries/Payments/IPaymentService.cs b/legacy/src/Hyperledger.Aries/Payments/IPaymentService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/IPaymentService.cs
rename to legacy/src/Hyperledger.Aries/Payments/IPaymentService.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/AddressOptions.cs b/legacy/src/Hyperledger.Aries/Payments/Models/AddressOptions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/AddressOptions.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/AddressOptions.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/IndyPaymentInputSource.cs b/legacy/src/Hyperledger.Aries/Payments/Models/IndyPaymentInputSource.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/IndyPaymentInputSource.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/IndyPaymentInputSource.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/IndyPaymentOutputSource.cs b/legacy/src/Hyperledger.Aries/Payments/Models/IndyPaymentOutputSource.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/IndyPaymentOutputSource.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/IndyPaymentOutputSource.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/PaymentAmount.cs b/legacy/src/Hyperledger.Aries/Payments/Models/PaymentAmount.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/PaymentAmount.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/PaymentAmount.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/PaymentDetails.cs b/legacy/src/Hyperledger.Aries/Payments/Models/PaymentDetails.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/PaymentDetails.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/PaymentDetails.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/PaymentItem.cs b/legacy/src/Hyperledger.Aries/Payments/Models/PaymentItem.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/PaymentItem.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/PaymentItem.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/PaymentMethod.cs b/legacy/src/Hyperledger.Aries/Payments/Models/PaymentMethod.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/PaymentMethod.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/PaymentMethod.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/PaymentMethodData.cs b/legacy/src/Hyperledger.Aries/Payments/Models/PaymentMethodData.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/PaymentMethodData.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/PaymentMethodData.cs
diff --git a/src/Hyperledger.Aries/Payments/Models/TransactionCost.cs b/legacy/src/Hyperledger.Aries/Payments/Models/TransactionCost.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/Models/TransactionCost.cs
rename to legacy/src/Hyperledger.Aries/Payments/Models/TransactionCost.cs
diff --git a/src/Hyperledger.Aries/Payments/PaymentAddressRecord.cs b/legacy/src/Hyperledger.Aries/Payments/PaymentAddressRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/PaymentAddressRecord.cs
rename to legacy/src/Hyperledger.Aries/Payments/PaymentAddressRecord.cs
diff --git a/src/Hyperledger.Aries/Payments/PaymentRecord.cs b/legacy/src/Hyperledger.Aries/Payments/PaymentRecord.cs
similarity index 100%
rename from src/Hyperledger.Aries/Payments/PaymentRecord.cs
rename to legacy/src/Hyperledger.Aries/Payments/PaymentRecord.cs
diff --git a/src/Hyperledger.Aries/Properties/AssemblyInfo.cs b/legacy/src/Hyperledger.Aries/Properties/AssemblyInfo.cs
similarity index 100%
rename from src/Hyperledger.Aries/Properties/AssemblyInfo.cs
rename to legacy/src/Hyperledger.Aries/Properties/AssemblyInfo.cs
diff --git a/src/Hyperledger.Aries/Signatures/DefaultSigningService.cs b/legacy/src/Hyperledger.Aries/Signatures/DefaultSigningService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Signatures/DefaultSigningService.cs
rename to legacy/src/Hyperledger.Aries/Signatures/DefaultSigningService.cs
diff --git a/src/Hyperledger.Aries/Signatures/ISigningService.cs b/legacy/src/Hyperledger.Aries/Signatures/ISigningService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Signatures/ISigningService.cs
rename to legacy/src/Hyperledger.Aries/Signatures/ISigningService.cs
diff --git a/src/Hyperledger.Aries/Storage/DefaultWalletRecordService.cs b/legacy/src/Hyperledger.Aries/Storage/DefaultWalletRecordService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/DefaultWalletRecordService.cs
rename to legacy/src/Hyperledger.Aries/Storage/DefaultWalletRecordService.cs
diff --git a/src/Hyperledger.Aries/Storage/DefaultWalletService.cs b/legacy/src/Hyperledger.Aries/Storage/DefaultWalletService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/DefaultWalletService.cs
rename to legacy/src/Hyperledger.Aries/Storage/DefaultWalletService.cs
diff --git a/src/Hyperledger.Aries/Storage/IWalletRecordService.cs b/legacy/src/Hyperledger.Aries/Storage/IWalletRecordService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/IWalletRecordService.cs
rename to legacy/src/Hyperledger.Aries/Storage/IWalletRecordService.cs
diff --git a/src/Hyperledger.Aries/Storage/IWalletService.cs b/legacy/src/Hyperledger.Aries/Storage/IWalletService.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/IWalletService.cs
rename to legacy/src/Hyperledger.Aries/Storage/IWalletService.cs
diff --git a/src/Hyperledger.Aries/Storage/Models/RecordTagAttribute.cs b/legacy/src/Hyperledger.Aries/Storage/Models/RecordTagAttribute.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Models/RecordTagAttribute.cs
rename to legacy/src/Hyperledger.Aries/Storage/Models/RecordTagAttribute.cs
diff --git a/src/Hyperledger.Aries/Storage/Models/WalletConfiguration.cs b/legacy/src/Hyperledger.Aries/Storage/Models/WalletConfiguration.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Models/WalletConfiguration.cs
rename to legacy/src/Hyperledger.Aries/Storage/Models/WalletConfiguration.cs
diff --git a/src/Hyperledger.Aries/Storage/Models/WalletCredentials.cs b/legacy/src/Hyperledger.Aries/Storage/Models/WalletCredentials.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Models/WalletCredentials.cs
rename to legacy/src/Hyperledger.Aries/Storage/Models/WalletCredentials.cs
diff --git a/src/Hyperledger.Aries/Storage/Models/WalletStorageConfiguration.cs b/legacy/src/Hyperledger.Aries/Storage/Models/WalletStorageConfiguration.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Models/WalletStorageConfiguration.cs
rename to legacy/src/Hyperledger.Aries/Storage/Models/WalletStorageConfiguration.cs
diff --git a/src/Hyperledger.Aries/Storage/Records/RecordBase.cs b/legacy/src/Hyperledger.Aries/Storage/Records/RecordBase.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Records/RecordBase.cs
rename to legacy/src/Hyperledger.Aries/Storage/Records/RecordBase.cs
diff --git a/src/Hyperledger.Aries/Storage/Records/Search/SearchItem.cs b/legacy/src/Hyperledger.Aries/Storage/Records/Search/SearchItem.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Records/Search/SearchItem.cs
rename to legacy/src/Hyperledger.Aries/Storage/Records/Search/SearchItem.cs
diff --git a/src/Hyperledger.Aries/Storage/Records/Search/SearchOptions.cs b/legacy/src/Hyperledger.Aries/Storage/Records/Search/SearchOptions.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Records/Search/SearchOptions.cs
rename to legacy/src/Hyperledger.Aries/Storage/Records/Search/SearchOptions.cs
diff --git a/src/Hyperledger.Aries/Storage/Records/Search/SearchQuery.cs b/legacy/src/Hyperledger.Aries/Storage/Records/Search/SearchQuery.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Records/Search/SearchQuery.cs
rename to legacy/src/Hyperledger.Aries/Storage/Records/Search/SearchQuery.cs
diff --git a/src/Hyperledger.Aries/Storage/Records/Search/SearchResult.cs b/legacy/src/Hyperledger.Aries/Storage/Records/Search/SearchResult.cs
similarity index 100%
rename from src/Hyperledger.Aries/Storage/Records/Search/SearchResult.cs
rename to legacy/src/Hyperledger.Aries/Storage/Records/Search/SearchResult.cs
diff --git a/src/Hyperledger.Aries/Utils/Base64UrlEncoder.cs b/legacy/src/Hyperledger.Aries/Utils/Base64UrlEncoder.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/Base64UrlEncoder.cs
rename to legacy/src/Hyperledger.Aries/Utils/Base64UrlEncoder.cs
diff --git a/src/Hyperledger.Aries/Utils/CredentialUtils.cs b/legacy/src/Hyperledger.Aries/Utils/CredentialUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/CredentialUtils.cs
rename to legacy/src/Hyperledger.Aries/Utils/CredentialUtils.cs
diff --git a/src/Hyperledger.Aries/Utils/CryptoUtils.cs b/legacy/src/Hyperledger.Aries/Utils/CryptoUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/CryptoUtils.cs
rename to legacy/src/Hyperledger.Aries/Utils/CryptoUtils.cs
diff --git a/src/Hyperledger.Aries/Utils/DidUtils.cs b/legacy/src/Hyperledger.Aries/Utils/DidUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/DidUtils.cs
rename to legacy/src/Hyperledger.Aries/Utils/DidUtils.cs
diff --git a/src/Hyperledger.Aries/Utils/EnvironmentUtils.cs b/legacy/src/Hyperledger.Aries/Utils/EnvironmentUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/EnvironmentUtils.cs
rename to legacy/src/Hyperledger.Aries/Utils/EnvironmentUtils.cs
diff --git a/src/Hyperledger.Aries/Utils/MessageUtils.cs b/legacy/src/Hyperledger.Aries/Utils/MessageUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/MessageUtils.cs
rename to legacy/src/Hyperledger.Aries/Utils/MessageUtils.cs
diff --git a/src/Hyperledger.Aries/Utils/ResilienceUtils.cs b/legacy/src/Hyperledger.Aries/Utils/ResilienceUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/ResilienceUtils.cs
rename to legacy/src/Hyperledger.Aries/Utils/ResilienceUtils.cs
diff --git a/src/Hyperledger.Aries/Utils/TagConstants.cs b/legacy/src/Hyperledger.Aries/Utils/TagConstants.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/TagConstants.cs
rename to legacy/src/Hyperledger.Aries/Utils/TagConstants.cs
diff --git a/src/Hyperledger.Aries/Utils/UriUtils.cs b/legacy/src/Hyperledger.Aries/Utils/UriUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries/Utils/UriUtils.cs
rename to legacy/src/Hyperledger.Aries/Utils/UriUtils.cs
diff --git a/src/Hyperledger.Aries.TestHarness/AgentScenarios.cs b/legacy/test/Hyperledger.Aries.TestHarness/AgentScenarios.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/AgentScenarios.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/AgentScenarios.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Hyperledger.Aries.TestHarness.csproj b/legacy/test/Hyperledger.Aries.TestHarness/Hyperledger.Aries.TestHarness.csproj
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Hyperledger.Aries.TestHarness.csproj
rename to legacy/test/Hyperledger.Aries.TestHarness/Hyperledger.Aries.TestHarness.csproj
diff --git a/src/Hyperledger.Aries.TestHarness/Mock/InProcAgent.cs b/legacy/test/Hyperledger.Aries.TestHarness/Mock/InProcAgent.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Mock/InProcAgent.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Mock/InProcAgent.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Mock/InProcMessageHandler.cs b/legacy/test/Hyperledger.Aries.TestHarness/Mock/InProcMessageHandler.cs
similarity index 97%
rename from src/Hyperledger.Aries.TestHarness/Mock/InProcMessageHandler.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Mock/InProcMessageHandler.cs
index 5630761a..1d46fe19 100644
--- a/src/Hyperledger.Aries.TestHarness/Mock/InProcMessageHandler.cs
+++ b/legacy/test/Hyperledger.Aries.TestHarness/Mock/InProcMessageHandler.cs
@@ -1,62 +1,62 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Net.Http.Headers;
-using System.Security.Claims;
-using System.Threading;
-using System.Threading.Tasks;
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Extensions;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Options;
-
-namespace Hyperledger.TestHarness.Mock
-{
- public class InProcMessageHandler : HttpMessageHandler
- {
- public InProcAgent TargetAgent { get; set; }
-
- ///
- protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
- {
- if (TargetAgent is InProcMediatorAgent mediatorAgent && request.Method == HttpMethod.Get)
- {
- var discoveryConfiguration = await mediatorAgent.HandleDiscoveryAsync();
-
- var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);
- responseMessage.Content = new StringContent(discoveryConfiguration.ToJson());
- responseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
- return responseMessage;
- }
- else if (request.RequestUri.AbsolutePath.Contains("/tails"))
- {
- var options = TargetAgent.Provider.GetRequiredService>();
- var file = request.RequestUri.Segments.Last();
-
- var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);
- responseMessage.Content = new ByteArrayContent(File.ReadAllBytes(Path.Combine(options.Value.RevocationRegistryDirectory, file)));
-
- return responseMessage;
- }
- else
- {
- var response = await TargetAgent.HandleAsync(await request.Content?.ReadAsByteArrayAsync());
- var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);
-
- if (response != null)
- {
- responseMessage.Content = new ByteArrayContent(response.Payload);
- responseMessage.Content.Headers.ContentType = request.Content?.Headers.ContentType;
- }
-
- return responseMessage;
- }
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Security.Claims;
+using System.Threading;
+using System.Threading.Tasks;
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Extensions;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Http.Features;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Options;
+
+namespace Hyperledger.TestHarness.Mock
+{
+ public class InProcMessageHandler : HttpMessageHandler
+ {
+ public InProcAgent TargetAgent { get; set; }
+
+ ///
+ protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
+ {
+ if (TargetAgent is InProcMediatorAgent mediatorAgent && request.Method == HttpMethod.Get)
+ {
+ var discoveryConfiguration = await mediatorAgent.HandleDiscoveryAsync();
+
+ var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);
+ responseMessage.Content = new StringContent(discoveryConfiguration.ToJson());
+ responseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+ return responseMessage;
+ }
+ else if (request.RequestUri.AbsolutePath.Contains("/tails"))
+ {
+ var options = TargetAgent.Provider.GetRequiredService>();
+ var file = request.RequestUri.Segments.Last();
+
+ var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);
+ responseMessage.Content = new ByteArrayContent(File.ReadAllBytes(Path.Combine(options.Value.RevocationRegistryDirectory, file)));
+
+ return responseMessage;
+ }
+ else
+ {
+ var response = await TargetAgent.HandleAsync(await request.Content?.ReadAsByteArrayAsync());
+ var responseMessage = new HttpResponseMessage(HttpStatusCode.OK);
+
+ if (response != null)
+ {
+ responseMessage.Content = new ByteArrayContent(response.Payload);
+ responseMessage.Content.Headers.ContentType = request.Content?.Headers.ContentType;
+ }
+
+ return responseMessage;
+ }
+ }
+ }
+}
diff --git a/src/Hyperledger.Aries.TestHarness/Mock/MockAgent.cs b/legacy/test/Hyperledger.Aries.TestHarness/Mock/MockAgent.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Mock/MockAgent.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Mock/MockAgent.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Mock/MockAgentHttpHandler.cs b/legacy/test/Hyperledger.Aries.TestHarness/Mock/MockAgentHttpHandler.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Mock/MockAgentHttpHandler.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Mock/MockAgentHttpHandler.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Mock/MockAgentMessageProcessor.cs b/legacy/test/Hyperledger.Aries.TestHarness/Mock/MockAgentMessageProcessor.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Mock/MockAgentMessageProcessor.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Mock/MockAgentMessageProcessor.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Mock/MockAgentRouter.cs b/legacy/test/Hyperledger.Aries.TestHarness/Mock/MockAgentRouter.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Mock/MockAgentRouter.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Mock/MockAgentRouter.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Mock/MockUtils.cs b/legacy/test/Hyperledger.Aries.TestHarness/Mock/MockUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Mock/MockUtils.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Mock/MockUtils.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Scenarios.cs b/legacy/test/Hyperledger.Aries.TestHarness/Scenarios.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Scenarios.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Scenarios.cs
diff --git a/src/Hyperledger.Aries.TestHarness/TestConstants.cs b/legacy/test/Hyperledger.Aries.TestHarness/TestConstants.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/TestConstants.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/TestConstants.cs
diff --git a/src/Hyperledger.Aries.TestHarness/TestSingleWallet.cs b/legacy/test/Hyperledger.Aries.TestHarness/TestSingleWallet.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/TestSingleWallet.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/TestSingleWallet.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Utils/AgentUtils.cs b/legacy/test/Hyperledger.Aries.TestHarness/Utils/AgentUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Utils/AgentUtils.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Utils/AgentUtils.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Utils/PoolUtils.cs b/legacy/test/Hyperledger.Aries.TestHarness/Utils/PoolUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Utils/PoolUtils.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Utils/PoolUtils.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Utils/ProofServiceUtils.cs b/legacy/test/Hyperledger.Aries.TestHarness/Utils/ProofServiceUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Utils/ProofServiceUtils.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Utils/ProofServiceUtils.cs
diff --git a/src/Hyperledger.Aries.TestHarness/Utils/ServiceUtils.cs b/legacy/test/Hyperledger.Aries.TestHarness/Utils/ServiceUtils.cs
similarity index 100%
rename from src/Hyperledger.Aries.TestHarness/Utils/ServiceUtils.cs
rename to legacy/test/Hyperledger.Aries.TestHarness/Utils/ServiceUtils.cs
diff --git a/test/Hyperledger.Aries.Tests/ConfigurationTests.cs b/legacy/test/Hyperledger.Aries.Tests/ConfigurationTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/ConfigurationTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/ConfigurationTests.cs
diff --git a/test/Hyperledger.Aries.Tests/ConnectionRecordVersioningTests.cs b/legacy/test/Hyperledger.Aries.Tests/ConnectionRecordVersioningTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/ConnectionRecordVersioningTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/ConnectionRecordVersioningTests.cs
diff --git a/test/Hyperledger.Aries.Tests/ConverterTests.cs b/legacy/test/Hyperledger.Aries.Tests/ConverterTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/ConverterTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/ConverterTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Decorators/AttachmentContentTests.cs b/legacy/test/Hyperledger.Aries.Tests/Decorators/AttachmentContentTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Decorators/AttachmentContentTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Decorators/AttachmentContentTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Decorators/AttachmentDecoratorTests.cs b/legacy/test/Hyperledger.Aries.Tests/Decorators/AttachmentDecoratorTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Decorators/AttachmentDecoratorTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Decorators/AttachmentDecoratorTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Decorators/SignatorDecoratorTests.cs b/legacy/test/Hyperledger.Aries.Tests/Decorators/SignatorDecoratorTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Decorators/SignatorDecoratorTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Decorators/SignatorDecoratorTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Decorators/ThreadingDecoratorTests.cs b/legacy/test/Hyperledger.Aries.Tests/Decorators/ThreadingDecoratorTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Decorators/ThreadingDecoratorTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Decorators/ThreadingDecoratorTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Decorators/TransportDecoratorTests.cs b/legacy/test/Hyperledger.Aries.Tests/Decorators/TransportDecoratorTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Decorators/TransportDecoratorTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Decorators/TransportDecoratorTests.cs
diff --git a/test/Hyperledger.Aries.Tests/DidCommServiceTests.cs b/legacy/test/Hyperledger.Aries.Tests/DidCommServiceTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/DidCommServiceTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/DidCommServiceTests.cs
diff --git a/test/Hyperledger.Aries.Tests/DidDocTests.cs b/legacy/test/Hyperledger.Aries.Tests/DidDocTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/DidDocTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/DidDocTests.cs
diff --git a/test/Hyperledger.Aries.Tests/DidUtilsTests.cs b/legacy/test/Hyperledger.Aries.Tests/DidUtilsTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/DidUtilsTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/DidUtilsTests.cs
diff --git a/test/Hyperledger.Aries.Tests/EventAggregatorTests.cs b/legacy/test/Hyperledger.Aries.Tests/EventAggregatorTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/EventAggregatorTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/EventAggregatorTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Extensions/ObjectExtensions.cs b/legacy/test/Hyperledger.Aries.Tests/Extensions/ObjectExtensions.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Extensions/ObjectExtensions.cs
rename to legacy/test/Hyperledger.Aries.Tests/Extensions/ObjectExtensions.cs
diff --git a/test/Hyperledger.Aries.Tests/GlobalSuppressions.cs b/legacy/test/Hyperledger.Aries.Tests/GlobalSuppressions.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/GlobalSuppressions.cs
rename to legacy/test/Hyperledger.Aries.Tests/GlobalSuppressions.cs
diff --git a/test/Hyperledger.Aries.Tests/Hyperledger.Aries.Tests.csproj b/legacy/test/Hyperledger.Aries.Tests/Hyperledger.Aries.Tests.csproj
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Hyperledger.Aries.Tests.csproj
rename to legacy/test/Hyperledger.Aries.Tests/Hyperledger.Aries.Tests.csproj
diff --git a/test/Hyperledger.Aries.Tests/InProcAgentTests.cs b/legacy/test/Hyperledger.Aries.Tests/InProcAgentTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/InProcAgentTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/InProcAgentTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Integration/ConnectionTests.cs b/legacy/test/Hyperledger.Aries.Tests/Integration/ConnectionTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Integration/ConnectionTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Integration/ConnectionTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Integration/CredentialTests.cs b/legacy/test/Hyperledger.Aries.Tests/Integration/CredentialTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Integration/CredentialTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Integration/CredentialTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Integration/DidExchangeTests.cs b/legacy/test/Hyperledger.Aries.Tests/Integration/DidExchangeTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Integration/DidExchangeTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Integration/DidExchangeTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Integration/DiscoveryTests.cs b/legacy/test/Hyperledger.Aries.Tests/Integration/DiscoveryTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Integration/DiscoveryTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Integration/DiscoveryTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Integration/MessageTypesTests.cs b/legacy/test/Hyperledger.Aries.Tests/Integration/MessageTypesTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Integration/MessageTypesTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Integration/MessageTypesTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Integration/OutOfBandTests.cs b/legacy/test/Hyperledger.Aries.Tests/Integration/OutOfBandTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Integration/OutOfBandTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Integration/OutOfBandTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Integration/ProofTests.cs b/legacy/test/Hyperledger.Aries.Tests/Integration/ProofTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Integration/ProofTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Integration/ProofTests.cs
diff --git a/test/Hyperledger.Aries.Tests/LedgerServiceTests.cs b/legacy/test/Hyperledger.Aries.Tests/LedgerServiceTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/LedgerServiceTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/LedgerServiceTests.cs
diff --git a/test/Hyperledger.Aries.Tests/MessageServiceTests.cs b/legacy/test/Hyperledger.Aries.Tests/MessageServiceTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/MessageServiceTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/MessageServiceTests.cs
diff --git a/test/Hyperledger.Aries.Tests/MessageUtilsTests.cs b/legacy/test/Hyperledger.Aries.Tests/MessageUtilsTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/MessageUtilsTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/MessageUtilsTests.cs
diff --git a/test/Hyperledger.Aries.Tests/MockExtendedConnectionService.cs b/legacy/test/Hyperledger.Aries.Tests/MockExtendedConnectionService.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/MockExtendedConnectionService.cs
rename to legacy/test/Hyperledger.Aries.Tests/MockExtendedConnectionService.cs
diff --git a/test/Hyperledger.Aries.Tests/MockMessageHandler.cs b/legacy/test/Hyperledger.Aries.Tests/MockMessageHandler.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/MockMessageHandler.cs
rename to legacy/test/Hyperledger.Aries.Tests/MockMessageHandler.cs
diff --git a/test/Hyperledger.Aries.Tests/Payments/PaymentTests.cs b/legacy/test/Hyperledger.Aries.Tests/Payments/PaymentTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Payments/PaymentTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Payments/PaymentTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Payments/ProtocolTests.cs b/legacy/test/Hyperledger.Aries.Tests/Payments/ProtocolTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Payments/ProtocolTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Payments/ProtocolTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Payments/TransferTests.cs b/legacy/test/Hyperledger.Aries.Tests/Payments/TransferTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Payments/TransferTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Payments/TransferTests.cs
diff --git a/test/Hyperledger.Aries.Tests/PoolServiceTests.cs b/legacy/test/Hyperledger.Aries.Tests/PoolServiceTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/PoolServiceTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/PoolServiceTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/ConnectionTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/ConnectionTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/ConnectionTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/ConnectionTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/CredentialTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialTests.cs
similarity index 97%
rename from test/Hyperledger.Aries.Tests/Protocols/CredentialTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialTests.cs
index 078600bb..9baed2a1 100644
--- a/test/Hyperledger.Aries.Tests/Protocols/CredentialTests.cs
+++ b/legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialTests.cs
@@ -1,504 +1,504 @@
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net.Http;
-using System.Reactive.Linq;
-using System.Threading.Tasks;
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Contracts;
-using Hyperledger.Aries.Extensions;
-using Hyperledger.Aries.Features.Handshakes.Connection;
-using Hyperledger.Aries.Features.Handshakes.Connection.Models;
-using Hyperledger.Aries.Features.IssueCredential;
-using Hyperledger.Aries.Ledger;
-using Hyperledger.Aries.Models.Events;
-using Hyperledger.Aries.Payments;
-using Hyperledger.Aries.Runtime;
-using Hyperledger.Aries.Storage;
-using Hyperledger.Aries.TestHarness;
-using Hyperledger.Indy.AnonCredsApi;
-using Hyperledger.Indy.DidApi;
-using Hyperledger.Indy.PoolApi;
-using Hyperledger.Indy.WalletApi;
-using Hyperledger.TestHarness;
-using Hyperledger.TestHarness.Utils;
-using Microsoft.Extensions.Logging;
-using Microsoft.Extensions.Options;
-using Moq;
-using Xunit;
-
-namespace Hyperledger.Aries.Tests.Protocols
-{
- public class CredentialTests : IAsyncLifetime
- {
- static CredentialTests()
- {
- global::Hyperledger.Aries.Utils.Runtime.SetFlags(Hyperledger.Aries.Utils.Runtime.LedgerLookupRetryFlag);
- }
-
- private readonly string _issuerConfig = $"{{\"id\":\"{Guid.NewGuid()}\"}}";
- private readonly string _holderConfig = $"{{\"id\":\"{Guid.NewGuid()}\"}}";
- private const string Credentials = "{\"key\":\"test_wallet_key\"}";
-
- private IAgentContext _issuerWallet;
- private IAgentContext _holderWallet;
-
- private readonly IEventAggregator _eventAggregator;
- private readonly IConnectionService _connectionService;
- private readonly ICredentialService _credentialService;
- private readonly ISchemaService _schemaService;
-
- private readonly ConcurrentBag _messages = new ConcurrentBag();
-
- public CredentialTests()
- {
- var recordService = new DefaultWalletRecordService();
- var ledgerService = new DefaultLedgerService(new DefaultLedgerSigningService(new DefaultProvisioningService(recordService, new DefaultWalletService(), Options.Create(new AgentOptions()))));
-
- var messageService = new DefaultMessageService(new Mock>().Object, new IMessageDispatcher[] { });
-
- _eventAggregator = new EventAggregator();
-
- var provisioning = ServiceUtils.GetDefaultMockProvisioningService();
- var paymentService = new DefaultPaymentService();
-
- var clientFactory = new Mock();
- clientFactory.Setup(x => x.CreateClient(It.IsAny()))
- .Returns(new HttpClient());
-
- var tailsService = new DefaultTailsService(ledgerService, Options.Create(new Configuration.AgentOptions()), clientFactory.Object);
- _schemaService = new DefaultSchemaService(provisioning, recordService, ledgerService, paymentService, tailsService, Options.Create(new Configuration.AgentOptions()));
-
- _connectionService = new DefaultConnectionService(
- _eventAggregator,
- recordService,
- provisioning,
- new Mock>().Object);
-
- _credentialService = new DefaultCredentialService(
- _eventAggregator,
- ledgerService,
- _connectionService,
- recordService,
- _schemaService,
- tailsService,
- provisioning,
- paymentService,
- messageService,
- new Mock>().Object);
- }
-
- public async Task InitializeAsync()
- {
- _issuerWallet = await AgentUtils.Create(_issuerConfig, Credentials, true);
- _holderWallet = await AgentUtils.Create(_holderConfig, Credentials, true);
- }
-
- ///
- /// This test requires a local running node accessible at 127.0.0.1
- ///
- /// The issuance demo.
- [Fact]
- public async Task CanIssueCredential()
- {
- var events = 0;
- _eventAggregator.GetEventByType()
- .Where(_ => (_.MessageType == MessageTypes.IssueCredentialNames.OfferCredential ||
- _.MessageType == MessageTypes.IssueCredentialNames.RequestCredential ||
- _.MessageType == MessageTypes.IssueCredentialNames.IssueCredential))
- .Subscribe(_ =>
- {
- events++;
- });
-
- // Setup secure connection between issuer and holder
- var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
- _connectionService, _messages, _issuerWallet, _holderWallet);
-
- var (issuerCredential, holderCredential) = await Scenarios.IssueCredentialAsync(
- _schemaService, _credentialService, _messages, issuerConnection,
- holderConnection, _issuerWallet, _holderWallet, await _holderWallet.Pool as Pool, TestConstants.DefaultMasterSecret, false, new List
- {
- new CredentialPreviewAttribute("first_name", "Test"),
- new CredentialPreviewAttribute("last_name", "Holder")
- });
-
- Assert.True(events == 3);
-
- Assert.Equal(issuerCredential.State, holderCredential.State);
- Assert.Equal(CredentialState.Issued, issuerCredential.State);
- }
-
- [Fact]
- public async Task CanStoreAndReceiveMimeTypes()
- {
- const string pdfFile = "base64_encoded_pdf_file";
- const string pngFile = "base64_encoded_png_image_file";
- const string unknownFile = "base64_encoded_unknown_file";
-
- var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
- _connectionService, _messages, _issuerWallet, _holderWallet);
-
- var (_, holderCredential) = await Scenarios.IssueCredentialAsync(
- _schemaService, _credentialService, _messages, issuerConnection,
- holderConnection, _issuerWallet, _holderWallet, await _holderWallet.Pool as Pool, TestConstants.DefaultMasterSecret, false, new List
- {
- new CredentialPreviewAttribute
- {
- MimeType = CredentialMimeTypes.TextMimeType,
- Name = "attribute_name",
- Value = "attribute_value"
- },
- new CredentialPreviewAttribute
- {
- MimeType = CredentialMimeTypes.ImagePngMimeType,
- Name = pngFile,
- Value = pdfFile
- },
- new CredentialPreviewAttribute
- {
- MimeType = CredentialMimeTypes.ApplicationPdfMimeType,
- Name = pdfFile,
- Value = pdfFile
- },
- new CredentialPreviewAttribute
- {
- Name = unknownFile,
- Value = unknownFile
- }
- });
-
- var attributesWithMimeTypeTextCount = 0;
- var attributesWithMimeTypeImagePngCount = 0;
- var attributesWithMimeTypeApplicationPdfCount = 0;
-
- foreach (var credentialPreviewAttribute in holderCredential.CredentialAttributesValues)
- {
- switch (credentialPreviewAttribute.MimeType)
- {
- case CredentialMimeTypes.TextMimeType:
- attributesWithMimeTypeTextCount++;
- break;
- case CredentialMimeTypes.ImagePngMimeType:
- attributesWithMimeTypeImagePngCount++;
- break;
- case CredentialMimeTypes.ApplicationPdfMimeType:
- attributesWithMimeTypeApplicationPdfCount++;
- break;
- }
- }
-
- Assert.Equal(2, attributesWithMimeTypeTextCount);
- Assert.Equal(1, attributesWithMimeTypeImagePngCount);
- Assert.Equal(1, attributesWithMimeTypeApplicationPdfCount);
- }
-
- [Fact]
- public async Task CanCreateCredentialOffer()
- {
- var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
- new { seed = TestConstants.StewardSeed }.ToJson());
-
- var result = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
- new[] { "test-attr" });
-
- var (msg, credentialRecord) = await _credentialService.CreateOfferAsync(_issuerWallet,
- new OfferConfiguration { CredentialDefinitionId = result.Item1 }, null);
-
- Assert.Equal(CredentialState.Offered, credentialRecord.State);
- Assert.NotNull(msg);
- Assert.Null(msg.CredentialPreview);
- }
-
- [Fact]
- public async Task CanCreateCredentialOfferWithPreview()
- {
- var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
- new { seed = TestConstants.StewardSeed }.ToJson());
-
- var result = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
- new[] { "test-attr" });
-
- var (msg, credentialRecord) = await _credentialService.CreateOfferAsync(_issuerWallet,
- new OfferConfiguration
- {
- CredentialDefinitionId = result.Item1,
- CredentialAttributeValues = new List
- {
- new CredentialPreviewAttribute("test-attr","test-attr-value")
- }
- });
-
- Assert.Equal(CredentialState.Offered, credentialRecord.State);
- Assert.NotNull(msg);
- Assert.NotNull(msg.CredentialPreview);
- Assert.True(msg.CredentialPreview.Attributes.Count() == 1);
-
- var previewAttr = msg.CredentialPreview.Attributes.ToArray()[0];
-
- Assert.True(previewAttr.Name == "test-attr");
- Assert.True(previewAttr.MimeType == CredentialMimeTypes.TextMimeType);
- Assert.True((string)previewAttr.Value == "test-attr-value");
- }
-
- [Fact]
- public async Task RevokeCredentialOfferThrowsCredentialNotFound()
- {
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectOfferAsync(_issuerWallet, "bad-connection-id"));
- Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
- }
-
- [Fact]
- public async Task RevokeCredentialOfferThrowsCredentialInvalidState()
- {
- //Establish a connection between the two parties
- var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
- _connectionService, _messages, _issuerWallet, _holderWallet);
-
- // Create an issuer DID/VK. Can also be created during provisioning
- var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
- new { seed = TestConstants.StewardSeed }.ToJson());
-
- // Create a schema and credential definition for this issuer
- var (definitionId, _) = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
- new[] { "dummy_attr" });
-
- var offerConfig = new OfferConfiguration
- {
- IssuerDid = issuer.Did,
- CredentialDefinitionId = definitionId
- };
-
- // Send an offer to the holder using the established connection channel
- var (offer, _) = await _credentialService.CreateOfferAsync(_issuerWallet, offerConfig, issuerConnection.Id);
- _messages.Add(offer);
-
- // Holder retrieves message from their cloud agent
- var credentialOffer = FindContentMessage(_messages);
-
- // Holder processes the credential offer by storing it
- var holderCredentialId =
- await _credentialService.ProcessOfferAsync(_holderWallet, credentialOffer, holderConnection);
-
- // Holder creates master secret. Will also be created during wallet agent provisioning
- await AnonCreds.ProverCreateMasterSecretAsync(_holderWallet.Wallet, TestConstants.DefaultMasterSecret);
-
- // Holder accepts the credential offer and sends a credential request
- var (request, _) = await _credentialService.CreateRequestAsync(_holderWallet, holderCredentialId);
- _messages.Add(request);
-
- // Issuer retrieves credential request from cloud agent
- var credentialRequest = FindContentMessage(_messages);
- Assert.NotNull(credentialRequest);
-
- // Issuer processes the credential request by storing it
- var issuerCredentialId =
- await _credentialService.ProcessCredentialRequestAsync(_issuerWallet, credentialRequest, issuerConnection);
-
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectOfferAsync(_issuerWallet, issuerCredentialId));
- Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
- }
-
- [Fact]
- public async Task CreateOfferV1AsyncThrowsExceptionConnectionNotFound()
- {
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateOfferAsync(_issuerWallet, new OfferConfiguration(), "bad-connection-id"));
- Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
- }
-
- [Fact]
- public async Task CreateOfferV1AsyncThrowsExceptionConnectionInvalidState()
- {
- var connectionId = Guid.NewGuid().ToString();
-
- await _connectionService.CreateInvitationAsync(_issuerWallet,
- new InviteConfiguration { ConnectionId = connectionId, AutoAcceptConnection = false });
-
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateOfferAsync(_issuerWallet, new OfferConfiguration(), connectionId));
- Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
- }
-
- [Fact]
- public async Task SendOfferAsyncThrowsExceptionConnectionNotFound()
- {
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateOfferAsync(_issuerWallet, new OfferConfiguration(), "bad-connection-id"));
- Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
- }
-
- [Fact]
- public async Task SendOfferAsyncThrowsExceptionConnectionInvalidState()
- {
- var connectionId = Guid.NewGuid().ToString();
-
- await _connectionService.CreateInvitationAsync(_issuerWallet,
- new InviteConfiguration { ConnectionId = connectionId, AutoAcceptConnection = false });
-
- var ex = await Assert.ThrowsAsync(async () =>
- await _credentialService.CreateOfferAsync(_issuerWallet, new OfferConfiguration(), connectionId));
- Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
- }
-
- [Fact]
- public async Task ProcessCredentialRequestThrowsCredentialNotFound()
- {
- var (issuerConnection, _) = await Scenarios.EstablishConnectionAsync(
- _connectionService, _messages, _issuerWallet, _holderWallet);
-
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.ProcessCredentialRequestAsync(_issuerWallet,
- new CredentialRequestMessage(), issuerConnection));
-
- Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
- }
-
- [Fact]
- public async Task RejectCredentialRequestThrowsExceptionCredentialNotFound()
- {
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectCredentialRequestAsync(_holderWallet, "bad-credential-id"));
- Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
- }
-
- [Fact]
- public async Task RejectCredentialRequestThrowsExceptionCredentialInvalidState()
- {
- //Establish a connection between the two parties
- var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
- _connectionService, _messages, _issuerWallet, _holderWallet);
-
- // Create an issuer DID/VK. Can also be created during provisioning
- var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
- new { seed = TestConstants.StewardSeed }.ToJson());
-
- // Create a schema and credential definition for this issuer
- var (definitionId, _) = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
- new[] { "dummy_attr" });
-
- var offerConfig = new OfferConfiguration
- {
- IssuerDid = issuer.Did,
- CredentialDefinitionId = definitionId
- };
-
- // Send an offer to the holder using the established connection channel
- var (offerMessage, _) = await _credentialService.CreateOfferAsync(_issuerWallet, offerConfig, issuerConnection.Id);
- _messages.Add(offerMessage);
-
- // Holder retrieves message from their cloud agent
- var credentialOffer = FindContentMessage(_messages);
-
- // Holder processes the credential offer by storing it
- var holderCredentialId =
- await _credentialService.ProcessOfferAsync(_holderWallet, credentialOffer, holderConnection);
-
- // Holder creates master secret. Will also be created during wallet agent provisioning
- await AnonCreds.ProverCreateMasterSecretAsync(_holderWallet.Wallet, TestConstants.DefaultMasterSecret);
-
- // Holder accepts the credential offer and sends a credential request
- (var request, var _) = await _credentialService.CreateRequestAsync(_holderWallet, holderCredentialId);
- _messages.Add(request);
-
- // Issuer retrieves credential request from cloud agent
- var credentialRequest = FindContentMessage(_messages);
- Assert.NotNull(credentialRequest);
-
- // Issuer processes the credential request by storing it
- var issuerCredentialId =
- await _credentialService.ProcessCredentialRequestAsync(_issuerWallet, credentialRequest, issuerConnection);
-
- await _credentialService.RejectCredentialRequestAsync(_issuerWallet, issuerCredentialId);
-
- //Try reject the credential request again
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectCredentialRequestAsync(_issuerWallet, issuerCredentialId));
- Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
- }
-
- [Fact]
- public async Task IssueCredentialThrowsExceptionCredentialNotFound()
- {
- // Create an issuer DID/VK. Can also be created during provisioning
- var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
- new { seed = TestConstants.StewardSeed }.ToJson());
-
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateCredentialAsync(_issuerWallet, "bad-credential-id"));
- Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
- }
-
- [Fact]
- public async Task IssueCredentialThrowsExceptionCredentialInvalidState()
- {
- //Establish a connection between the two parties
- var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
- _connectionService, _messages, _issuerWallet, _holderWallet);
-
- // Create an issuer DID/VK. Can also be created during provisioning
- var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
- new { seed = TestConstants.StewardSeed }.ToJson());
-
- // Create a schema and credential definition for this issuer
- var (definitionId, _) = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
- new[] { "dummy_attr" });
-
- var offerConfig = new OfferConfiguration
- {
- IssuerDid = issuer.Did,
- CredentialDefinitionId = definitionId
- };
-
- // Send an offer to the holder using the established connection channel
- var (message, _) = await _credentialService.CreateOfferAsync(_issuerWallet, offerConfig, issuerConnection.Id);
- _messages.Add(message);
-
- // Holder retrieves message from their cloud agent
- var credentialOffer = FindContentMessage(_messages);
-
- // Holder processes the credential offer by storing it
- var holderCredentialId =
- await _credentialService.ProcessOfferAsync(_holderWallet, credentialOffer, holderConnection);
-
- // Holder creates master secret. Will also be created during wallet agent provisioning
- await AnonCreds.ProverCreateMasterSecretAsync(_holderWallet.Wallet, TestConstants.DefaultMasterSecret);
-
- // Holder accepts the credential offer and sends a credential request
- var (request, _) = await _credentialService.CreateRequestAsync(_holderWallet, holderCredentialId);
- _messages.Add(request);
-
- // Issuer retrieves credential request from cloud agent
- var credentialRequest = FindContentMessage(_messages);
- Assert.NotNull(credentialRequest);
-
- // Issuer processes the credential request by storing it
- var issuerCredentialId =
- await _credentialService.ProcessCredentialRequestAsync(_issuerWallet, credentialRequest, issuerConnection);
-
- // Issuer accepts the credential requests and issues a credential
- var (credential, _) = await _credentialService.CreateCredentialAsync(_issuerWallet, issuerCredentialId,
- new List { new CredentialPreviewAttribute("dummy_attr", "dummyVal") });
- _messages.Add(credential);
-
- //Try issue the credential again
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateCredentialAsync(_issuerWallet, issuerCredentialId));
- Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
- }
-
- [Fact]
- public async Task RejectOfferAsyncThrowsExceptionCredentialOfferNotFound()
- {
- var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectOfferAsync(_issuerWallet, "bad-credential-id"));
- Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
- }
-
- private static T FindContentMessage(IEnumerable collection)
- where T : AgentMessage
- => collection.OfType().Single();
-
- public async Task DisposeAsync()
- {
- if (_issuerWallet != null) await _issuerWallet.Wallet.CloseAsync();
- if (_holderWallet != null) await _holderWallet.Wallet.CloseAsync();
-
- await Wallet.DeleteWalletAsync(_issuerConfig, Credentials);
- await Wallet.DeleteWalletAsync(_holderConfig, Credentials);
- }
- }
-}
+using System;
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Reactive.Linq;
+using System.Threading.Tasks;
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Contracts;
+using Hyperledger.Aries.Extensions;
+using Hyperledger.Aries.Features.Handshakes.Connection;
+using Hyperledger.Aries.Features.Handshakes.Connection.Models;
+using Hyperledger.Aries.Features.IssueCredential;
+using Hyperledger.Aries.Ledger;
+using Hyperledger.Aries.Models.Events;
+using Hyperledger.Aries.Payments;
+using Hyperledger.Aries.Runtime;
+using Hyperledger.Aries.Storage;
+using Hyperledger.Aries.TestHarness;
+using Hyperledger.Indy.AnonCredsApi;
+using Hyperledger.Indy.DidApi;
+using Hyperledger.Indy.PoolApi;
+using Hyperledger.Indy.WalletApi;
+using Hyperledger.TestHarness;
+using Hyperledger.TestHarness.Utils;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using Moq;
+using Xunit;
+
+namespace Hyperledger.Aries.Tests.Protocols
+{
+ public class CredentialTests : IAsyncLifetime
+ {
+ static CredentialTests()
+ {
+ global::Hyperledger.Aries.Utils.Runtime.SetFlags(Hyperledger.Aries.Utils.Runtime.LedgerLookupRetryFlag);
+ }
+
+ private readonly string _issuerConfig = $"{{\"id\":\"{Guid.NewGuid()}\"}}";
+ private readonly string _holderConfig = $"{{\"id\":\"{Guid.NewGuid()}\"}}";
+ private const string Credentials = "{\"key\":\"test_wallet_key\"}";
+
+ private IAgentContext _issuerWallet;
+ private IAgentContext _holderWallet;
+
+ private readonly IEventAggregator _eventAggregator;
+ private readonly IConnectionService _connectionService;
+ private readonly ICredentialService _credentialService;
+ private readonly ISchemaService _schemaService;
+
+ private readonly ConcurrentBag _messages = new ConcurrentBag();
+
+ public CredentialTests()
+ {
+ var recordService = new DefaultWalletRecordService();
+ var ledgerService = new DefaultLedgerService(new DefaultLedgerSigningService(new DefaultProvisioningService(recordService, new DefaultWalletService(), Options.Create(new AgentOptions()))));
+
+ var messageService = new DefaultMessageService(new Mock>().Object, new IMessageDispatcher[] { });
+
+ _eventAggregator = new EventAggregator();
+
+ var provisioning = ServiceUtils.GetDefaultMockProvisioningService();
+ var paymentService = new DefaultPaymentService();
+
+ var clientFactory = new Mock();
+ clientFactory.Setup(x => x.CreateClient(It.IsAny()))
+ .Returns(new HttpClient());
+
+ var tailsService = new DefaultTailsService(ledgerService, Options.Create(new Configuration.AgentOptions()), clientFactory.Object);
+ _schemaService = new DefaultSchemaService(provisioning, recordService, ledgerService, paymentService, tailsService, Options.Create(new Configuration.AgentOptions()));
+
+ _connectionService = new DefaultConnectionService(
+ _eventAggregator,
+ recordService,
+ provisioning,
+ new Mock>().Object);
+
+ _credentialService = new DefaultCredentialService(
+ _eventAggregator,
+ ledgerService,
+ _connectionService,
+ recordService,
+ _schemaService,
+ tailsService,
+ provisioning,
+ paymentService,
+ messageService,
+ new Mock>().Object);
+ }
+
+ public async Task InitializeAsync()
+ {
+ _issuerWallet = await AgentUtils.Create(_issuerConfig, Credentials, true);
+ _holderWallet = await AgentUtils.Create(_holderConfig, Credentials, true);
+ }
+
+ ///
+ /// This test requires a local running node accessible at 127.0.0.1
+ ///
+ /// The issuance demo.
+ [Fact]
+ public async Task CanIssueCredential()
+ {
+ var events = 0;
+ _eventAggregator.GetEventByType()
+ .Where(_ => (_.MessageType == MessageTypes.IssueCredentialNames.OfferCredential ||
+ _.MessageType == MessageTypes.IssueCredentialNames.RequestCredential ||
+ _.MessageType == MessageTypes.IssueCredentialNames.IssueCredential))
+ .Subscribe(_ =>
+ {
+ events++;
+ });
+
+ // Setup secure connection between issuer and holder
+ var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
+ _connectionService, _messages, _issuerWallet, _holderWallet);
+
+ var (issuerCredential, holderCredential) = await Scenarios.IssueCredentialAsync(
+ _schemaService, _credentialService, _messages, issuerConnection,
+ holderConnection, _issuerWallet, _holderWallet, await _holderWallet.Pool as Pool, TestConstants.DefaultMasterSecret, false, new List
+ {
+ new CredentialPreviewAttribute("first_name", "Test"),
+ new CredentialPreviewAttribute("last_name", "Holder")
+ });
+
+ Assert.True(events == 3);
+
+ Assert.Equal(issuerCredential.State, holderCredential.State);
+ Assert.Equal(CredentialState.Issued, issuerCredential.State);
+ }
+
+ [Fact]
+ public async Task CanStoreAndReceiveMimeTypes()
+ {
+ const string pdfFile = "base64_encoded_pdf_file";
+ const string pngFile = "base64_encoded_png_image_file";
+ const string unknownFile = "base64_encoded_unknown_file";
+
+ var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
+ _connectionService, _messages, _issuerWallet, _holderWallet);
+
+ var (_, holderCredential) = await Scenarios.IssueCredentialAsync(
+ _schemaService, _credentialService, _messages, issuerConnection,
+ holderConnection, _issuerWallet, _holderWallet, await _holderWallet.Pool as Pool, TestConstants.DefaultMasterSecret, false, new List
+ {
+ new CredentialPreviewAttribute
+ {
+ MimeType = CredentialMimeTypes.TextMimeType,
+ Name = "attribute_name",
+ Value = "attribute_value"
+ },
+ new CredentialPreviewAttribute
+ {
+ MimeType = CredentialMimeTypes.ImagePngMimeType,
+ Name = pngFile,
+ Value = pdfFile
+ },
+ new CredentialPreviewAttribute
+ {
+ MimeType = CredentialMimeTypes.ApplicationPdfMimeType,
+ Name = pdfFile,
+ Value = pdfFile
+ },
+ new CredentialPreviewAttribute
+ {
+ Name = unknownFile,
+ Value = unknownFile
+ }
+ });
+
+ var attributesWithMimeTypeTextCount = 0;
+ var attributesWithMimeTypeImagePngCount = 0;
+ var attributesWithMimeTypeApplicationPdfCount = 0;
+
+ foreach (var credentialPreviewAttribute in holderCredential.CredentialAttributesValues)
+ {
+ switch (credentialPreviewAttribute.MimeType)
+ {
+ case CredentialMimeTypes.TextMimeType:
+ attributesWithMimeTypeTextCount++;
+ break;
+ case CredentialMimeTypes.ImagePngMimeType:
+ attributesWithMimeTypeImagePngCount++;
+ break;
+ case CredentialMimeTypes.ApplicationPdfMimeType:
+ attributesWithMimeTypeApplicationPdfCount++;
+ break;
+ }
+ }
+
+ Assert.Equal(2, attributesWithMimeTypeTextCount);
+ Assert.Equal(1, attributesWithMimeTypeImagePngCount);
+ Assert.Equal(1, attributesWithMimeTypeApplicationPdfCount);
+ }
+
+ [Fact]
+ public async Task CanCreateCredentialOffer()
+ {
+ var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
+ new { seed = TestConstants.StewardSeed }.ToJson());
+
+ var result = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
+ new[] { "test-attr" });
+
+ var (msg, credentialRecord) = await _credentialService.CreateOfferAsync(_issuerWallet,
+ new OfferConfiguration { CredentialDefinitionId = result.Item1 }, null);
+
+ Assert.Equal(CredentialState.Offered, credentialRecord.State);
+ Assert.NotNull(msg);
+ Assert.Null(msg.CredentialPreview);
+ }
+
+ [Fact]
+ public async Task CanCreateCredentialOfferWithPreview()
+ {
+ var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
+ new { seed = TestConstants.StewardSeed }.ToJson());
+
+ var result = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
+ new[] { "test-attr" });
+
+ var (msg, credentialRecord) = await _credentialService.CreateOfferAsync(_issuerWallet,
+ new OfferConfiguration
+ {
+ CredentialDefinitionId = result.Item1,
+ CredentialAttributeValues = new List
+ {
+ new CredentialPreviewAttribute("test-attr","test-attr-value")
+ }
+ });
+
+ Assert.Equal(CredentialState.Offered, credentialRecord.State);
+ Assert.NotNull(msg);
+ Assert.NotNull(msg.CredentialPreview);
+ Assert.True(msg.CredentialPreview.Attributes.Count() == 1);
+
+ var previewAttr = msg.CredentialPreview.Attributes.ToArray()[0];
+
+ Assert.True(previewAttr.Name == "test-attr");
+ Assert.True(previewAttr.MimeType == CredentialMimeTypes.TextMimeType);
+ Assert.True((string)previewAttr.Value == "test-attr-value");
+ }
+
+ [Fact]
+ public async Task RevokeCredentialOfferThrowsCredentialNotFound()
+ {
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectOfferAsync(_issuerWallet, "bad-connection-id"));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
+ }
+
+ [Fact]
+ public async Task RevokeCredentialOfferThrowsCredentialInvalidState()
+ {
+ //Establish a connection between the two parties
+ var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
+ _connectionService, _messages, _issuerWallet, _holderWallet);
+
+ // Create an issuer DID/VK. Can also be created during provisioning
+ var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
+ new { seed = TestConstants.StewardSeed }.ToJson());
+
+ // Create a schema and credential definition for this issuer
+ var (definitionId, _) = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
+ new[] { "dummy_attr" });
+
+ var offerConfig = new OfferConfiguration
+ {
+ IssuerDid = issuer.Did,
+ CredentialDefinitionId = definitionId
+ };
+
+ // Send an offer to the holder using the established connection channel
+ var (offer, _) = await _credentialService.CreateOfferAsync(_issuerWallet, offerConfig, issuerConnection.Id);
+ _messages.Add(offer);
+
+ // Holder retrieves message from their cloud agent
+ var credentialOffer = FindContentMessage(_messages);
+
+ // Holder processes the credential offer by storing it
+ var holderCredentialId =
+ await _credentialService.ProcessOfferAsync(_holderWallet, credentialOffer, holderConnection);
+
+ // Holder creates master secret. Will also be created during wallet agent provisioning
+ await AnonCreds.ProverCreateMasterSecretAsync(_holderWallet.Wallet, TestConstants.DefaultMasterSecret);
+
+ // Holder accepts the credential offer and sends a credential request
+ var (request, _) = await _credentialService.CreateRequestAsync(_holderWallet, holderCredentialId);
+ _messages.Add(request);
+
+ // Issuer retrieves credential request from cloud agent
+ var credentialRequest = FindContentMessage(_messages);
+ Assert.NotNull(credentialRequest);
+
+ // Issuer processes the credential request by storing it
+ var issuerCredentialId =
+ await _credentialService.ProcessCredentialRequestAsync(_issuerWallet, credentialRequest, issuerConnection);
+
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectOfferAsync(_issuerWallet, issuerCredentialId));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
+ }
+
+ [Fact]
+ public async Task CreateOfferV1AsyncThrowsExceptionConnectionNotFound()
+ {
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateOfferAsync(_issuerWallet, new OfferConfiguration(), "bad-connection-id"));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
+ }
+
+ [Fact]
+ public async Task CreateOfferV1AsyncThrowsExceptionConnectionInvalidState()
+ {
+ var connectionId = Guid.NewGuid().ToString();
+
+ await _connectionService.CreateInvitationAsync(_issuerWallet,
+ new InviteConfiguration { ConnectionId = connectionId, AutoAcceptConnection = false });
+
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateOfferAsync(_issuerWallet, new OfferConfiguration(), connectionId));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
+ }
+
+ [Fact]
+ public async Task SendOfferAsyncThrowsExceptionConnectionNotFound()
+ {
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateOfferAsync(_issuerWallet, new OfferConfiguration(), "bad-connection-id"));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
+ }
+
+ [Fact]
+ public async Task SendOfferAsyncThrowsExceptionConnectionInvalidState()
+ {
+ var connectionId = Guid.NewGuid().ToString();
+
+ await _connectionService.CreateInvitationAsync(_issuerWallet,
+ new InviteConfiguration { ConnectionId = connectionId, AutoAcceptConnection = false });
+
+ var ex = await Assert.ThrowsAsync(async () =>
+ await _credentialService.CreateOfferAsync(_issuerWallet, new OfferConfiguration(), connectionId));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
+ }
+
+ [Fact]
+ public async Task ProcessCredentialRequestThrowsCredentialNotFound()
+ {
+ var (issuerConnection, _) = await Scenarios.EstablishConnectionAsync(
+ _connectionService, _messages, _issuerWallet, _holderWallet);
+
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.ProcessCredentialRequestAsync(_issuerWallet,
+ new CredentialRequestMessage(), issuerConnection));
+
+ Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
+ }
+
+ [Fact]
+ public async Task RejectCredentialRequestThrowsExceptionCredentialNotFound()
+ {
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectCredentialRequestAsync(_holderWallet, "bad-credential-id"));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
+ }
+
+ [Fact]
+ public async Task RejectCredentialRequestThrowsExceptionCredentialInvalidState()
+ {
+ //Establish a connection between the two parties
+ var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
+ _connectionService, _messages, _issuerWallet, _holderWallet);
+
+ // Create an issuer DID/VK. Can also be created during provisioning
+ var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
+ new { seed = TestConstants.StewardSeed }.ToJson());
+
+ // Create a schema and credential definition for this issuer
+ var (definitionId, _) = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
+ new[] { "dummy_attr" });
+
+ var offerConfig = new OfferConfiguration
+ {
+ IssuerDid = issuer.Did,
+ CredentialDefinitionId = definitionId
+ };
+
+ // Send an offer to the holder using the established connection channel
+ var (offerMessage, _) = await _credentialService.CreateOfferAsync(_issuerWallet, offerConfig, issuerConnection.Id);
+ _messages.Add(offerMessage);
+
+ // Holder retrieves message from their cloud agent
+ var credentialOffer = FindContentMessage(_messages);
+
+ // Holder processes the credential offer by storing it
+ var holderCredentialId =
+ await _credentialService.ProcessOfferAsync(_holderWallet, credentialOffer, holderConnection);
+
+ // Holder creates master secret. Will also be created during wallet agent provisioning
+ await AnonCreds.ProverCreateMasterSecretAsync(_holderWallet.Wallet, TestConstants.DefaultMasterSecret);
+
+ // Holder accepts the credential offer and sends a credential request
+ (var request, var _) = await _credentialService.CreateRequestAsync(_holderWallet, holderCredentialId);
+ _messages.Add(request);
+
+ // Issuer retrieves credential request from cloud agent
+ var credentialRequest = FindContentMessage(_messages);
+ Assert.NotNull(credentialRequest);
+
+ // Issuer processes the credential request by storing it
+ var issuerCredentialId =
+ await _credentialService.ProcessCredentialRequestAsync(_issuerWallet, credentialRequest, issuerConnection);
+
+ await _credentialService.RejectCredentialRequestAsync(_issuerWallet, issuerCredentialId);
+
+ //Try reject the credential request again
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectCredentialRequestAsync(_issuerWallet, issuerCredentialId));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
+ }
+
+ [Fact]
+ public async Task IssueCredentialThrowsExceptionCredentialNotFound()
+ {
+ // Create an issuer DID/VK. Can also be created during provisioning
+ var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
+ new { seed = TestConstants.StewardSeed }.ToJson());
+
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateCredentialAsync(_issuerWallet, "bad-credential-id"));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
+ }
+
+ [Fact]
+ public async Task IssueCredentialThrowsExceptionCredentialInvalidState()
+ {
+ //Establish a connection between the two parties
+ var (issuerConnection, holderConnection) = await Scenarios.EstablishConnectionAsync(
+ _connectionService, _messages, _issuerWallet, _holderWallet);
+
+ // Create an issuer DID/VK. Can also be created during provisioning
+ var issuer = await Did.CreateAndStoreMyDidAsync(_issuerWallet.Wallet,
+ new { seed = TestConstants.StewardSeed }.ToJson());
+
+ // Create a schema and credential definition for this issuer
+ var (definitionId, _) = await Scenarios.CreateDummySchemaAndNonRevokableCredDef(_issuerWallet, _schemaService, issuer.Did,
+ new[] { "dummy_attr" });
+
+ var offerConfig = new OfferConfiguration
+ {
+ IssuerDid = issuer.Did,
+ CredentialDefinitionId = definitionId
+ };
+
+ // Send an offer to the holder using the established connection channel
+ var (message, _) = await _credentialService.CreateOfferAsync(_issuerWallet, offerConfig, issuerConnection.Id);
+ _messages.Add(message);
+
+ // Holder retrieves message from their cloud agent
+ var credentialOffer = FindContentMessage(_messages);
+
+ // Holder processes the credential offer by storing it
+ var holderCredentialId =
+ await _credentialService.ProcessOfferAsync(_holderWallet, credentialOffer, holderConnection);
+
+ // Holder creates master secret. Will also be created during wallet agent provisioning
+ await AnonCreds.ProverCreateMasterSecretAsync(_holderWallet.Wallet, TestConstants.DefaultMasterSecret);
+
+ // Holder accepts the credential offer and sends a credential request
+ var (request, _) = await _credentialService.CreateRequestAsync(_holderWallet, holderCredentialId);
+ _messages.Add(request);
+
+ // Issuer retrieves credential request from cloud agent
+ var credentialRequest = FindContentMessage(_messages);
+ Assert.NotNull(credentialRequest);
+
+ // Issuer processes the credential request by storing it
+ var issuerCredentialId =
+ await _credentialService.ProcessCredentialRequestAsync(_issuerWallet, credentialRequest, issuerConnection);
+
+ // Issuer accepts the credential requests and issues a credential
+ var (credential, _) = await _credentialService.CreateCredentialAsync(_issuerWallet, issuerCredentialId,
+ new List { new CredentialPreviewAttribute("dummy_attr", "dummyVal") });
+ _messages.Add(credential);
+
+ //Try issue the credential again
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.CreateCredentialAsync(_issuerWallet, issuerCredentialId));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordInInvalidState);
+ }
+
+ [Fact]
+ public async Task RejectOfferAsyncThrowsExceptionCredentialOfferNotFound()
+ {
+ var ex = await Assert.ThrowsAsync(async () => await _credentialService.RejectOfferAsync(_issuerWallet, "bad-credential-id"));
+ Assert.True(ex.ErrorCode == ErrorCode.RecordNotFound);
+ }
+
+ private static T FindContentMessage(IEnumerable collection)
+ where T : AgentMessage
+ => collection.OfType().Single();
+
+ public async Task DisposeAsync()
+ {
+ if (_issuerWallet != null) await _issuerWallet.Wallet.CloseAsync();
+ if (_holderWallet != null) await _holderWallet.Wallet.CloseAsync();
+
+ await Wallet.DeleteWalletAsync(_issuerConfig, Credentials);
+ await Wallet.DeleteWalletAsync(_holderConfig, Credentials);
+ }
+ }
+}
diff --git a/test/Hyperledger.Aries.Tests/Protocols/CredentialTransientTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialTransientTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/CredentialTransientTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialTransientTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/CredentialUtilsTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialUtilsTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/CredentialUtilsTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialUtilsTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/CredentialV1Tests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialV1Tests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/CredentialV1Tests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/CredentialV1Tests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/DidExchangeTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/DidExchangeTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/DidExchangeTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/DidExchangeTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/DiscoveryTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/DiscoveryTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/DiscoveryTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/DiscoveryTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/OutOfBandTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/OutOfBandTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/OutOfBandTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/OutOfBandTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/ProofTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/ProofTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/ProofTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/ProofTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Protocols/RevocationTests.cs b/legacy/test/Hyperledger.Aries.Tests/Protocols/RevocationTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Protocols/RevocationTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Protocols/RevocationTests.cs
diff --git a/test/Hyperledger.Aries.Tests/ProvisioningServiceTests.cs b/legacy/test/Hyperledger.Aries.Tests/ProvisioningServiceTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/ProvisioningServiceTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/ProvisioningServiceTests.cs
diff --git a/test/Hyperledger.Aries.Tests/RecordTests.cs b/legacy/test/Hyperledger.Aries.Tests/RecordTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/RecordTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/RecordTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Routing/BackupTests.cs b/legacy/test/Hyperledger.Aries.Tests/Routing/BackupTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Routing/BackupTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Routing/BackupTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Routing/RoutingInboxHandlerTests.cs b/legacy/test/Hyperledger.Aries.Tests/Routing/RoutingInboxHandlerTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Routing/RoutingInboxHandlerTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Routing/RoutingInboxHandlerTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Routing/RoutingTests.cs b/legacy/test/Hyperledger.Aries.Tests/Routing/RoutingTests.cs
similarity index 98%
rename from test/Hyperledger.Aries.Tests/Routing/RoutingTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Routing/RoutingTests.cs
index 7ecd9479..79f85dec 100644
--- a/test/Hyperledger.Aries.Tests/Routing/RoutingTests.cs
+++ b/legacy/test/Hyperledger.Aries.Tests/Routing/RoutingTests.cs
@@ -1,96 +1,96 @@
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using FluentAssertions;
-using Hyperledger.Aries.Agents.Edge;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Features.Handshakes.Common;
-using Hyperledger.Aries.Routing;
-using Hyperledger.Aries.Storage;
-using Hyperledger.TestHarness.Mock;
-using Microsoft.Extensions.DependencyInjection;
-using Xunit;
-
-namespace Hyperledger.Aries.Tests.Routing
-{
-
- ///
- /// Routing Tests
- ///
- public class RoutingTests
- {
- [Fact(DisplayName = "Provision and connect a mediator and edge agent")]
- public async Task CreatePairedAgentsWithRouting()
- {
- var pair = await InProcAgent.CreatePairedWithRoutingAsync();
-
- var connections1 = await pair.Agent1.Connections.ListAsync(pair.Agent1.Context);
- var invitation1 = connections1.FirstOrDefault(x => x.State == ConnectionState.Invited);
-
- var connection1 = connections1.FirstOrDefault(x => x.Id != invitation1.Id);
- var connection2 = (await pair.Agent2.Connections.ListAsync(pair.Agent2.Context)).FirstOrDefault();
-
- var provisioning1 = await pair.Agent1.Host.Services.GetRequiredService()
- .GetProvisioningAsync(pair.Agent1.Context.Wallet);
- var provisioning2 = await pair.Agent2.Host.Services.GetRequiredService()
- .GetProvisioningAsync(pair.Agent2.Context.Wallet);
-
- // Connections exist
- Assert.NotNull(invitation1);
- Assert.NotNull(connection1);
- Assert.NotNull(connection2);
-
- // The two connections are connected in the correct state
- Assert.Equal(ConnectionState.Connected, connection1.State);
- Assert.Equal(ConnectionState.Connected, connection2.State);
-
- // Check mediator and edge provisioning record states
- Assert.Equal(provisioning1.GetTag(MediatorProvisioningService.EdgeInvitationTagName), invitation1.Id);
- Assert.Equal(provisioning2.GetTag(EdgeProvisioningService.MediatorConnectionIdTagName), connection2.Id);
-
- string inboxId = connection1.GetTag("InboxId");
- IWalletRecordService recordService = pair.Agent1.Host.Services.GetRequiredService();
- InboxRecord inboxRecord = await recordService.GetAsync(pair.Agent1.Context.Wallet, inboxId);
- inboxRecord.GetTag("tag").Should().BeNull();
- }
-
- [Fact(DisplayName = "Provision and connect a mediator and edge agent with metadata provided")]
- public async Task CreatePairedAgentsWithRoutingAndMetadata()
- {
- Dictionary metaData = new Dictionary()
- {
- { "tag", "value" }
- };
- var pair = await InProcAgent.CreatePairedWithRoutingAsync(metaData);
-
- var connections1 = await pair.Agent1.Connections.ListAsync(pair.Agent1.Context);
- var invitation1 = connections1.FirstOrDefault(x => x.State == ConnectionState.Invited);
-
- var connection1 = connections1.FirstOrDefault(x => x.Id != invitation1.Id);
- var connection2 = (await pair.Agent2.Connections.ListAsync(pair.Agent2.Context)).FirstOrDefault();
-
- var provisioning1 = await pair.Agent1.Host.Services.GetRequiredService()
- .GetProvisioningAsync(pair.Agent1.Context.Wallet);
- var provisioning2 = await pair.Agent2.Host.Services.GetRequiredService()
- .GetProvisioningAsync(pair.Agent2.Context.Wallet);
-
- // Connections exist
- invitation1.Should().NotBeNull();
- connection1.Should().NotBeNull();
- connection2.Should().NotBeNull();
-
- // The two connections are connected in the correct state
- ConnectionState.Connected.Should().Be(connection1.State);
- ConnectionState.Connected.Should().Be(connection2.State);
-
- // Check mediator and edge provisioning record states
- provisioning1.GetTag(MediatorProvisioningService.EdgeInvitationTagName).Should().Be(invitation1.Id);
- provisioning2.GetTag(EdgeProvisioningService.MediatorConnectionIdTagName).Should().Be(connection2.Id);
-
- string inboxId = connection1.GetTag("InboxId");
- IWalletRecordService recordService = pair.Agent1.Host.Services.GetRequiredService();
- InboxRecord inboxRecord = await recordService.GetAsync(pair.Agent1.Context.Wallet, inboxId);
- inboxRecord.GetTag("tag").Should().Be(metaData["tag"]);
- }
- }
-}
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using FluentAssertions;
+using Hyperledger.Aries.Agents.Edge;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Features.Handshakes.Common;
+using Hyperledger.Aries.Routing;
+using Hyperledger.Aries.Storage;
+using Hyperledger.TestHarness.Mock;
+using Microsoft.Extensions.DependencyInjection;
+using Xunit;
+
+namespace Hyperledger.Aries.Tests.Routing
+{
+
+ ///
+ /// Routing Tests
+ ///
+ public class RoutingTests
+ {
+ [Fact(DisplayName = "Provision and connect a mediator and edge agent")]
+ public async Task CreatePairedAgentsWithRouting()
+ {
+ var pair = await InProcAgent.CreatePairedWithRoutingAsync();
+
+ var connections1 = await pair.Agent1.Connections.ListAsync(pair.Agent1.Context);
+ var invitation1 = connections1.FirstOrDefault(x => x.State == ConnectionState.Invited);
+
+ var connection1 = connections1.FirstOrDefault(x => x.Id != invitation1.Id);
+ var connection2 = (await pair.Agent2.Connections.ListAsync(pair.Agent2.Context)).FirstOrDefault();
+
+ var provisioning1 = await pair.Agent1.Host.Services.GetRequiredService()
+ .GetProvisioningAsync(pair.Agent1.Context.Wallet);
+ var provisioning2 = await pair.Agent2.Host.Services.GetRequiredService()
+ .GetProvisioningAsync(pair.Agent2.Context.Wallet);
+
+ // Connections exist
+ Assert.NotNull(invitation1);
+ Assert.NotNull(connection1);
+ Assert.NotNull(connection2);
+
+ // The two connections are connected in the correct state
+ Assert.Equal(ConnectionState.Connected, connection1.State);
+ Assert.Equal(ConnectionState.Connected, connection2.State);
+
+ // Check mediator and edge provisioning record states
+ Assert.Equal(provisioning1.GetTag(MediatorProvisioningService.EdgeInvitationTagName), invitation1.Id);
+ Assert.Equal(provisioning2.GetTag(EdgeProvisioningService.MediatorConnectionIdTagName), connection2.Id);
+
+ string inboxId = connection1.GetTag("InboxId");
+ IWalletRecordService recordService = pair.Agent1.Host.Services.GetRequiredService();
+ InboxRecord inboxRecord = await recordService.GetAsync(pair.Agent1.Context.Wallet, inboxId);
+ inboxRecord.GetTag("tag").Should().BeNull();
+ }
+
+ [Fact(DisplayName = "Provision and connect a mediator and edge agent with metadata provided")]
+ public async Task CreatePairedAgentsWithRoutingAndMetadata()
+ {
+ Dictionary metaData = new Dictionary()
+ {
+ { "tag", "value" }
+ };
+ var pair = await InProcAgent.CreatePairedWithRoutingAsync(metaData);
+
+ var connections1 = await pair.Agent1.Connections.ListAsync(pair.Agent1.Context);
+ var invitation1 = connections1.FirstOrDefault(x => x.State == ConnectionState.Invited);
+
+ var connection1 = connections1.FirstOrDefault(x => x.Id != invitation1.Id);
+ var connection2 = (await pair.Agent2.Connections.ListAsync(pair.Agent2.Context)).FirstOrDefault();
+
+ var provisioning1 = await pair.Agent1.Host.Services.GetRequiredService()
+ .GetProvisioningAsync(pair.Agent1.Context.Wallet);
+ var provisioning2 = await pair.Agent2.Host.Services.GetRequiredService()
+ .GetProvisioningAsync(pair.Agent2.Context.Wallet);
+
+ // Connections exist
+ invitation1.Should().NotBeNull();
+ connection1.Should().NotBeNull();
+ connection2.Should().NotBeNull();
+
+ // The two connections are connected in the correct state
+ ConnectionState.Connected.Should().Be(connection1.State);
+ ConnectionState.Connected.Should().Be(connection2.State);
+
+ // Check mediator and edge provisioning record states
+ provisioning1.GetTag(MediatorProvisioningService.EdgeInvitationTagName).Should().Be(invitation1.Id);
+ provisioning2.GetTag(EdgeProvisioningService.MediatorConnectionIdTagName).Should().Be(connection2.Id);
+
+ string inboxId = connection1.GetTag("InboxId");
+ IWalletRecordService recordService = pair.Agent1.Host.Services.GetRequiredService();
+ InboxRecord inboxRecord = await recordService.GetAsync(pair.Agent1.Context.Wallet, inboxId);
+ inboxRecord.GetTag("tag").Should().Be(metaData["tag"]);
+ }
+ }
+}
diff --git a/test/Hyperledger.Aries.Tests/Routing/WalletBackupTests.cs b/legacy/test/Hyperledger.Aries.Tests/Routing/WalletBackupTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Routing/WalletBackupTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/Routing/WalletBackupTests.cs
diff --git a/test/Hyperledger.Aries.Tests/RuntimeTests.cs b/legacy/test/Hyperledger.Aries.Tests/RuntimeTests.cs
similarity index 97%
rename from test/Hyperledger.Aries.Tests/RuntimeTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/RuntimeTests.cs
index 6d6ac24d..6c2fa848 100644
--- a/test/Hyperledger.Aries.Tests/RuntimeTests.cs
+++ b/legacy/test/Hyperledger.Aries.Tests/RuntimeTests.cs
@@ -1,42 +1,42 @@
-using Autofac;
-using Autofac.Extensions.DependencyInjection;
-using Hyperledger.Aries.Agents;
-using Hyperledger.Aries.Configuration;
-using Hyperledger.Aries.Contracts;
-using Hyperledger.Aries.Features.Handshakes.Connection;
-using Hyperledger.Aries.Features.IssueCredential;
-using Hyperledger.Aries.Features.PresentProof;
-using Hyperledger.Aries.Storage;
-using Microsoft.Extensions.DependencyInjection;
-using Xunit;
-
-namespace Hyperledger.Aries.Tests
-{
- public class RuntimeTests
- {
- [Fact]
- public void ResolveDependencyServices()
- {
- var services = new ServiceCollection();
- services.AddAriesFramework();
-
- // Initialize Autofac
- var builder = new ContainerBuilder();
- builder.Populate(services);
-
- // Build the final container
- var container = builder.Build();
-
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- Assert.NotNull(container.Resolve());
- }
- }
-}
+using Autofac;
+using Autofac.Extensions.DependencyInjection;
+using Hyperledger.Aries.Agents;
+using Hyperledger.Aries.Configuration;
+using Hyperledger.Aries.Contracts;
+using Hyperledger.Aries.Features.Handshakes.Connection;
+using Hyperledger.Aries.Features.IssueCredential;
+using Hyperledger.Aries.Features.PresentProof;
+using Hyperledger.Aries.Storage;
+using Microsoft.Extensions.DependencyInjection;
+using Xunit;
+
+namespace Hyperledger.Aries.Tests
+{
+ public class RuntimeTests
+ {
+ [Fact]
+ public void ResolveDependencyServices()
+ {
+ var services = new ServiceCollection();
+ services.AddAriesFramework();
+
+ // Initialize Autofac
+ var builder = new ContainerBuilder();
+ builder.Populate(services);
+
+ // Build the final container
+ var container = builder.Build();
+
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ Assert.NotNull(container.Resolve());
+ }
+ }
+}
diff --git a/test/Hyperledger.Aries.Tests/SchemaServiceTests.cs b/legacy/test/Hyperledger.Aries.Tests/SchemaServiceTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/SchemaServiceTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/SchemaServiceTests.cs
diff --git a/test/Hyperledger.Aries.Tests/SearchTests.cs b/legacy/test/Hyperledger.Aries.Tests/SearchTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/SearchTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/SearchTests.cs
diff --git a/test/Hyperledger.Aries.Tests/StateMachineTests.cs b/legacy/test/Hyperledger.Aries.Tests/StateMachineTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/StateMachineTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/StateMachineTests.cs
diff --git a/test/Hyperledger.Aries.Tests/Storage/Models/WalletStorageConfigurationTest.cs b/legacy/test/Hyperledger.Aries.Tests/Storage/Models/WalletStorageConfigurationTest.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/Storage/Models/WalletStorageConfigurationTest.cs
rename to legacy/test/Hyperledger.Aries.Tests/Storage/Models/WalletStorageConfigurationTest.cs
diff --git a/test/Hyperledger.Aries.Tests/WalletTests.cs b/legacy/test/Hyperledger.Aries.Tests/WalletTests.cs
similarity index 100%
rename from test/Hyperledger.Aries.Tests/WalletTests.cs
rename to legacy/test/Hyperledger.Aries.Tests/WalletTests.cs
diff --git a/test/Hyperledger.Aries.Tests/pool_genesis.txn b/legacy/test/Hyperledger.Aries.Tests/pool_genesis.txn
similarity index 100%
rename from test/Hyperledger.Aries.Tests/pool_genesis.txn
rename to legacy/test/Hyperledger.Aries.Tests/pool_genesis.txn
diff --git a/scripts/start-node-pool.sh b/scripts/start-node-pool.sh
deleted file mode 100644
index bba73596..00000000
--- a/scripts/start-node-pool.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-docker container rm indy_pool
-docker build -f ../docker/indy-pool.dockerfile -t indy_pool .
-docker run --name indy_pool -itd -p 9701-9709:9701-9709 indy_pool
\ No newline at end of file
diff --git a/scripts/start-web-agents.sh b/scripts/start-web-agents.sh
deleted file mode 100644
index 6d7635ee..00000000
--- a/scripts/start-web-agents.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-echo 'Starting NGROK'
-ngrok start -config web-agents-ngrok-config.yaml --all > /dev/null &
-sleep 2s
-ngrok_hosts=$(curl --silent --show-error http://localhost:5037/api/tunnels | sed -nE 's/.*public_url":"http:..([^"]*).*public_url":"http:..([^"]*).*/\1|\2/p')
-IFS="|" read -r host2 host1 <<< "$ngrok_hosts"
-
-export HOST1="http://$host1"
-export HOST2="http://$host2"
-
-echo "NGROK started"
-
-echo "Starting Web Agents with public urls $HOST1 $HOST2"
-docker-compose -f ../docker-compose.yaml build
-docker-compose -f ../docker-compose.yaml up
\ No newline at end of file
diff --git a/scripts/stop-node-pool.sh b/scripts/stop-node-pool.sh
deleted file mode 100644
index b0ea27cf..00000000
--- a/scripts/stop-node-pool.sh
+++ /dev/null
@@ -1 +0,0 @@
-docker stop indy_pool
\ No newline at end of file
diff --git a/scripts/tester.sh b/scripts/tester.sh
deleted file mode 100755
index 86015d6c..00000000
--- a/scripts/tester.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#! /bin/sh
-
-# Will run any tests that have the Keyword in their name.
-# Example: DisplayName~Aries will run all Tests
-# Example: DisplayName~ProofTests will only run ProofTests
-
-(cd test/Hyperledger.Aries.Tests && \
-dotnet test --nologo --filter DisplayName~Aries --verbosity normal)
\ No newline at end of file
diff --git a/scripts/web-agents-ngrok-config.yaml b/scripts/web-agents-ngrok-config.yaml
deleted file mode 100644
index 2bf1d464..00000000
--- a/scripts/web-agents-ngrok-config.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-web_addr: 5037
-tunnels:
- web-agent-1:
- addr: 7000
- proto: http
- host_header: "localhost:7000"
- bind-tls: false
- web-agent-2:
- addr: 8000
- proto: http
- host_header: "localhost:8000"
- bind-tls: false
\ No newline at end of file
diff --git a/src/WalletFramework.Core/ClaimPaths/ClaimPath.cs b/src/WalletFramework.Core/ClaimPaths/ClaimPath.cs
index 9f73e679..874a0184 100644
--- a/src/WalletFramework.Core/ClaimPaths/ClaimPath.cs
+++ b/src/WalletFramework.Core/ClaimPaths/ClaimPath.cs
@@ -1,3 +1,5 @@
+using System.Text;
+using LanguageExt;
using WalletFramework.Core.ClaimPaths.Errors;
using WalletFramework.Core.Functional;
using WalletFramework.Core.Path;
@@ -31,18 +33,61 @@ from components in array.TraverseAll(ClaimPathComponent.Create)
from path in FromComponents(components)
select path;
}
+
+ public static JArray ToJArray(ClaimPath claimPath)
+ {
+ var array = new JArray();
+ foreach (var component in claimPath.GetPathComponents())
+ {
+ component.Match(
+ key =>
+ {
+ array.Add(new JValue(key));
+ return Unit.Default;
+ },
+ index =>
+ {
+ array.Add(new JValue(index));
+ return Unit.Default;
+ },
+ _ =>
+ {
+ array.Add(JValue.CreateNull());
+ return Unit.Default;
+ }
+ );
+ }
+ return array;
+ }
}
public static class ClaimPathFun
{
public static JsonPath ToJsonPath(this ClaimPath claimPath)
{
- var jsonPath = "$." + string.Join('.', claimPath.GetPathComponents().Select(x =>
+ var jsonPath = new StringBuilder();
+ jsonPath.Append('$');
+
+ foreach (var component in claimPath.GetPathComponents())
{
- if (x.IsKey) return x.AsKey();
- if (x.IsIndex) return x.AsIndex()?.ToString();
- return null;
- }).Where(x => x is not null));
- return JsonPath.ValidJsonPath(jsonPath).UnwrapOrThrow();
+ component.Match(
+ key =>
+ {
+ jsonPath.Append($".{key}");
+ return Unit.Default;
+ },
+ integer =>
+ {
+ jsonPath.Append($"[{integer}]");
+ return Unit.Default;
+ },
+ _ =>
+ {
+ jsonPath.Append("[*]");
+ return Unit.Default;
+ });
+ }
+
+ return JsonPath.ValidJsonPath(jsonPath.ToString()).UnwrapOrThrow();
}
}
diff --git a/src/WalletFramework.Core/Credentials/CredentialId.cs b/src/WalletFramework.Core/Credentials/CredentialId.cs
index 732ed46b..043695fa 100644
--- a/src/WalletFramework.Core/Credentials/CredentialId.cs
+++ b/src/WalletFramework.Core/Credentials/CredentialId.cs
@@ -3,7 +3,7 @@
namespace WalletFramework.Core.Credentials;
-public readonly struct CredentialId
+public readonly record struct CredentialId
{
private string Value { get; }
@@ -12,6 +12,8 @@ private CredentialId(string value)
Value = value;
}
+ public string AsString() => Value;
+
public override string ToString() => Value;
public static implicit operator string(CredentialId credentialId) => credentialId.Value;
diff --git a/src/WalletFramework.Core/Credentials/CredentialSetId.cs b/src/WalletFramework.Core/Credentials/CredentialSetId.cs
index 8561dd54..b6efc8de 100644
--- a/src/WalletFramework.Core/Credentials/CredentialSetId.cs
+++ b/src/WalletFramework.Core/Credentials/CredentialSetId.cs
@@ -12,6 +12,10 @@ private CredentialSetId(string value)
Value = value;
}
+ public string AsString() => Value;
+
+ public Guid AsGuid() => Guid.Parse(Value);
+
public override string ToString() => Value;
public static implicit operator string(CredentialSetId credentialSetId) => credentialSetId.Value;
diff --git a/src/WalletFramework.Core/Cryptography/Models/KeyId.cs b/src/WalletFramework.Core/Cryptography/Models/KeyId.cs
index 8b56acb2..bc3af472 100644
--- a/src/WalletFramework.Core/Cryptography/Models/KeyId.cs
+++ b/src/WalletFramework.Core/Cryptography/Models/KeyId.cs
@@ -9,6 +9,8 @@ public readonly struct KeyId
private KeyId(string value) => Value = value;
+ public string AsString() => Value;
+
public override string ToString() => Value;
public static implicit operator string(KeyId keyId) => keyId.Value;
diff --git a/src/WalletFramework.Core/Events/EventAggregator.cs b/src/WalletFramework.Core/Events/EventAggregator.cs
new file mode 100644
index 00000000..f49bbf05
--- /dev/null
+++ b/src/WalletFramework.Core/Events/EventAggregator.cs
@@ -0,0 +1,17 @@
+using System.Reactive.Linq;
+using System.Reactive.Subjects;
+
+namespace WalletFramework.Core.Events;
+
+///
+//Modified from https://github.com/shiftkey/Reactive.EventAggregator
+public class EventAggregator : IEventAggregator
+{
+ private readonly Subject