Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
+268
View File
@@ -0,0 +1,268 @@
meta-parsec layer
==============
This layer contains recipes for the Parsec service and parsec tools.
Dependencies
============
This layer depends on:
URI: git://git.openembedded.org/meta-openembedded
branch: master
URI git://git.yoctoproject.org/meta-security
branch: master
URI https://github.com/kraj/meta-clang.git
branch: master
Adding the meta-parsec layer to your build
==========================================
In order to use this layer, you need to make the build system aware of it.
You can add it to the build system by adding the
location of the meta-parsec layer to bblayers.conf, along with any
other layers needed. e.g.:
BBLAYERS ?= " \
/path/to/yocto/meta \
/path/to/yocto/meta-yocto \
/path/to/yocto/meta-yocto-bsp \
/path/to/meta-openembedded/meta-oe \
/path/to/meta-openembedded/meta-python \
/path/to/meta-clang \
/path/to/meta-security/meta-tpm \
/path/to/meta-security/meta-parsec \
"
To include the Parsec service into your image add following into the
local.conf:
IMAGE_INSTALL:append = " parsec-service"
By default the Parsec service will be deployed into the image with
PKCS11 and MBED-CRYPTO providers build-in.
The TPM provider will also be built by default if:
- DISTRO_FEATURES contains "tmp2" and
- "tpm-layer" (meta-tpm) is included in BBLAYERS
The trusted service provider depends on libts recipe from meta-arm layer.
You can use PACKAGECONFIG for Parsec servic recipe to define
what providers should be built in. For example:
PACKAGECONFIG:pn-parsec-service = "TS"
The default Parsec service config file is taken from the Parsec repository:
https://github.com/parallaxsecond/parsec/blob/main/config.toml
This config file contains the MbedCrypto provider enabled.
The config needs to be updated to use the Parsec service
with other providers like TPM or PKCS11. The required changes are
covered in Parsec documentation https://parallaxsecond.github.io/parsec-book/
PARSEC_CONFIG can be used in a bbappend file to replace the default config.
For example:
```
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://config-TS.toml \
"
PARSEC_CONFIG = "${WORKDIR}/config-TS.toml"
```
Updating recipes
================
The parsec-service and parsec-tool recipes use include files with lists
of all rust crates required. This allows bitbake to fetch all the necessary
dependent crates, as well as a pegged version of the crates.io index,
to ensure maximum reproducibility.
It's recommended to use cargo-bitbake to generate include files for new
versions of parsec recipes.
https://github.com/meta-rust/cargo-bitbake
When you have crago-bitbake built:
1. Checkout the required version of parsec repository.
2. Run cargo-bitbake inside the repository. It will produce a BB file.
3. Create a new include file with SRC_URI and LIC_FILES_CHKSUM from the BB file.
Automated Parsec testing with runqemu
=====================================
The Yocto build system has the ability to run a series of automated tests for qemu images.
All the tests are actually commands run on the target system over ssh.
Meta-parsec includes automated unittests which run end to end Parsec tests.
The tests are run against:
- all providers pre-configured in the Parsec config file included in the image.
- PKCS11 and TPM providers with software backends if softhsm and
swtpm packages included in the image.
- TS Provider if Parsec is built with it included.
Meta-parsec also contains a recipe for `security-parsec-image` image with Parsec,
softhsm and swtpm included.
Please notice that the account you use to run bitbake should have access to `/dev/kvm`.
You might need to change permissions or add the account into `kvm` unix group.
1. Testing Parsec with your own image where `parsec-service` and `parsec-tool` are already included.
- Add into your `local.conf`:
```
INHERIT += "testimage"
TEST_SUITES = "ping ssh parsec"
```
- Build your image
```bash
bitbake <your-image>
```
- Run tests
```bash
bitbake <your-image> -c testimage
```
2. Testing Parsec with pre-defined `security-parsec-image` image.
- Add into your `local.conf`:
```
DISTRO_FEATURES += " tpm2"
INHERIT += "testimage"
TEST_SUITES = "ping ssh parsec"
```
- Build security-parsec-image image
```bash
bitbake security-parsec-image
```
- Run tests
```bash
bitbake security-parsec-image -c testimage
```
Output of a successfull tests run should look similar to:
```
RESULTS:
RESULTS - ping.PingTest.test_ping: PASSED (0.05s)
RESULTS - ssh.SSHTest.test_ssh: PASSED (0.25s)
RESULTS - parsec.ParsecTest.test_all_providers: PASSED (1.84s)
RESULTS - parsec.ParsecTest.test_pkcs11_provider: PASSED (2.91s)
RESULTS - parsec.ParsecTest.test_tpm_provider: PASSED (3.33s)
SUMMARY:
security-parsec-image () - Ran 5 tests in 8.386s
security-parsec-image - OK - All required tests passed (successes=5, skipped=0, failures=0, errors=0)
```
Manual testing with runqemu
===========================
This layer also contains a recipe for pasec-tool which can be used for
manual testing of the Parsec service:
IMAGE_INSTALL:append = " parsec-tool"
There are a series of Parsec Demo videos showing how to use parsec-tool
to test the Parsec service base functionality:
https://www.youtube.com/watch?v=ido0CyUdMHM&list=PLKjl7IFAwc4S7WQqqphCsyy6DPDxJ2Skg&index=4
The parsec-tool recipe also includes `parsec-cli-tests.sh` script
which runs e2e tests against all providers enabled and configured
in Parsec service.
You can use runqemu to start a VM with a built image file and run
manual tests with parsec-tool.
Enabling Parsec providers for manual testing
============================================
1. MbedCrypto provider
The default Parsec service config file contains the MbedCrypto provider
enabled. No changes required.
2. PKCS11 provider
The Software HSM can be used for manual testing of the provider by
including it into your test image:
IMAGE_INSTALL:append = " softhsm"
Inside the running VM:
- Stop Parsec
```bash
systemctl stop parsec
```
- Initialise a token and notice the result slot number
```bash
softhsm2-util --init-token --slot 0 --label "Parsec Service" --pin 123456 --so-pin 123456
```
- Change the token ownership:
```bash
for d in /var/lib/softhsm/tokens/*; do chown -R parsec $d; done
```
- Enable the PKCS11 provider and update its parameters in the Parsec config file
/etc/parsec/config.toml
```
library_path = "/usr/lib/softhsm/libsofthsm2.so"
slot_number = <slot number>
user_pin = "123456"
```
- Start Parsec
```bash
systemctl start parsec
```
3. TPM provider
The IBM Software TPM service can be used for manual testing of the provider by
including it into your test image:
IMAGE_INSTALL:append = " swtpm tpm2-tools libtss2 libtss2-tcti-mssim"
Inside the running VM:
- Stop Parsec
```bash
systemctl stop parsec
```
- Start and configure the Software TPM server
```bash
/usr/bin/tpm_server &
sleep 5
/usr/bin/tpm2_startup -c -T mssim
/usr/bin/tpm2_changeauth -c owner tpm_pass
```
- Enable the TPM provider and update its parameters in the Parsec config file
/etc/parsec/config.toml
```
tcti = "mssim"
owner_hierarchy_auth = "hex:74706d5f70617373"
```
- Start Parsec
```bash
systemctl start parsec
```
Maintenance
-----------
Send pull requests, patches, comments or questions to yocto@yoctoproject.org
When sending single patches, please using something like:
'git send-email -1 --to yocto@lists.yoctoproject.org --subject-prefix=meta-parsec][PATCH'
These values can be set as defaults for this repository:
$ git config sendemail.to yocto@lists.yoctoproject.org
$ git config format.subjectPrefix meta-parsec][PATCH
Now you can just do 'git send-email origin/master' to send all local patches.
Maintainers: Anton Antonov <Anton.Antonov@arm.com>
Armin Kuster <akuster808@gmail.com>
License
=======
All metadata is MIT licensed unless otherwise stated. Source code included
in tree for individual recipes is under the LICENSE stated in each recipe
(.bb file) unless otherwise stated.
+16
View File
@@ -0,0 +1,16 @@
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have a recipes directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
BBFILE_COLLECTIONS += "parsec-layer"
BBFILE_PATTERN_parsec-layer = "^${LAYERDIR}/"
BBFILE_PRIORITY_parsec-layer = "5"
LAYERSERIES_COMPAT_parsec-layer = "mickledore"
LAYERDEPENDS_parsec-layer = "core clang-layer"
BBLAYERS_LAYERINDEX_NAME_parsec-layer = "meta-parsec"
addpylib ${LAYERDIR}/lib oeqa
@@ -0,0 +1,232 @@
# Copyright (C) 2022 Armin Kuster <akuster808@gmail.com>
# Copyright (C) 2022 Anton Antonov <Anton.Antonov@arm.com>
#
import re
from tempfile import mkstemp
from oeqa.runtime.case import OERuntimeTestCase
from oeqa.core.decorator.depends import OETestDepends
from oeqa.runtime.decorator.package import OEHasPackage
from oeqa.core.decorator.data import skipIfNotFeature
class ParsecTest(OERuntimeTestCase):
@classmethod
def setUpClass(cls):
cls.toml_file = '/etc/parsec/config.toml'
cls.tc.target.run('cp -p %s %s-original' % (cls.toml_file, cls.toml_file))
def setUp(self):
super(ParsecTest, self).setUp()
if 'systemd' in self.tc.td['DISTRO_FEATURES']:
self.parsec_status='systemctl status -l parsec'
self.parsec_reload='systemctl restart parsec'
else:
self.parsec_status='pgrep -l parsec'
self.parsec_reload='/etc/init.d/parsec reload'
def tearDown(self):
self.target.run('sync')
super(ParsecTest, self).tearDown()
def copy_subconfig(self, cfg, provider):
""" Copy a provider configuration to target and append it to Parsec config """
tmp_fd, tmp_path = mkstemp()
with os.fdopen(tmp_fd, 'w') as f:
f.write('\n'.join(cfg))
(status, output) = self.target.copyTo(tmp_path, "%s-%s" % (self.toml_file, provider))
self.assertEqual(status, 0, msg='File could not be copied.\n%s' % output)
status, output = self.target.run('cat %s-%s >>%s' % (self.toml_file, provider, self.toml_file))
os.remove(tmp_path)
def restore_parsec_config(self):
""" Restore original Parsec config """
self.target.run('cp -p %s-original %s' % (self.toml_file, self.toml_file))
self.target.run(self.parsec_reload)
def check_parsec_providers(self, provider=None, prov_id=None):
""" Get Parsec providers list and check for one if defined """
status, output = self.target.run(self.parsec_status)
self.assertEqual(status, 0, msg='Parsec service is not running.\n%s' % output)
status, output = self.target.run('parsec-tool list-providers')
self.assertEqual(status, 0, msg='Cannot get a list of Parsec providers.\n%s' % output)
if provider and prov_id:
self.assertIn("ID: 0x0%d (%s provider)" % (prov_id, provider),
output, msg='%s provider is not configured.' % provider)
def run_cli_tests(self, prov_id=None, extra_params=""):
""" Run Parsec CLI end-to-end tests against one or all providers """
status, output = self.target.run('parsec-cli-tests.sh %s %s' % ("-%d" % prov_id if prov_id else "", extra_params))
self.assertEqual(status, 0, msg='Parsec CLI tests failed.\n %s' % output)
def check_packageconfig(self, prov):
""" Check that the require provider is included in Parsec """
if 'PACKAGECONFIG:pn-parsec-service' in self.tc.td.keys():
providers = self.tc.td['PACKAGECONFIG:pn-parsec-service']
else:
# PACKAGECONFIG is not defined in local.conf
# Let's use the default value
providers = "PKCS11 MBED-CRYPTO"
if 'tpm2' in self.tc.td['DISTRO_FEATURES']:
providers += " TPM"
if prov not in providers:
self.skipTest('%s provider is not included in Parsec. Parsec PACKAGECONFIG: "%s"' % \
(prov, providers))
def check_packages(self, prov, packages):
""" Check for the required packages for Parsec providers software backends """
if isinstance(packages, str):
need_pkgs = set([packages,])
else:
need_pkgs = set(packages)
if not self.tc.image_packages.issuperset(need_pkgs):
self.skipTest('%s provider is not configured and packages "%s" are not included into the image' % \
(prov, need_pkgs))
@OEHasPackage(['parsec-service'])
@OETestDepends(['ssh.SSHTest.test_ssh'])
def test_all_providers(self):
""" Test Parsec service with all pre-defined providers """
self.check_parsec_providers()
self.run_cli_tests()
def configure_tpm_provider(self):
""" Create Parsec TPM provider configuration """
cfg = [
'',
'[[provider]]',
'name = "tpm-provider"',
'provider_type = "Tpm"',
'key_info_manager = "sqlite-manager"',
'tcti = "swtpm:port=2321"',
'owner_hierarchy_auth = ""',
]
self.copy_subconfig(cfg, "TPM")
cmds = [
'mkdir /tmp/myvtpm',
'swtpm socket -d --tpmstate dir=/tmp/myvtpm --tpm2 --ctrl type=tcp,port=2322 --server type=tcp,port=2321 --flags not-need-init',
'tpm2_startup -c -T "swtpm:port=2321"',
'chown -R parsec /tmp/myvtpm',
self.parsec_reload,
'sleep 5',
]
for cmd in cmds:
status, output = self.target.run(cmd)
self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
@OEHasPackage(['parsec-service'])
@skipIfNotFeature('tpm2','Test parsec_tpm_provider requires tpm2 to be in DISTRO_FEATURES')
@OETestDepends(['ssh.SSHTest.test_ssh'])
def test_tpm_provider(self):
""" Configure and test Parsec TPM provider with swtpm as a backend """
self.check_packageconfig("TPM")
reconfigure = False
prov_id = 3
try:
# Chech if the provider is already configured
self.check_parsec_providers("TPM", prov_id)
except:
# Try to test the provider with a software backend
self.check_packages("TPM", ['swtpm', 'tpm2-tools'])
reconfigure = True
self.configure_tpm_provider()
self.check_parsec_providers("TPM", prov_id)
self.run_cli_tests(prov_id)
self.restore_parsec_config()
if reconfigure:
self.target.run('swtpm_ioctl -s --tcp :2322')
def configure_pkcs11_provider(self):
""" Create Parsec PKCS11 provider configuration """
status, output = self.target.run('softhsm2-util --init-token --free --label "Parsec Service" --pin 123456 --so-pin 123456')
self.assertEqual(status, 0, msg='Failed to init PKCS11 token.\n%s' % output)
slot = re.search('The token has been initialized and is reassigned to slot (\d*)', output)
if slot is None:
self.fail('Failed to get PKCS11 slot serial number.\n%s' % output)
self.assertNotEqual(slot.group(1), None, msg='Failed to get PKCS11 slot serial number.\n%s' % output)
cfg = [
'',
'[[provider]]',
'name = "pkcs11-provider"',
'provider_type = "Pkcs11"',
'key_info_manager = "sqlite-manager"',
'library_path = "/usr/lib/softhsm/libsofthsm2.so"',
'slot_number = %s' % slot.group(1),
'user_pin = "123456"',
'allow_export = true',
]
self.copy_subconfig(cfg, "PKCS11")
status, output = self.target.run('for d in /var/lib/softhsm/tokens/*; do chown -R parsec $d; done')
status, output = self.target.run(self.parsec_reload)
self.assertEqual(status, 0, msg='Failed to reload Parsec.\n%s' % output)
@OEHasPackage(['parsec-service'])
@OETestDepends(['ssh.SSHTest.test_ssh'])
def test_pkcs11_provider(self):
""" Configure and test Parsec PKCS11 provider with softhsm as a backend """
self.check_packageconfig("PKCS11")
prov_id = 2
try:
# Chech if the provider is already configured
self.check_parsec_providers("PKCS #11", prov_id)
except:
# Try to test the provider with a software backend
self.check_packages("PKCS11", 'softhsm')
self.configure_pkcs11_provider()
self.check_parsec_providers("PKCS #11", prov_id)
# Software PKCS11 we use for OE QA testing
# doesn't support RSA-OAEP(SHA256) encryption/decryption operations
self.run_cli_tests(prov_id, "--no-oaep")
self.restore_parsec_config()
def configure_TS_provider(self):
""" Create Trusted Services provider configuration """
cfg = [
'',
'[[provider]]',
'name = "trusted-service-provider"',
'provider_type = "TrustedService"',
'key_info_manager = "sqlite-manager"',
]
self.copy_subconfig(cfg, "TS")
status, output = self.target.run(self.parsec_reload)
self.assertEqual(status, 0, msg='Failed to reload Parsec.\n%s' % output)
@OEHasPackage(['parsec-service'])
@OETestDepends(['ssh.SSHTest.test_ssh'])
def test_TS_provider(self):
""" Configure and test Parsec PKCS11 provider with softhsm as a backend """
self.check_packageconfig("TS")
prov_id = 4
try:
# Chech if the provider is already configured
self.check_parsec_providers("Trusted Service", prov_id)
except:
self.configure_TS_provider()
self.check_parsec_providers("Trusted Service", prov_id)
self.run_cli_tests(prov_id)
self.restore_parsec_config()
@@ -0,0 +1,18 @@
DESCRIPTION = "A small image for testing Parsec service with MbedCrypto, TPM and PKCS11 providers"
inherit core-image
IMAGE_FEATURES += "ssh-server-openssh"
IMAGE_INSTALL = "\
packagegroup-base \
packagegroup-core-boot \
packagegroup-security-tpm2 \
packagegroup-security-parsec \
swtpm \
softhsm \
os-release"
export IMAGE_BASENAME = "security-parsec-image"
IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
@@ -0,0 +1,16 @@
DESCRIPTION = "Parsec Security packagegroup for Poky"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
inherit packagegroup
PACKAGES = "\
packagegroup-security-parsec \
"
SUMMARY:packagegroup-security-parsec = "Security Parsec"
RDEPENDS:packagegroup-security-parsec = "\
parsec-tool \
parsec-service \
"
@@ -0,0 +1,3 @@
#Type Path Mode User Group Age Argument
d /run/parsec 755 parsec parsec - -
d /var/lib/parsec 700 parsec parsec - -
@@ -0,0 +1,63 @@
#! /bin/sh -e
# ------------------------------------------------------------------------------
# Copyright (c) 2021, Arm Limited, All Rights Reserved
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ------------------------------------------------------------------------------
# Parsec Service SysV init script
test -x /usr/libexec/parsec/parsec || exit 0
case "$1" in
start)
echo -n "Starting Parsec daemon: "
if [ ! -f /etc/parsec/config.toml ]; then
echo "There is no Parsec service configuration file."
else
if [ ! -d /run/parsec ]; then
mkdir /run/parsec
chown parsec:parsec /run/parsec
chmod 755 /run/parsec
fi
# start-stop-daemon used in poky busybox doesn't support
# '--chdir' parameter. So, let's do it manually
cd /var/lib/parsec
RUST_LOG=info start-stop-daemon --oknodo --start --background \
--chuid parsec:parsec --exec /usr/libexec/parsec/parsec \
-- --config /etc/parsec/config.toml
echo "parsec."
fi
;;
stop)
echo -n "Stopping Parsec daemon: "
start-stop-daemon --oknodo --stop --exec /usr/libexec/parsec/parsec
echo "parsec."
;;
reload)
echo -n "Reloading Parsec daemon: "
start-stop-daemon --stop --signal SIGHUP --exec /usr/libexec/parsec/parsec
echo "parsec."
;;
restart|force-reload)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/parsec {start|stop|restart|reload|force-reload}"
exit 1
esac
exit 0
@@ -0,0 +1,28 @@
Run the Parsec service as parsec user in /var/lib/parsec/ working directory.
Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
Upstream-Status: Inappropriate [deployment configuration]
diff --git a/systemd-daemon/parsec.service b/systemd-daemon/parsec.service
index c07c3b9..a6fe6a3 100644
--- a/systemd-daemon/parsec.service
+++ b/systemd-daemon/parsec.service
@@ -3,13 +3,15 @@ Description=Parsec Service
Documentation=https://parallaxsecond.github.io/parsec-book/parsec_service/install_parsec_linux.html
[Service]
-WorkingDirectory=/home/parsec/
+User=parsec
+Group=parsec
+WorkingDirectory=/var/lib/parsec/
ExecStart=/usr/libexec/parsec/parsec --config /etc/parsec/config.toml
# Systemd hardening
ProtectSystem=full
ProtectHome=true
ProtectHostname=true
-ProtectKernelTunables=true
+#ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
@@ -0,0 +1,460 @@
# Autogenerated with 'bitbake -c update_crates parsec-service'
# from Cargo.lock
SRC_URI += " \
crate://crates.io/ahash/0.7.6;name=ahash-0.7.6 \
crate://crates.io/aho-corasick/0.7.20;name=aho-corasick-0.7.20 \
crate://crates.io/ansi_term/0.12.1;name=ansi_term-0.12.1 \
crate://crates.io/anyhow/1.0.69;name=anyhow-1.0.69 \
crate://crates.io/asn1-rs/0.3.1;name=asn1-rs-0.3.1 \
crate://crates.io/asn1-rs-derive/0.1.0;name=asn1-rs-derive-0.1.0 \
crate://crates.io/asn1-rs-impl/0.1.0;name=asn1-rs-impl-0.1.0 \
crate://crates.io/atty/0.2.14;name=atty-0.2.14 \
crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \
crate://crates.io/base64/0.13.1;name=base64-0.13.1 \
crate://crates.io/bincode/1.3.3;name=bincode-1.3.3 \
crate://crates.io/bindgen/0.57.0;name=bindgen-0.57.0 \
crate://crates.io/bindgen/0.63.0;name=bindgen-0.63.0 \
crate://crates.io/bitfield/0.13.2;name=bitfield-0.13.2 \
crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \
crate://crates.io/bumpalo/3.12.0;name=bumpalo-3.12.0 \
crate://crates.io/bytes/1.4.0;name=bytes-1.4.0 \
crate://crates.io/cc/1.0.79;name=cc-1.0.79 \
crate://crates.io/cexpr/0.4.0;name=cexpr-0.4.0 \
crate://crates.io/cexpr/0.6.0;name=cexpr-0.6.0 \
crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
crate://crates.io/clang-sys/1.6.0;name=clang-sys-1.6.0 \
crate://crates.io/clap/2.34.0;name=clap-2.34.0 \
crate://crates.io/cmake/0.1.45;name=cmake-0.1.45 \
crate://crates.io/const-oid/0.7.1;name=const-oid-0.7.1 \
crate://crates.io/cryptoauthlib-sys/0.2.2;name=cryptoauthlib-sys-0.2.2 \
crate://crates.io/cryptoki/0.3.1;name=cryptoki-0.3.1 \
crate://crates.io/cryptoki-sys/0.1.5;name=cryptoki-sys-0.1.5 \
crate://crates.io/data-encoding/2.3.3;name=data-encoding-2.3.3 \
crate://crates.io/der/0.5.1;name=der-0.5.1 \
crate://crates.io/der-parser/7.0.0;name=der-parser-7.0.0 \
crate://crates.io/derivative/2.2.0;name=derivative-2.2.0 \
crate://crates.io/displaydoc/0.2.3;name=displaydoc-0.2.3 \
crate://crates.io/either/1.8.1;name=either-1.8.1 \
crate://crates.io/enumflags2/0.7.5;name=enumflags2-0.7.5 \
crate://crates.io/enumflags2_derive/0.7.4;name=enumflags2_derive-0.7.4 \
crate://crates.io/env_logger/0.8.4;name=env_logger-0.8.4 \
crate://crates.io/errno/0.2.8;name=errno-0.2.8 \
crate://crates.io/errno-dragonfly/0.1.2;name=errno-dragonfly-0.1.2 \
crate://crates.io/fallible-iterator/0.2.0;name=fallible-iterator-0.2.0 \
crate://crates.io/fallible-streaming-iterator/0.1.9;name=fallible-streaming-iterator-0.1.9 \
crate://crates.io/fastrand/1.9.0;name=fastrand-1.9.0 \
crate://crates.io/fixedbitset/0.2.0;name=fixedbitset-0.2.0 \
crate://crates.io/form_urlencoded/1.1.0;name=form_urlencoded-1.1.0 \
crate://crates.io/futures/0.3.27;name=futures-0.3.27 \
crate://crates.io/futures-channel/0.3.27;name=futures-channel-0.3.27 \
crate://crates.io/futures-core/0.3.27;name=futures-core-0.3.27 \
crate://crates.io/futures-executor/0.3.27;name=futures-executor-0.3.27 \
crate://crates.io/futures-io/0.3.27;name=futures-io-0.3.27 \
crate://crates.io/futures-macro/0.3.27;name=futures-macro-0.3.27 \
crate://crates.io/futures-sink/0.3.27;name=futures-sink-0.3.27 \
crate://crates.io/futures-task/0.3.27;name=futures-task-0.3.27 \
crate://crates.io/futures-util/0.3.27;name=futures-util-0.3.27 \
crate://crates.io/generic-array/0.14.6;name=generic-array-0.14.6 \
crate://crates.io/getrandom/0.2.8;name=getrandom-0.2.8 \
crate://crates.io/glob/0.3.1;name=glob-0.3.1 \
crate://crates.io/grpcio/0.9.1;name=grpcio-0.9.1 \
crate://crates.io/grpcio-sys/0.9.1+1.38.0;name=grpcio-sys-0.9.1+1.38.0 \
crate://crates.io/hashbrown/0.12.3;name=hashbrown-0.12.3 \
crate://crates.io/hashlink/0.8.1;name=hashlink-0.8.1 \
crate://crates.io/heck/0.3.3;name=heck-0.3.3 \
crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
crate://crates.io/hermit-abi/0.2.6;name=hermit-abi-0.2.6 \
crate://crates.io/hex/0.4.3;name=hex-0.4.3 \
crate://crates.io/hostname-validator/1.1.1;name=hostname-validator-1.1.1 \
crate://crates.io/humantime/2.1.0;name=humantime-2.1.0 \
crate://crates.io/idna/0.3.0;name=idna-0.3.0 \
crate://crates.io/indexmap/1.9.2;name=indexmap-1.9.2 \
crate://crates.io/instant/0.1.12;name=instant-0.1.12 \
crate://crates.io/io-lifetimes/1.0.6;name=io-lifetimes-1.0.6 \
crate://crates.io/itertools/0.10.5;name=itertools-0.10.5 \
crate://crates.io/itoa/1.0.6;name=itoa-1.0.6 \
crate://crates.io/js-sys/0.3.61;name=js-sys-0.3.61 \
crate://crates.io/jsonwebkey/0.3.5;name=jsonwebkey-0.3.5 \
crate://crates.io/jsonwebtoken/8.2.0;name=jsonwebtoken-8.2.0 \
crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
crate://crates.io/lazycell/1.3.0;name=lazycell-1.3.0 \
crate://crates.io/libc/0.2.140;name=libc-0.2.140 \
crate://crates.io/libloading/0.7.4;name=libloading-0.7.4 \
crate://crates.io/libsqlite3-sys/0.25.2;name=libsqlite3-sys-0.25.2 \
crate://crates.io/libz-sys/1.1.8;name=libz-sys-1.1.8 \
crate://crates.io/linux-raw-sys/0.1.4;name=linux-raw-sys-0.1.4 \
crate://crates.io/lock_api/0.4.9;name=lock_api-0.4.9 \
crate://crates.io/log/0.4.17;name=log-0.4.17 \
crate://crates.io/mbox/0.6.0;name=mbox-0.6.0 \
crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \
crate://crates.io/minimal-lexical/0.2.1;name=minimal-lexical-0.2.1 \
crate://crates.io/multimap/0.8.3;name=multimap-0.8.3 \
crate://crates.io/nom/5.1.2;name=nom-5.1.2 \
crate://crates.io/nom/7.1.3;name=nom-7.1.3 \
crate://crates.io/num/0.4.0;name=num-0.4.0 \
crate://crates.io/num-bigint/0.4.3;name=num-bigint-0.4.3 \
crate://crates.io/num-complex/0.4.3;name=num-complex-0.4.3 \
crate://crates.io/num-derive/0.3.3;name=num-derive-0.3.3 \
crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \
crate://crates.io/num-iter/0.1.43;name=num-iter-0.1.43 \
crate://crates.io/num-rational/0.4.1;name=num-rational-0.4.1 \
crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \
crate://crates.io/num_cpus/1.15.0;name=num_cpus-1.15.0 \
crate://crates.io/num_threads/0.1.6;name=num_threads-0.1.6 \
crate://crates.io/oid/0.2.1;name=oid-0.2.1 \
crate://crates.io/oid-registry/0.4.0;name=oid-registry-0.4.0 \
crate://crates.io/once_cell/1.17.1;name=once_cell-1.17.1 \
crate://crates.io/parking_lot/0.11.2;name=parking_lot-0.11.2 \
crate://crates.io/parking_lot_core/0.8.6;name=parking_lot_core-0.8.6 \
crate://crates.io/parsec-interface/0.28.0;name=parsec-interface-0.28.0 \
crate://crates.io/peeking_take_while/0.1.2;name=peeking_take_while-0.1.2 \
crate://crates.io/pem/1.1.1;name=pem-1.1.1 \
crate://crates.io/percent-encoding/2.2.0;name=percent-encoding-2.2.0 \
crate://crates.io/pest/2.5.6;name=pest-2.5.6 \
crate://crates.io/petgraph/0.5.1;name=petgraph-0.5.1 \
crate://crates.io/picky-asn1/0.3.3;name=picky-asn1-0.3.3 \
crate://crates.io/picky-asn1-der/0.2.5;name=picky-asn1-der-0.2.5 \
crate://crates.io/picky-asn1-x509/0.6.1;name=picky-asn1-x509-0.6.1 \
crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \
crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \
crate://crates.io/pkcs8/0.8.0;name=pkcs8-0.8.0 \
crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
crate://crates.io/ppv-lite86/0.2.17;name=ppv-lite86-0.2.17 \
crate://crates.io/proc-macro-error/1.0.4;name=proc-macro-error-1.0.4 \
crate://crates.io/proc-macro-error-attr/1.0.4;name=proc-macro-error-attr-1.0.4 \
crate://crates.io/proc-macro2/1.0.52;name=proc-macro2-1.0.52 \
crate://crates.io/prost/0.8.0;name=prost-0.8.0 \
crate://crates.io/prost-build/0.8.0;name=prost-build-0.8.0 \
crate://crates.io/prost-derive/0.8.0;name=prost-derive-0.8.0 \
crate://crates.io/prost-types/0.8.0;name=prost-types-0.8.0 \
crate://crates.io/protobuf/2.28.0;name=protobuf-2.28.0 \
crate://crates.io/psa-crypto/0.10.0;name=psa-crypto-0.10.0 \
crate://crates.io/psa-crypto-sys/0.10.0;name=psa-crypto-sys-0.10.0 \
crate://crates.io/quote/1.0.26;name=quote-1.0.26 \
crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
crate://crates.io/redox_syscall/0.2.16;name=redox_syscall-0.2.16 \
crate://crates.io/regex/1.7.1;name=regex-1.7.1 \
crate://crates.io/regex-syntax/0.6.28;name=regex-syntax-0.6.28 \
crate://crates.io/ring/0.16.20;name=ring-0.16.20 \
crate://crates.io/rusqlite/0.28.0;name=rusqlite-0.28.0 \
crate://crates.io/rust-cryptoauthlib/0.4.5;name=rust-cryptoauthlib-0.4.5 \
crate://crates.io/rustc-hash/1.1.0;name=rustc-hash-1.1.0 \
crate://crates.io/rustc_version/0.3.3;name=rustc_version-0.3.3 \
crate://crates.io/rusticata-macros/4.1.0;name=rusticata-macros-4.1.0 \
crate://crates.io/rustix/0.36.9;name=rustix-0.36.9 \
crate://crates.io/ryu/1.0.13;name=ryu-1.0.13 \
crate://crates.io/same-file/1.0.6;name=same-file-1.0.6 \
crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \
crate://crates.io/sd-notify/0.3.0;name=sd-notify-0.3.0 \
crate://crates.io/secrecy/0.7.0;name=secrecy-0.7.0 \
crate://crates.io/semver/0.11.0;name=semver-0.11.0 \
crate://crates.io/semver-parser/0.10.2;name=semver-parser-0.10.2 \
crate://crates.io/serde/1.0.156;name=serde-1.0.156 \
crate://crates.io/serde_bytes/0.11.9;name=serde_bytes-0.11.9 \
crate://crates.io/serde_derive/1.0.156;name=serde_derive-1.0.156 \
crate://crates.io/serde_json/1.0.94;name=serde_json-1.0.94 \
crate://crates.io/shlex/0.1.1;name=shlex-0.1.1 \
crate://crates.io/shlex/1.1.0;name=shlex-1.1.0 \
crate://crates.io/signal-hook/0.3.15;name=signal-hook-0.3.15 \
crate://crates.io/signal-hook-registry/1.4.1;name=signal-hook-registry-1.4.1 \
crate://crates.io/simple_asn1/0.6.2;name=simple_asn1-0.6.2 \
crate://crates.io/slab/0.4.8;name=slab-0.4.8 \
crate://crates.io/smallvec/1.10.0;name=smallvec-1.10.0 \
crate://crates.io/spiffe/0.2.1;name=spiffe-0.2.1 \
crate://crates.io/spin/0.5.2;name=spin-0.5.2 \
crate://crates.io/spki/0.5.4;name=spki-0.5.4 \
crate://crates.io/stable_deref_trait/1.2.0;name=stable_deref_trait-1.2.0 \
crate://crates.io/strsim/0.8.0;name=strsim-0.8.0 \
crate://crates.io/structopt/0.3.26;name=structopt-0.3.26 \
crate://crates.io/structopt-derive/0.4.18;name=structopt-derive-0.4.18 \
crate://crates.io/strum_macros/0.21.1;name=strum_macros-0.21.1 \
crate://crates.io/syn/1.0.109;name=syn-1.0.109 \
crate://crates.io/synstructure/0.12.6;name=synstructure-0.12.6 \
crate://crates.io/target-lexicon/0.12.6;name=target-lexicon-0.12.6 \
crate://crates.io/tempfile/3.4.0;name=tempfile-3.4.0 \
crate://crates.io/termcolor/1.2.0;name=termcolor-1.2.0 \
crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
crate://crates.io/thiserror/1.0.39;name=thiserror-1.0.39 \
crate://crates.io/thiserror-impl/1.0.39;name=thiserror-impl-1.0.39 \
crate://crates.io/threadpool/1.8.1;name=threadpool-1.8.1 \
crate://crates.io/time/0.3.15;name=time-0.3.15 \
crate://crates.io/time-macros/0.2.4;name=time-macros-0.2.4 \
crate://crates.io/tinyvec/1.6.0;name=tinyvec-1.6.0 \
crate://crates.io/tinyvec_macros/0.1.1;name=tinyvec_macros-0.1.1 \
crate://crates.io/toml/0.5.11;name=toml-0.5.11 \
crate://crates.io/tss-esapi/7.2.0;name=tss-esapi-7.2.0 \
crate://crates.io/tss-esapi-sys/0.4.0;name=tss-esapi-sys-0.4.0 \
crate://crates.io/typenum/1.16.0;name=typenum-1.16.0 \
crate://crates.io/ucd-trie/0.1.5;name=ucd-trie-0.1.5 \
crate://crates.io/unicode-bidi/0.3.11;name=unicode-bidi-0.3.11 \
crate://crates.io/unicode-ident/1.0.8;name=unicode-ident-1.0.8 \
crate://crates.io/unicode-normalization/0.1.22;name=unicode-normalization-0.1.22 \
crate://crates.io/unicode-segmentation/1.10.1;name=unicode-segmentation-1.10.1 \
crate://crates.io/unicode-width/0.1.10;name=unicode-width-0.1.10 \
crate://crates.io/unicode-xid/0.2.4;name=unicode-xid-0.2.4 \
crate://crates.io/untrusted/0.7.1;name=untrusted-0.7.1 \
crate://crates.io/url/2.3.1;name=url-2.3.1 \
crate://crates.io/users/0.11.0;name=users-0.11.0 \
crate://crates.io/uuid/0.8.2;name=uuid-0.8.2 \
crate://crates.io/vcpkg/0.2.15;name=vcpkg-0.2.15 \
crate://crates.io/vec_map/0.8.2;name=vec_map-0.8.2 \
crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \
crate://crates.io/walkdir/2.3.2;name=walkdir-2.3.2 \
crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
crate://crates.io/wasm-bindgen/0.2.84;name=wasm-bindgen-0.2.84 \
crate://crates.io/wasm-bindgen-backend/0.2.84;name=wasm-bindgen-backend-0.2.84 \
crate://crates.io/wasm-bindgen-macro/0.2.84;name=wasm-bindgen-macro-0.2.84 \
crate://crates.io/wasm-bindgen-macro-support/0.2.84;name=wasm-bindgen-macro-support-0.2.84 \
crate://crates.io/wasm-bindgen-shared/0.2.84;name=wasm-bindgen-shared-0.2.84 \
crate://crates.io/web-sys/0.3.61;name=web-sys-0.3.61 \
crate://crates.io/which/4.4.0;name=which-4.4.0 \
crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
crate://crates.io/windows-sys/0.42.0;name=windows-sys-0.42.0 \
crate://crates.io/windows-sys/0.45.0;name=windows-sys-0.45.0 \
crate://crates.io/windows-targets/0.42.2;name=windows-targets-0.42.2 \
crate://crates.io/windows_aarch64_gnullvm/0.42.2;name=windows_aarch64_gnullvm-0.42.2 \
crate://crates.io/windows_aarch64_msvc/0.42.2;name=windows_aarch64_msvc-0.42.2 \
crate://crates.io/windows_i686_gnu/0.42.2;name=windows_i686_gnu-0.42.2 \
crate://crates.io/windows_i686_msvc/0.42.2;name=windows_i686_msvc-0.42.2 \
crate://crates.io/windows_x86_64_gnu/0.42.2;name=windows_x86_64_gnu-0.42.2 \
crate://crates.io/windows_x86_64_gnullvm/0.42.2;name=windows_x86_64_gnullvm-0.42.2 \
crate://crates.io/windows_x86_64_msvc/0.42.2;name=windows_x86_64_msvc-0.42.2 \
crate://crates.io/x509-parser/0.13.2;name=x509-parser-0.13.2 \
crate://crates.io/yasna/0.4.0;name=yasna-0.4.0 \
crate://crates.io/zeroize/1.5.7;name=zeroize-1.5.7 \
crate://crates.io/zeroize_derive/1.3.3;name=zeroize_derive-1.3.3 \
"
SRC_URI[ahash-0.7.6.sha256sum] = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
SRC_URI[aho-corasick-0.7.20.sha256sum] = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
SRC_URI[anyhow-1.0.69.sha256sum] = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
SRC_URI[asn1-rs-0.3.1.sha256sum] = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33"
SRC_URI[asn1-rs-derive-0.1.0.sha256sum] = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf"
SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
SRC_URI[bincode-1.3.3.sha256sum] = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
SRC_URI[bindgen-0.57.0.sha256sum] = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d"
SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
SRC_URI[bitfield-0.13.2.sha256sum] = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719"
SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
SRC_URI[bytes-1.4.0.sha256sum] = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
SRC_URI[cexpr-0.4.0.sha256sum] = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
SRC_URI[clang-sys-1.6.0.sha256sum] = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a"
SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
SRC_URI[cmake-0.1.45.sha256sum] = "eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855"
SRC_URI[const-oid-0.7.1.sha256sum] = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
SRC_URI[cryptoauthlib-sys-0.2.2.sha256sum] = "da232dd4f06ee4600b33a455bb17fcc6c2c3a54ee7fd60496d3a73668a6cb6e4"
SRC_URI[cryptoki-0.3.1.sha256sum] = "570006e51d08ec89ce5bbfdcf428ad96111636d524bf2447bee6377fd0e1d889"
SRC_URI[cryptoki-sys-0.1.5.sha256sum] = "1d12231889cbf7e11d2965a063d9518bc7aac60c5b125dc61c8ff2111a160eae"
SRC_URI[data-encoding-2.3.3.sha256sum] = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
SRC_URI[der-0.5.1.sha256sum] = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
SRC_URI[der-parser-7.0.0.sha256sum] = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82"
SRC_URI[derivative-2.2.0.sha256sum] = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
SRC_URI[displaydoc-0.2.3.sha256sum] = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
SRC_URI[enumflags2-0.7.5.sha256sum] = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
SRC_URI[enumflags2_derive-0.7.4.sha256sum] = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
SRC_URI[errno-0.2.8.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
SRC_URI[fallible-iterator-0.2.0.sha256sum] = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
SRC_URI[fallible-streaming-iterator-0.1.9.sha256sum] = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
SRC_URI[fixedbitset-0.2.0.sha256sum] = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d"
SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
SRC_URI[futures-0.3.27.sha256sum] = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549"
SRC_URI[futures-channel-0.3.27.sha256sum] = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
SRC_URI[futures-core-0.3.27.sha256sum] = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
SRC_URI[futures-executor-0.3.27.sha256sum] = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
SRC_URI[futures-io-0.3.27.sha256sum] = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
SRC_URI[futures-macro-0.3.27.sha256sum] = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
SRC_URI[futures-sink-0.3.27.sha256sum] = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2"
SRC_URI[futures-task-0.3.27.sha256sum] = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
SRC_URI[futures-util-0.3.27.sha256sum] = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
SRC_URI[grpcio-0.9.1.sha256sum] = "24d99e00eed7e0a04ee2705112e7cfdbe1a3cc771147f22f016a8cd2d002187b"
SRC_URI[grpcio-sys-0.9.1+1.38.0.sha256sum] = "9447d1a926beeef466606cc45717f80897998b548e7dc622873d453e1ecb4be4"
SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
SRC_URI[hashlink-0.8.1.sha256sum] = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa"
SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
SRC_URI[hostname-validator-1.1.1.sha256sum] = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2"
SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
SRC_URI[indexmap-1.9.2.sha256sum] = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
SRC_URI[io-lifetimes-1.0.6.sha256sum] = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3"
SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
SRC_URI[jsonwebkey-0.3.5.sha256sum] = "c57c852b14147e2bd58c14fde40398864453403ef632b1101db130282ee6e2cc"
SRC_URI[jsonwebtoken-8.2.0.sha256sum] = "09f4f04699947111ec1733e71778d763555737579e44b85844cae8e1940a1828"
SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
SRC_URI[libsqlite3-sys-0.25.2.sha256sum] = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa"
SRC_URI[libz-sys-1.1.8.sha256sum] = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
SRC_URI[mbox-0.6.0.sha256sum] = "0f88d5c34d63aad11aa4321ef55ccb064af58b3ad8091079ae22bf83e5eb75d6"
SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
SRC_URI[multimap-0.8.3.sha256sum] = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
SRC_URI[nom-5.1.2.sha256sum] = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
SRC_URI[num-0.4.0.sha256sum] = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
SRC_URI[num-complex-0.4.3.sha256sum] = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d"
SRC_URI[num-derive-0.3.3.sha256sum] = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
SRC_URI[num-iter-0.1.43.sha256sum] = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
SRC_URI[num-rational-0.4.1.sha256sum] = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
SRC_URI[num_cpus-1.15.0.sha256sum] = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
SRC_URI[oid-0.2.1.sha256sum] = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2"
SRC_URI[oid-registry-0.4.0.sha256sum] = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a"
SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
SRC_URI[parking_lot-0.11.2.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
SRC_URI[parking_lot_core-0.8.6.sha256sum] = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
SRC_URI[parsec-interface-0.28.0.sha256sum] = "f6f1b90789d4cabb8d7100a2ce632baad9683c2598f302d2387d9a45f967de56"
SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
SRC_URI[pem-1.1.1.sha256sum] = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
SRC_URI[percent-encoding-2.2.0.sha256sum] = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
SRC_URI[pest-2.5.6.sha256sum] = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7"
SRC_URI[petgraph-0.5.1.sha256sum] = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7"
SRC_URI[picky-asn1-0.3.3.sha256sum] = "889bbb26c80acf919e89980dfc8e04eb19df272d8a9893ec9b748d3a1675abde"
SRC_URI[picky-asn1-der-0.2.5.sha256sum] = "acbbd5390ab967396cc7473e6e0848684aec7166e657c6088604e07b54a73dbe"
SRC_URI[picky-asn1-x509-0.6.1.sha256sum] = "f3033675030de806aba1d5470949701b7c9f1dbf77e3bb17bd12e5f945e560ba"
SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
SRC_URI[pkcs8-0.8.0.sha256sum] = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
SRC_URI[proc-macro2-1.0.52.sha256sum] = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
SRC_URI[prost-0.8.0.sha256sum] = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
SRC_URI[prost-build-0.8.0.sha256sum] = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603"
SRC_URI[prost-derive-0.8.0.sha256sum] = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
SRC_URI[prost-types-0.8.0.sha256sum] = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b"
SRC_URI[protobuf-2.28.0.sha256sum] = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
SRC_URI[psa-crypto-0.10.0.sha256sum] = "31a7f20ebf21c7a53dd8aa24a11bd4cc9f3f838f0de1b32e17cb6cd4f88fdf7f"
SRC_URI[psa-crypto-sys-0.10.0.sha256sum] = "0d3f19716e0584f8d5627712617b1cc5b9b642943fd9a61b883b8d533f5d400c"
SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
SRC_URI[regex-1.7.1.sha256sum] = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
SRC_URI[regex-syntax-0.6.28.sha256sum] = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
SRC_URI[ring-0.16.20.sha256sum] = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
SRC_URI[rusqlite-0.28.0.sha256sum] = "01e213bc3ecb39ac32e81e51ebe31fd888a940515173e3a18a35f8c6e896422a"
SRC_URI[rust-cryptoauthlib-0.4.5.sha256sum] = "adab07508c090715a5cd3d072f2b8ab60d7e9e04c5af19e1d3d819651b5b25a2"
SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
SRC_URI[rustc_version-0.3.3.sha256sum] = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
SRC_URI[rustix-0.36.9.sha256sum] = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc"
SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
SRC_URI[sd-notify-0.3.0.sha256sum] = "0cd08a21f852bd2fe42e3b2a6c76a0db6a95a5b5bd29c0521dd0b30fa1712ec8"
SRC_URI[secrecy-0.7.0.sha256sum] = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0"
SRC_URI[semver-0.11.0.sha256sum] = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
SRC_URI[semver-parser-0.10.2.sha256sum] = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
SRC_URI[serde-1.0.156.sha256sum] = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4"
SRC_URI[serde_bytes-0.11.9.sha256sum] = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294"
SRC_URI[serde_derive-1.0.156.sha256sum] = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d"
SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
SRC_URI[shlex-0.1.1.sha256sum] = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
SRC_URI[shlex-1.1.0.sha256sum] = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
SRC_URI[signal-hook-0.3.15.sha256sum] = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
SRC_URI[signal-hook-registry-1.4.1.sha256sum] = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
SRC_URI[simple_asn1-0.6.2.sha256sum] = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
SRC_URI[spiffe-0.2.1.sha256sum] = "f30161ecb25b9acc06eb61d750aaf1c4b3a536e22ff19fc2d250976537e93a11"
SRC_URI[spin-0.5.2.sha256sum] = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
SRC_URI[spki-0.5.4.sha256sum] = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
SRC_URI[stable_deref_trait-1.2.0.sha256sum] = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
SRC_URI[structopt-0.3.26.sha256sum] = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
SRC_URI[structopt-derive-0.4.18.sha256sum] = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
SRC_URI[strum_macros-0.21.1.sha256sum] = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec"
SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
SRC_URI[target-lexicon-0.12.6.sha256sum] = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5"
SRC_URI[tempfile-3.4.0.sha256sum] = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
SRC_URI[thiserror-1.0.39.sha256sum] = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c"
SRC_URI[thiserror-impl-1.0.39.sha256sum] = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e"
SRC_URI[threadpool-1.8.1.sha256sum] = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
SRC_URI[time-0.3.15.sha256sum] = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c"
SRC_URI[time-macros-0.2.4.sha256sum] = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792"
SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
SRC_URI[tss-esapi-7.2.0.sha256sum] = "891582e26e83f2cbd608b18cbd7ffb921482740524187a2bca20cf44a286547b"
SRC_URI[tss-esapi-sys-0.4.0.sha256sum] = "e7b8be553262e0924410fe96404830252477f175f228081f21cb0bd87f2ccebe"
SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
SRC_URI[ucd-trie-0.1.5.sha256sum] = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
SRC_URI[unicode-bidi-0.3.11.sha256sum] = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c"
SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
SRC_URI[untrusted-0.7.1.sha256sum] = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
SRC_URI[users-0.11.0.sha256sum] = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032"
SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
SRC_URI[which-4.4.0.sha256sum] = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
SRC_URI[windows-sys-0.42.0.sha256sum] = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
SRC_URI[x509-parser-0.13.2.sha256sum] = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c"
SRC_URI[yasna-0.4.0.sha256sum] = "e262a29d0e61ccf2b6190d7050d4b237535fc76ce4c1210d9caa316f71dffa75"
SRC_URI[zeroize-1.5.7.sha256sum] = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
SRC_URI[zeroize_derive-1.3.3.sha256sum] = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c"
@@ -0,0 +1,96 @@
SUMMARY = "Platform AbstRaction for SECurity Daemon"
HOMEPAGE = "https://github.com/parallaxsecond/parsec"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
inherit cargo pkgconfig cargo-update-recipe-crates
DEPENDS += "clang-native"
SRC_URI += "crate://crates.io/parsec-service/${PV} \
file://parsec_init \
file://systemd.patch \
file://parsec-tmpfiles.conf \
"
SRC_URI[parsec-service-1.2.0.sha256sum] = "f58e7ba859c22cc1904dc8298b1a7d94ee1ba3b4d4808f28e4cc0c96ddb149c9"
B = "${CARGO_VENDORING_DIRECTORY}/${BP}"
PACKAGECONFIG ??= "PKCS11 MBED-CRYPTO"
have_TPM = "${@bb.utils.contains('DISTRO_FEATURES', 'tpm2', 'TPM', '', d)}"
PACKAGECONFIG:append = " ${@bb.utils.contains('BBFILE_COLLECTIONS', 'tpm-layer', '${have_TPM}', '', d)}"
PACKAGECONFIG[ALL] = "all-providers cryptoki/generate-bindings tss-esapi/generate-bindings,,tpm2-tss libts,tpm2-tss libtss2-tcti-device libts"
PACKAGECONFIG[TPM] = "tpm-provider tss-esapi/generate-bindings,,tpm2-tss,tpm2-tss libtss2-tcti-device"
PACKAGECONFIG[PKCS11] = "pkcs11-provider cryptoki/generate-bindings,"
PACKAGECONFIG[MBED-CRYPTO] = "mbed-crypto-provider,"
PACKAGECONFIG[CRYPTOAUTHLIB] = "cryptoauthlib-provider,"
PACKAGECONFIG[TS] = "trusted-service-provider,,libts,libts"
PARSEC_FEATURES = "${@d.getVar('PACKAGECONFIG_CONFARGS',True).strip().replace(' ', ',')}"
CARGO_BUILD_FLAGS += " --features ${PARSEC_FEATURES}"
export BINDGEN_EXTRA_CLANG_ARGS
target = "${@d.getVar('TARGET_SYS',True).replace('-', ' ')}"
BINDGEN_EXTRA_CLANG_ARGS = "${@bb.utils.contains('target', 'arm', \
'--sysroot=${WORKDIR}/recipe-sysroot -I${WORKDIR}/recipe-sysroot/usr/include -mfloat-abi=hard', \
'--sysroot=${WORKDIR}/recipe-sysroot -I${WORKDIR}/recipe-sysroot/usr/include', \
d)}"
inherit systemd
SYSTEMD_SERVICE:${PN} = "parsec.service"
inherit update-rc.d
INITSCRIPT_NAME = "parsec"
# A local file can be defined in build/local.conf
# The file should also be included into SRC_URI then
PARSEC_CONFIG ?= "${S}/config.toml"
do_install () {
# Binaries
install -d -m 700 -o parsec -g parsec "${D}${libexecdir}/parsec"
install -m 700 -o parsec -g parsec "${B}/target/${CARGO_TARGET_SUBDIR}/parsec" ${D}${libexecdir}/parsec/parsec
# Config file
install -d -m 700 -o parsec -g parsec "${D}${sysconfdir}/parsec"
install -m 400 -o parsec -g parsec "${PARSEC_CONFIG}" ${D}${sysconfdir}/parsec/config.toml
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 644 ${S}/systemd-daemon/parsec.service ${D}${systemd_unitdir}/system
install -d ${D}${libdir}/tmpfiles.d
install -m 644 ${WORKDIR}/parsec-tmpfiles.conf ${D}${libdir}/tmpfiles.d
fi
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/init.d
install -m 755 ${WORKDIR}/parsec_init ${D}${sysconfdir}/init.d/parsec
# Data dir
install -d -m 700 -o parsec -g parsec "${D}${localstatedir}/lib/parsec"
fi
}
inherit useradd
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM:${PN} = "-r parsec"
USERADD_PARAM:${PN} = "-r -g parsec -s /bin/false -d ${localstatedir}/lib/parsec parsec"
GROUPMEMS_PARAM:${PN} = "${@bb.utils.contains('PACKAGECONFIG_CONFARGS', 'tpm-provider', '-a parsec -g tss ;', '', d)}"
GROUPMEMS_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG_CONFARGS', 'trusted-service-provider', '-a parsec -g teeclnt', '', d)}"
FILES:${PN} += " \
${sysconfdir}/parsec/config.toml \
${libexecdir}/parsec/parsec \
${systemd_unitdir}/system/parsec.service \
${libdir}/tmpfiles.d/parsec-tmpfiles.conf \
${sysconfdir}/init.d/parsec \
"
require parsec-service-crates.inc
# The QA check has been temporarily disabled. An issue has been created
# upstream to fix this.
# https://github.com/parallaxsecond/parsec/issues/645
INSANE_SKIP:${PN}-dbg += "buildpaths"
@@ -0,0 +1,346 @@
# Autogenerated with 'bitbake -c update_crates parsec-tool'
# from Cargo.lock
SRC_URI += " \
crate://crates.io/aho-corasick/0.7.20;name=aho-corasick-0.7.20 \
crate://crates.io/ansi_term/0.12.1;name=ansi_term-0.12.1 \
crate://crates.io/anyhow/1.0.69;name=anyhow-1.0.69 \
crate://crates.io/asn1-rs/0.3.1;name=asn1-rs-0.3.1 \
crate://crates.io/asn1-rs-derive/0.1.0;name=asn1-rs-derive-0.1.0 \
crate://crates.io/asn1-rs-impl/0.1.0;name=asn1-rs-impl-0.1.0 \
crate://crates.io/atty/0.2.14;name=atty-0.2.14 \
crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \
crate://crates.io/base64/0.13.1;name=base64-0.13.1 \
crate://crates.io/base64/0.21.0;name=base64-0.21.0 \
crate://crates.io/bincode/1.3.3;name=bincode-1.3.3 \
crate://crates.io/bindgen/0.57.0;name=bindgen-0.57.0 \
crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \
crate://crates.io/block-buffer/0.9.0;name=block-buffer-0.9.0 \
crate://crates.io/bumpalo/3.12.0;name=bumpalo-3.12.0 \
crate://crates.io/bytes/1.4.0;name=bytes-1.4.0 \
crate://crates.io/cc/1.0.79;name=cc-1.0.79 \
crate://crates.io/cexpr/0.4.0;name=cexpr-0.4.0 \
crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
crate://crates.io/clang-sys/1.6.0;name=clang-sys-1.6.0 \
crate://crates.io/clap/2.34.0;name=clap-2.34.0 \
crate://crates.io/cmake/0.1.45;name=cmake-0.1.45 \
crate://crates.io/const-oid/0.7.1;name=const-oid-0.7.1 \
crate://crates.io/cpufeatures/0.2.6;name=cpufeatures-0.2.6 \
crate://crates.io/data-encoding/2.3.3;name=data-encoding-2.3.3 \
crate://crates.io/der/0.5.1;name=der-0.5.1 \
crate://crates.io/der-parser/7.0.0;name=der-parser-7.0.0 \
crate://crates.io/derivative/2.2.0;name=derivative-2.2.0 \
crate://crates.io/digest/0.9.0;name=digest-0.9.0 \
crate://crates.io/displaydoc/0.2.3;name=displaydoc-0.2.3 \
crate://crates.io/either/1.8.1;name=either-1.8.1 \
crate://crates.io/env_logger/0.8.4;name=env_logger-0.8.4 \
crate://crates.io/form_urlencoded/1.1.0;name=form_urlencoded-1.1.0 \
crate://crates.io/futures/0.3.27;name=futures-0.3.27 \
crate://crates.io/futures-channel/0.3.27;name=futures-channel-0.3.27 \
crate://crates.io/futures-core/0.3.27;name=futures-core-0.3.27 \
crate://crates.io/futures-executor/0.3.27;name=futures-executor-0.3.27 \
crate://crates.io/futures-io/0.3.27;name=futures-io-0.3.27 \
crate://crates.io/futures-macro/0.3.27;name=futures-macro-0.3.27 \
crate://crates.io/futures-sink/0.3.27;name=futures-sink-0.3.27 \
crate://crates.io/futures-task/0.3.27;name=futures-task-0.3.27 \
crate://crates.io/futures-util/0.3.27;name=futures-util-0.3.27 \
crate://crates.io/generic-array/0.14.6;name=generic-array-0.14.6 \
crate://crates.io/glob/0.3.1;name=glob-0.3.1 \
crate://crates.io/grpcio/0.9.1;name=grpcio-0.9.1 \
crate://crates.io/grpcio-sys/0.9.1+1.38.0;name=grpcio-sys-0.9.1+1.38.0 \
crate://crates.io/heck/0.3.3;name=heck-0.3.3 \
crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
crate://crates.io/humantime/2.1.0;name=humantime-2.1.0 \
crate://crates.io/idna/0.3.0;name=idna-0.3.0 \
crate://crates.io/instant/0.1.12;name=instant-0.1.12 \
crate://crates.io/itertools/0.10.5;name=itertools-0.10.5 \
crate://crates.io/itoa/1.0.6;name=itoa-1.0.6 \
crate://crates.io/js-sys/0.3.61;name=js-sys-0.3.61 \
crate://crates.io/jsonwebkey/0.3.5;name=jsonwebkey-0.3.5 \
crate://crates.io/jsonwebtoken/8.3.0;name=jsonwebtoken-8.3.0 \
crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
crate://crates.io/lazycell/1.3.0;name=lazycell-1.3.0 \
crate://crates.io/libc/0.2.140;name=libc-0.2.140 \
crate://crates.io/libloading/0.7.4;name=libloading-0.7.4 \
crate://crates.io/libz-sys/1.1.8;name=libz-sys-1.1.8 \
crate://crates.io/lock_api/0.4.9;name=lock_api-0.4.9 \
crate://crates.io/log/0.4.17;name=log-0.4.17 \
crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \
crate://crates.io/minimal-lexical/0.2.1;name=minimal-lexical-0.2.1 \
crate://crates.io/nom/5.1.2;name=nom-5.1.2 \
crate://crates.io/nom/7.1.3;name=nom-7.1.3 \
crate://crates.io/num/0.4.0;name=num-0.4.0 \
crate://crates.io/num-bigint/0.4.3;name=num-bigint-0.4.3 \
crate://crates.io/num-complex/0.4.3;name=num-complex-0.4.3 \
crate://crates.io/num-derive/0.3.3;name=num-derive-0.3.3 \
crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \
crate://crates.io/num-iter/0.1.43;name=num-iter-0.1.43 \
crate://crates.io/num-rational/0.4.1;name=num-rational-0.4.1 \
crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \
crate://crates.io/oid/0.2.1;name=oid-0.2.1 \
crate://crates.io/oid-registry/0.4.0;name=oid-registry-0.4.0 \
crate://crates.io/once_cell/1.17.1;name=once_cell-1.17.1 \
crate://crates.io/opaque-debug/0.3.0;name=opaque-debug-0.3.0 \
crate://crates.io/parking_lot/0.11.2;name=parking_lot-0.11.2 \
crate://crates.io/parking_lot_core/0.8.6;name=parking_lot_core-0.8.6 \
crate://crates.io/parsec-client/0.15.0;name=parsec-client-0.15.0 \
crate://crates.io/parsec-interface/0.28.0;name=parsec-interface-0.28.0 \
crate://crates.io/peeking_take_while/0.1.2;name=peeking_take_while-0.1.2 \
crate://crates.io/pem/1.1.1;name=pem-1.1.1 \
crate://crates.io/percent-encoding/2.2.0;name=percent-encoding-2.2.0 \
crate://crates.io/picky-asn1/0.3.3;name=picky-asn1-0.3.3 \
crate://crates.io/picky-asn1-der/0.2.5;name=picky-asn1-der-0.2.5 \
crate://crates.io/picky-asn1-x509/0.6.1;name=picky-asn1-x509-0.6.1 \
crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \
crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \
crate://crates.io/pkcs8/0.8.0;name=pkcs8-0.8.0 \
crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
crate://crates.io/proc-macro-error/1.0.4;name=proc-macro-error-1.0.4 \
crate://crates.io/proc-macro-error-attr/1.0.4;name=proc-macro-error-attr-1.0.4 \
crate://crates.io/proc-macro2/1.0.52;name=proc-macro2-1.0.52 \
crate://crates.io/prost/0.8.0;name=prost-0.8.0 \
crate://crates.io/prost-derive/0.8.0;name=prost-derive-0.8.0 \
crate://crates.io/protobuf/2.28.0;name=protobuf-2.28.0 \
crate://crates.io/psa-crypto/0.10.0;name=psa-crypto-0.10.0 \
crate://crates.io/psa-crypto-sys/0.10.0;name=psa-crypto-sys-0.10.0 \
crate://crates.io/quote/1.0.26;name=quote-1.0.26 \
crate://crates.io/rcgen/0.9.3;name=rcgen-0.9.3 \
crate://crates.io/redox_syscall/0.2.16;name=redox_syscall-0.2.16 \
crate://crates.io/regex/1.7.1;name=regex-1.7.1 \
crate://crates.io/regex-syntax/0.6.28;name=regex-syntax-0.6.28 \
crate://crates.io/ring/0.16.20;name=ring-0.16.20 \
crate://crates.io/rustc-hash/1.1.0;name=rustc-hash-1.1.0 \
crate://crates.io/rusticata-macros/4.1.0;name=rusticata-macros-4.1.0 \
crate://crates.io/ryu/1.0.13;name=ryu-1.0.13 \
crate://crates.io/same-file/1.0.6;name=same-file-1.0.6 \
crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \
crate://crates.io/secrecy/0.7.0;name=secrecy-0.7.0 \
crate://crates.io/serde/1.0.158;name=serde-1.0.158 \
crate://crates.io/serde_bytes/0.11.9;name=serde_bytes-0.11.9 \
crate://crates.io/serde_derive/1.0.158;name=serde_derive-1.0.158 \
crate://crates.io/serde_json/1.0.94;name=serde_json-1.0.94 \
crate://crates.io/sha2/0.9.9;name=sha2-0.9.9 \
crate://crates.io/shlex/0.1.1;name=shlex-0.1.1 \
crate://crates.io/simple_asn1/0.6.2;name=simple_asn1-0.6.2 \
crate://crates.io/slab/0.4.8;name=slab-0.4.8 \
crate://crates.io/smallvec/1.10.0;name=smallvec-1.10.0 \
crate://crates.io/spiffe/0.2.1;name=spiffe-0.2.1 \
crate://crates.io/spin/0.5.2;name=spin-0.5.2 \
crate://crates.io/spki/0.5.4;name=spki-0.5.4 \
crate://crates.io/strsim/0.8.0;name=strsim-0.8.0 \
crate://crates.io/structopt/0.3.26;name=structopt-0.3.26 \
crate://crates.io/structopt-derive/0.4.18;name=structopt-derive-0.4.18 \
crate://crates.io/syn/1.0.109;name=syn-1.0.109 \
crate://crates.io/syn/2.0.10;name=syn-2.0.10 \
crate://crates.io/synstructure/0.12.6;name=synstructure-0.12.6 \
crate://crates.io/termcolor/1.2.0;name=termcolor-1.2.0 \
crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
crate://crates.io/thiserror/1.0.40;name=thiserror-1.0.40 \
crate://crates.io/thiserror-impl/1.0.40;name=thiserror-impl-1.0.40 \
crate://crates.io/time/0.3.20;name=time-0.3.20 \
crate://crates.io/time-core/0.1.0;name=time-core-0.1.0 \
crate://crates.io/time-macros/0.2.8;name=time-macros-0.2.8 \
crate://crates.io/tinyvec/1.6.0;name=tinyvec-1.6.0 \
crate://crates.io/tinyvec_macros/0.1.1;name=tinyvec_macros-0.1.1 \
crate://crates.io/typenum/1.16.0;name=typenum-1.16.0 \
crate://crates.io/unicode-bidi/0.3.13;name=unicode-bidi-0.3.13 \
crate://crates.io/unicode-ident/1.0.8;name=unicode-ident-1.0.8 \
crate://crates.io/unicode-normalization/0.1.22;name=unicode-normalization-0.1.22 \
crate://crates.io/unicode-segmentation/1.10.1;name=unicode-segmentation-1.10.1 \
crate://crates.io/unicode-width/0.1.10;name=unicode-width-0.1.10 \
crate://crates.io/unicode-xid/0.2.4;name=unicode-xid-0.2.4 \
crate://crates.io/untrusted/0.7.1;name=untrusted-0.7.1 \
crate://crates.io/url/2.3.1;name=url-2.3.1 \
crate://crates.io/users/0.11.0;name=users-0.11.0 \
crate://crates.io/uuid/0.8.2;name=uuid-0.8.2 \
crate://crates.io/vcpkg/0.2.15;name=vcpkg-0.2.15 \
crate://crates.io/vec_map/0.8.2;name=vec_map-0.8.2 \
crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \
crate://crates.io/walkdir/2.3.2;name=walkdir-2.3.2 \
crate://crates.io/wasm-bindgen/0.2.84;name=wasm-bindgen-0.2.84 \
crate://crates.io/wasm-bindgen-backend/0.2.84;name=wasm-bindgen-backend-0.2.84 \
crate://crates.io/wasm-bindgen-macro/0.2.84;name=wasm-bindgen-macro-0.2.84 \
crate://crates.io/wasm-bindgen-macro-support/0.2.84;name=wasm-bindgen-macro-support-0.2.84 \
crate://crates.io/wasm-bindgen-shared/0.2.84;name=wasm-bindgen-shared-0.2.84 \
crate://crates.io/web-sys/0.3.61;name=web-sys-0.3.61 \
crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
crate://crates.io/x509-parser/0.13.2;name=x509-parser-0.13.2 \
crate://crates.io/yasna/0.4.0;name=yasna-0.4.0 \
crate://crates.io/yasna/0.5.1;name=yasna-0.5.1 \
crate://crates.io/zeroize/1.5.7;name=zeroize-1.5.7 \
crate://crates.io/zeroize_derive/1.3.3;name=zeroize_derive-1.3.3 \
"
SRC_URI[aho-corasick-0.7.20.sha256sum] = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
SRC_URI[anyhow-1.0.69.sha256sum] = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
SRC_URI[asn1-rs-0.3.1.sha256sum] = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33"
SRC_URI[asn1-rs-derive-0.1.0.sha256sum] = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf"
SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
SRC_URI[base64-0.21.0.sha256sum] = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
SRC_URI[bincode-1.3.3.sha256sum] = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
SRC_URI[bindgen-0.57.0.sha256sum] = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d"
SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
SRC_URI[block-buffer-0.9.0.sha256sum] = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
SRC_URI[bytes-1.4.0.sha256sum] = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
SRC_URI[cexpr-0.4.0.sha256sum] = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
SRC_URI[clang-sys-1.6.0.sha256sum] = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a"
SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
SRC_URI[cmake-0.1.45.sha256sum] = "eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855"
SRC_URI[const-oid-0.7.1.sha256sum] = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
SRC_URI[cpufeatures-0.2.6.sha256sum] = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181"
SRC_URI[data-encoding-2.3.3.sha256sum] = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
SRC_URI[der-0.5.1.sha256sum] = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
SRC_URI[der-parser-7.0.0.sha256sum] = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82"
SRC_URI[derivative-2.2.0.sha256sum] = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
SRC_URI[digest-0.9.0.sha256sum] = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
SRC_URI[displaydoc-0.2.3.sha256sum] = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
SRC_URI[futures-0.3.27.sha256sum] = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549"
SRC_URI[futures-channel-0.3.27.sha256sum] = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
SRC_URI[futures-core-0.3.27.sha256sum] = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
SRC_URI[futures-executor-0.3.27.sha256sum] = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
SRC_URI[futures-io-0.3.27.sha256sum] = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
SRC_URI[futures-macro-0.3.27.sha256sum] = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
SRC_URI[futures-sink-0.3.27.sha256sum] = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2"
SRC_URI[futures-task-0.3.27.sha256sum] = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
SRC_URI[futures-util-0.3.27.sha256sum] = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
SRC_URI[grpcio-0.9.1.sha256sum] = "24d99e00eed7e0a04ee2705112e7cfdbe1a3cc771147f22f016a8cd2d002187b"
SRC_URI[grpcio-sys-0.9.1+1.38.0.sha256sum] = "9447d1a926beeef466606cc45717f80897998b548e7dc622873d453e1ecb4be4"
SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
SRC_URI[jsonwebkey-0.3.5.sha256sum] = "c57c852b14147e2bd58c14fde40398864453403ef632b1101db130282ee6e2cc"
SRC_URI[jsonwebtoken-8.3.0.sha256sum] = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
SRC_URI[libz-sys-1.1.8.sha256sum] = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
SRC_URI[nom-5.1.2.sha256sum] = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
SRC_URI[num-0.4.0.sha256sum] = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
SRC_URI[num-complex-0.4.3.sha256sum] = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d"
SRC_URI[num-derive-0.3.3.sha256sum] = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
SRC_URI[num-iter-0.1.43.sha256sum] = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
SRC_URI[num-rational-0.4.1.sha256sum] = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
SRC_URI[oid-0.2.1.sha256sum] = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2"
SRC_URI[oid-registry-0.4.0.sha256sum] = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a"
SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
SRC_URI[opaque-debug-0.3.0.sha256sum] = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
SRC_URI[parking_lot-0.11.2.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
SRC_URI[parking_lot_core-0.8.6.sha256sum] = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
SRC_URI[parsec-client-0.15.0.sha256sum] = "5798ac04b102b074ad2a26976e53e4c918d2342ccb8ce6f31c2e71ab338b1156"
SRC_URI[parsec-interface-0.28.0.sha256sum] = "f6f1b90789d4cabb8d7100a2ce632baad9683c2598f302d2387d9a45f967de56"
SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
SRC_URI[pem-1.1.1.sha256sum] = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
SRC_URI[percent-encoding-2.2.0.sha256sum] = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
SRC_URI[picky-asn1-0.3.3.sha256sum] = "889bbb26c80acf919e89980dfc8e04eb19df272d8a9893ec9b748d3a1675abde"
SRC_URI[picky-asn1-der-0.2.5.sha256sum] = "acbbd5390ab967396cc7473e6e0848684aec7166e657c6088604e07b54a73dbe"
SRC_URI[picky-asn1-x509-0.6.1.sha256sum] = "f3033675030de806aba1d5470949701b7c9f1dbf77e3bb17bd12e5f945e560ba"
SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
SRC_URI[pkcs8-0.8.0.sha256sum] = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
SRC_URI[proc-macro2-1.0.52.sha256sum] = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
SRC_URI[prost-0.8.0.sha256sum] = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
SRC_URI[prost-derive-0.8.0.sha256sum] = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
SRC_URI[protobuf-2.28.0.sha256sum] = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
SRC_URI[psa-crypto-0.10.0.sha256sum] = "31a7f20ebf21c7a53dd8aa24a11bd4cc9f3f838f0de1b32e17cb6cd4f88fdf7f"
SRC_URI[psa-crypto-sys-0.10.0.sha256sum] = "0d3f19716e0584f8d5627712617b1cc5b9b642943fd9a61b883b8d533f5d400c"
SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
SRC_URI[rcgen-0.9.3.sha256sum] = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd"
SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
SRC_URI[regex-1.7.1.sha256sum] = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
SRC_URI[regex-syntax-0.6.28.sha256sum] = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
SRC_URI[ring-0.16.20.sha256sum] = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
SRC_URI[secrecy-0.7.0.sha256sum] = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0"
SRC_URI[serde-1.0.158.sha256sum] = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9"
SRC_URI[serde_bytes-0.11.9.sha256sum] = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294"
SRC_URI[serde_derive-1.0.158.sha256sum] = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad"
SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
SRC_URI[sha2-0.9.9.sha256sum] = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
SRC_URI[shlex-0.1.1.sha256sum] = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
SRC_URI[simple_asn1-0.6.2.sha256sum] = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
SRC_URI[spiffe-0.2.1.sha256sum] = "f30161ecb25b9acc06eb61d750aaf1c4b3a536e22ff19fc2d250976537e93a11"
SRC_URI[spin-0.5.2.sha256sum] = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
SRC_URI[spki-0.5.4.sha256sum] = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
SRC_URI[structopt-0.3.26.sha256sum] = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
SRC_URI[structopt-derive-0.4.18.sha256sum] = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
SRC_URI[syn-2.0.10.sha256sum] = "5aad1363ed6d37b84299588d62d3a7d95b5a5c2d9aad5c85609fda12afaa1f40"
SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
SRC_URI[untrusted-0.7.1.sha256sum] = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
SRC_URI[users-0.11.0.sha256sum] = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032"
SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
SRC_URI[x509-parser-0.13.2.sha256sum] = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c"
SRC_URI[yasna-0.4.0.sha256sum] = "e262a29d0e61ccf2b6190d7050d4b237535fc76ce4c1210d9caa316f71dffa75"
SRC_URI[yasna-0.5.1.sha256sum] = "aed2e7a52e3744ab4d0c05c20aa065258e84c49fd4226f5191b2ed29712710b4"
SRC_URI[zeroize-1.5.7.sha256sum] = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
SRC_URI[zeroize_derive-1.3.3.sha256sum] = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c"
@@ -0,0 +1,27 @@
SUMMARY = "Parsec Command Line Interface"
HOMEPAGE = "https://github.com/parallaxsecond/parsec-tool"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
inherit cargo cargo-update-recipe-crates
SRC_URI += "crate://crates.io/parsec-tool/${PV} \
"
SRC_URI[parsec-tool-0.6.0.sha256sum] = "f51d5d7f0caca1c335324b52482fa5edbf6c9cfd2e6865e5cb22716d52dcb367"
B = "${CARGO_VENDORING_DIRECTORY}/${BP}"
do_install() {
install -d ${D}/${bindir}
install -m 755 "${B}/target/${CARGO_TARGET_SUBDIR}/parsec-tool" "${D}${bindir}/parsec-tool"
install -m 755 "${S}/tests/parsec-cli-tests.sh" "${D}${bindir}/parsec-cli-tests.sh"
}
require parsec-tool-crates.inc
RDEPENDS:${PN} = "openssl-bin"
# The QA check has been temporarily disabled. An issue has been created
# upstream to fix this.
# https://github.com/parallaxsecond/parsec-tool/issues/94
INSANE_SKIP:${PN}-dbg += "buildpaths"