Gordian Envelope CLI - 1 - Commands Overview
Channel: BlockchainCommons
Date: 2022-09-19

This video offers an overview of the Gordian Envelope-CLI (command line interface) tool, `envelope`, which can be used to create and verify cryptographic envelopes.

Envelopes are a new type of “smart document” to support the storage, backup, encryption & authentication of data, with explicit support for Merkle-based selective disclosure. It’s part of the Gordian Architecture led by Blockchain Commons.

MORE ON GORDIAN ENVELOPE:

* Full Gordian Envelope Playlist: https://www.youtube.com/playlist?list=PLCkrqxOY1FbooYwJ7ZhpJ_QQk8Az1aCnG
* An Introduction to Gordian Envelopes Article: https://www.blockchaincommons.com/introduction/Envelope-Intro/
* A Technical Introduction to Gordian Envelopes Article: https://github.com/BlockchainCommons/Gordian/blob/master/Envelope/Intro-Tech.md
* Gordian Envelope Docs: https://github.com/BlockchainCommons/Gordian/tree/master/Envelope
* Gordian Envelope Use Cases: https://github.com/BlockchainCommons/Gordian/blob/master/Envelope/Use-Cases/README.md
* Gordian Envelope CLI: https://github.com/BlockchainCommons/envelope-cli-swift
* Gordian Architecture: https://github.com/BlockchainCommons/Gordian/tree/master/Architecture/

MORE ON THIS VIDEO:

* Overview in Envelope-CLI: https://github.com/BlockchainCommons/envelope-cli-swift/blob/master/Docs/1-OVERVIEW.md
* Transcript with Examples: https://github.com/BlockchainCommons/envelope-cli-swift/blob/master/Transcripts/1-OVERVIEW-TRANSCRIPT.md
* Envelope-CLI Docs: https://github.com/BlockchainCommons/envelope-cli-swift/tree/master/Docs#envelope-cli-swift-docs

Speaker: Wolf McNally

00:00 gordian envelope-cli overview
00:08 envelope refresher
00:40 demo of `envelope` in the terminal in macOS
01:13 `envelope help`
01:29 `envelope subject` a basic envelope
02:20 `envelope format` and envelope notation
03:31 `envelope extract` the subject
03:49 envelope datatypes
04:40 `envelope extract —envelope`
05:09 `envelope assertion`
06:12 `envelope digest` encode a blake3 hash in ur:crypto-digest
07:13 extracting digest of an assertion
08:03 elision allows removal of parts of an envelope for redaction
08:38 `envelope elide removing` redact one or more digests
10:13 elided envelopes have same digest as the original
10:54 symmetric key encryption
11:22 `envelope generate key` create a random encryption key
11:38 `envelope encrypt` symmetric encrypt subject of an envelope
13:20 wrap an envelope to prepare for symmetric encryption
14:28 symmetric encrypt whole envelope
14:58 symmetric decrypt and unwrap envelope
15:23 signing an envelope
15:34 `envelope generate prvkeys` to generate private key encoded as ur:crypto-prvkeys
16:12 `envelope generate pubkeys` to generate public key encoded as ur:crypto-pubkeys
16:43 `envelope sign` with —prvkeys adds assertion to subject
17:06 PROBLEM: `envelope sign` signs only the subject, not good enough
17:40 SOLUTION: wrap before signing
18:14 verify a signature
18:25 verify returns original envelope if true so you can pipe otherwise ERROR
18:37 option for verify —silent
18:49 example of bad signature `Error: unverified signature`
19:17 shard an envelope with SSKR (Sharded Secret Key Reconstruction) to create an encrypted share
19:49 `envelope sskr split` to create 3 shares
20:30 separate into array of shares
21:00 inspect an SSKR share's format
21:24 `envelope sskr join` to recover 2 of 3 shares to restore unencrypted envelope
22:02 many flexible SSKR options
22:12 using salts to avoid correlation
22:59 `envelope salt` make envelope hashes different
23:29 Comparing original with salted encrypted envelope