From ef61aae0815debabdd58956550cee6dc04e94cb6 Mon Sep 17 00:00:00 2001 From: Hannah Hunter Date: Mon, 5 Jun 2023 16:46:24 -0400 Subject: [PATCH 1/7] add crypto quickstart doc Signed-off-by: Hannah Hunter --- .../quickstarts/cryptography-quickstart.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md diff --git a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md new file mode 100644 index 000000000..6fe61b11e --- /dev/null +++ b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md @@ -0,0 +1,113 @@ +--- +type: docs +title: "Quickstart: Cryptography" +linkTitle: Cryptography +weight: 79 +description: Get started with the Dapr Cryptography building block +--- + +{{% alert title="Note" color="primary" %}} +The cryptography building block is currently in **alpha**. +{{% /alert %}} + +Let's take a look at the Dapr [cryptography building block](todo). In this Quickstart, you'll create an application that encrypts and decrypts data using the Dapr cryptography APIs (high-level). You'll: + +- Encrypt and then decrypt a short string, reading the result in-memory, in a Go byte slice. +- Encrypt and then decrypt a large file, storing the encrypted and decrypted data to files using streams. + + + +{{% alert title="Note" color="primary" %}} +This example uses the Dapr SDK. Using the Dapr SDK, which leverages gRPC internally, is **strongly** recommended when using cryptographic APIs (to encrypt and decrypt messages). +{{% /alert %}} + +Currently, you can experience the cryptography API using the Go SDK. + +{{< tabs "Go" >}} + + +{{% codetab %}} + +> This quickstart includes one Go application called `crypto-quickstart`. + +### Pre-requisites + +For this example, you will need: + +- [Dapr CLI and initialized environment](https://docs.dapr.io/getting-started). +- [Latest version of Go](https://go.dev/dl/). + +- [Docker Desktop](https://www.docker.com/products/docker-desktop) + +- [OpenSSL](https://www.openssl.org/source/) available on your system + +### Step 1: Set up the environment + +Clone the [sample provided in the Quickstarts repo](https://github.com/dapr/quickstarts/tree/master/cryptography) + +```bash +git clone https://github.com/dapr/quickstarts.git +``` + +In the terminal, from the root directory, navigate to the cryptography sample. + +```bash +cd cryptography/go/sdk +``` + +### Step 2: Run the application with Dapr + +Navigate into the folder with the source code: + +```bash +cd ./crypto-quickstart +``` + +This sample requires a private RSA key and a 256-bit symmetric (AES) key. Generate the keys using OpenSSL: + +```bash +mkdir -p keys +# Generate a private RSA key, 4096-bit keys +openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out keys/rsa-private-key.pem +# Generate a 256-bit key for AES +openssl rand 32 -out keys/symmetric-key-256 +``` + +Run the Go service app with Dapr: + +```bash +dapr run --app-id crypto-quickstart --resources-path ../../../components/ -- go run . +``` + +**Expected output** + +``` + +``` + +### What happened? + + +{{% /codetab %}} + + +{{< /tabs >}} + +## Watch the demo + +Watch this [demo video of the cryptography API from the Dapr Community Call #83](https://youtu.be/PRWYX4lb2Sg?t=1148): + + + +## Tell us what you think! + +We're continuously working to improve our Quickstart examples and value your feedback. Did you find this Quickstart helpful? Do you have suggestions for improvement? + +Join the discussion in our [discord channel](https://discord.com/channels/778680217417809931/953427615916638238). + +## Next steps + +- Walk through [more examples of encrypting and decrypting using the cryptography API](todo) +- Learn more about [cryptography as a Dapr building block](todo) + +{{< button text="Explore Dapr tutorials >>" page="getting-started/tutorials/_index.md" >}} From 5541bc679057260fa504fddb6d7367eb7b664552 Mon Sep 17 00:00:00 2001 From: Hannah Hunter Date: Mon, 5 Jun 2023 21:06:09 -0400 Subject: [PATCH 2/7] add diagram; crosslink; flesh out quickstart Signed-off-by: Hannah Hunter --- .../cryptography/cryptography-overview.md | 2 +- .../en/getting-started/quickstarts/_index.md | 1 + .../quickstarts/cryptography-quickstart.md | 195 +++++++++++++++++- daprdocs/static/images/crypto-quickstart.png | Bin 0 -> 27987 bytes 4 files changed, 187 insertions(+), 11 deletions(-) create mode 100644 daprdocs/static/images/crypto-quickstart.png diff --git a/daprdocs/content/en/developing-applications/building-blocks/cryptography/cryptography-overview.md b/daprdocs/content/en/developing-applications/building-blocks/cryptography/cryptography-overview.md index a09937323..79792f588 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/cryptography/cryptography-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/cryptography/cryptography-overview.md @@ -67,7 +67,7 @@ Want to put the Dapr cryptography API to the test? Walk through the following qu | Quickstart/tutorial | Description | | ------------------- | ----------- | -| Cryptography quickstart | Coming soon | +| [Cryptography quickstart]({{< ref cryptography-quickstart.md >}}) | Encrypt and decrypt messages and large files using RSA and AES keys with the cryptography API. | ### Start using cryptography directly in your app diff --git a/daprdocs/content/en/getting-started/quickstarts/_index.md b/daprdocs/content/en/getting-started/quickstarts/_index.md index 949ee85b2..ff16bc218 100644 --- a/daprdocs/content/en/getting-started/quickstarts/_index.md +++ b/daprdocs/content/en/getting-started/quickstarts/_index.md @@ -31,3 +31,4 @@ Hit the ground running with our Dapr quickstarts, complete with code samples aim | [Configuration]({{< ref configuration-quickstart.md >}}) | Get configuration items and subscribe for configuration updates. | | [Resiliency]({{< ref resiliency >}}) | Define and apply fault-tolerance policies to your Dapr API requests. | | [Workflow]({{< ref workflow-quickstart.md >}}) | Orchestrate business workflow activities in long running, fault-tolerant, stateful applications. | +| [Cryptography]({{< ref cryptography-quickstart.md >}}) | Encrypt and decrypt data using Dapr's cryptographic APIs. | diff --git a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md index 6fe61b11e..2d5bf5813 100644 --- a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md @@ -6,19 +6,19 @@ weight: 79 description: Get started with the Dapr Cryptography building block --- -{{% alert title="Note" color="primary" %}} +{{% alert title="Alpha" color="warning" %}} The cryptography building block is currently in **alpha**. {{% /alert %}} -Let's take a look at the Dapr [cryptography building block](todo). In this Quickstart, you'll create an application that encrypts and decrypts data using the Dapr cryptography APIs (high-level). You'll: +Let's take a look at the Dapr [cryptography building block](todo). In this Quickstart, you'll create an application that encrypts and decrypts data using the Dapr cryptography APIs. You'll: -- Encrypt and then decrypt a short string, reading the result in-memory, in a Go byte slice. -- Encrypt and then decrypt a large file, storing the encrypted and decrypted data to files using streams. +- Encrypt and then decrypt a short string (using an RSA key), reading the result in-memory, in a Go byte slice. +- Encrypt and then decrypt a large file (using an AES key), storing the encrypted and decrypted data to files using streams. - + {{% alert title="Note" color="primary" %}} -This example uses the Dapr SDK. Using the Dapr SDK, which leverages gRPC internally, is **strongly** recommended when using cryptographic APIs (to encrypt and decrypt messages). +This example uses the Dapr SDK, which leverages gRPC and is **strongly** recommended when using cryptographic APIs to encrypt and decrypt messages. {{% /alert %}} Currently, you can experience the cryptography API using the Go SDK. @@ -28,7 +28,7 @@ Currently, you can experience the cryptography API using the Go SDK. {{% codetab %}} -> This quickstart includes one Go application called `crypto-quickstart`. +> This quickstart includes a Go application called `crypto-quickstart`. ### Pre-requisites @@ -63,14 +63,18 @@ Navigate into the folder with the source code: cd ./crypto-quickstart ``` -This sample requires a private RSA key and a 256-bit symmetric (AES) key. Generate the keys using OpenSSL: +The application code defines two required keys: +- Private RSA key +- A 256-bit symmetric (AES) key + +Generate the keys using OpenSSL: ```bash mkdir -p keys # Generate a private RSA key, 4096-bit keys openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out keys/rsa-private-key.pem # Generate a 256-bit key for AES -openssl rand 32 -out keys/symmetric-key-256 +openssl rand -out keys/symmetric-key-256 32 ``` Run the Go service app with Dapr: @@ -82,11 +86,182 @@ dapr run --app-id crypto-quickstart --resources-path ../../../components/ -- go **Expected output** ``` - +== APP == dapr client initializing for: 127.0.0.1:52407 +== APP == Encrypted the message, got 856 bytes +== APP == Decrypted the message, got 24 bytes +== APP == The secret is "passw0rd" +== APP == Wrote decrypted data to encrypted.out +== APP == Wrote decrypted data to decrypted.out.jpg ``` ### What happened? +#### `local-storage.yaml` + +Earlier, you created a directory inside `crypto-quickstarts` called `keys`. In [the `local-storage` component YAML](https://github.com/ItalyPaleAle/dapr-quickstarts/blob/crypto-go/cryptography/components/local-storage.yaml), the `path` metadata maps to the newly created `keys` directory. + +```yml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: localstorage +spec: + type: crypto.dapr.localstorage + version: v1 + metadata: + - name: path + # Path is relative to the folder where the example is located + value: ./keys +``` + +#### `app.go` + +[The application file](https://github.com/ItalyPaleAle/dapr-quickstarts/blob/crypto-go/cryptography/go/sdk/crypto-quickstart/app.go) encrypts and decrypts messages and files using the RSA and AES keys that you generated in the terminal. The application creates a new Dapr SDK client: + +```go +func main() { + // Create a new Dapr SDK client + client, err := dapr.NewClient() + + //... + + // Step 1: encrypt a string using the RSA key, then decrypt it and show the output in the terminal + encryptDecryptString(client) + + // Step 2: encrypt a large file and then decrypt it, using the AES key + encryptDecryptFile(client) +} +``` + +##### Encrypting and decrypting a string using the RSA key + +Once the client is created, the application encrypts a message: + +```go +func encryptDecryptString(client dapr.Client) { + // ... + + // Encrypt the message + encStream, err := client.Encrypt(context.Background(), + strings.NewReader(message), + dapr.EncryptOptions{ + ComponentName: CryptoComponentName, + // Name of the key to use + // Since this is a RSA key, we specify that as key wrapping algorithm + KeyName: RSAKeyName, + KeyWrapAlgorithm: "RSA", + }, + ) + + // ... + + // The method returns a readable stream, which we read in full in memory + encBytes, err := io.ReadAll(encStream) + // ... + + fmt.Printf("Encrypted the message, got %d bytes\n", len(encBytes)) +``` + +The application then decrypts the message: + +```go + // Now, decrypt the encrypted data + decStream, err := client.Decrypt(context.Background(), + bytes.NewReader(encBytes), + dapr.DecryptOptions{ + // We just need to pass the name of the component + ComponentName: CryptoComponentName, + // Passing the name of the key is optional + KeyName: RSAKeyName, + }, + ) + + // ... + + // The method returns a readable stream, which we read in full in memory + decBytes, err := io.ReadAll(decStream) + + // ... + + // Print the message on the console + fmt.Printf("Decrypted the message, got %d bytes\n", len(decBytes)) + fmt.Println(string(decBytes)) +} +``` + +##### Encrypt and decrpyt a large file using the AES key + +Next, the application encrypts a large image file: + +```go +func encryptDecryptFile(client dapr.Client) { + const fileName = "liuguangxi-66ouBTTs_x0-unsplash.jpg" + + // Get a readable stream to the input file + plaintextF, err := os.Open(fileName) + + // ... + + defer plaintextF.Close() + + // Encrypt the file + encStream, err := client.Encrypt(context.Background(), + plaintextF, + dapr.EncryptOptions{ + ComponentName: CryptoComponentName, + // Name of the key to use + // Since this is a symmetric key, we specify AES as key wrapping algorithm + KeyName: SymmetricKeyName, + KeyWrapAlgorithm: "AES", + }, + ) + + // ... + + // Write the encrypted data to a file "encrypted.out" + encryptedF, err := os.Create("encrypted.out") + + // ... + + encryptedF.Close() + + fmt.Println("Wrote decrypted data to encrypted.out") +``` + +The application then decrypts the large image file: + +```go + // Now, decrypt the encrypted data + // First, open the file "encrypted.out" again, this time for reading + encryptedF, err = os.Open("encrypted.out") + + // ... + + defer encryptedF.Close() + + // Now, decrypt the encrypted data + decStream, err := client.Decrypt(context.Background(), + encryptedF, + dapr.DecryptOptions{ + // We just need to pass the name of the component + ComponentName: CryptoComponentName, + // Passing the name of the key is optional + KeyName: SymmetricKeyName, + }, + ) + + // ... + + // Write the decrypted data to a file "decrypted.out.jpg" + decryptedF, err := os.Create("decrypted.out.jpg") + + // ... + + decryptedF.Close() + + fmt.Println("Wrote decrypted data to decrypted.out.jpg") +} +``` {{% /codetab %}} diff --git a/daprdocs/static/images/crypto-quickstart.png b/daprdocs/static/images/crypto-quickstart.png new file mode 100644 index 0000000000000000000000000000000000000000..318a3096269b9bbb22e9fcd2c91a459344f6ab59 GIT binary patch literal 27987 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 DpnRna literal 0 HcmV?d00001 From a60b4723a08ec11cb36cc9ec4a48d6298f297e95 Mon Sep 17 00:00:00 2001 From: Hannah Hunter Date: Mon, 5 Jun 2023 21:07:56 -0400 Subject: [PATCH 3/7] remove todo Signed-off-by: Hannah Hunter --- .../getting-started/quickstarts/cryptography-quickstart.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md index 2d5bf5813..8616e455c 100644 --- a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md @@ -10,7 +10,7 @@ description: Get started with the Dapr Cryptography building block The cryptography building block is currently in **alpha**. {{% /alert %}} -Let's take a look at the Dapr [cryptography building block](todo). In this Quickstart, you'll create an application that encrypts and decrypts data using the Dapr cryptography APIs. You'll: +Let's take a look at the Dapr [cryptography building block]({{< ref cryptography >}}). In this Quickstart, you'll create an application that encrypts and decrypts data using the Dapr cryptography APIs. You'll: - Encrypt and then decrypt a short string (using an RSA key), reading the result in-memory, in a Go byte slice. - Encrypt and then decrypt a large file (using an AES key), storing the encrypted and decrypted data to files using streams. @@ -282,7 +282,7 @@ Join the discussion in our [discord channel](https://discord.com/channels/778680 ## Next steps -- Walk through [more examples of encrypting and decrypting using the cryptography API](todo) -- Learn more about [cryptography as a Dapr building block](todo) +- Walk through [more examples of encrypting and decrypting using the cryptography API]({{< ref howto-cryptography.md >}}) +- Learn more about [cryptography as a Dapr building block]({{< ref cryptography-overview.md >}}) {{< button text="Explore Dapr tutorials >>" page="getting-started/tutorials/_index.md" >}} From 3f1be97f5c79c1f645cf69f6ce67de98546e7f04 Mon Sep 17 00:00:00 2001 From: Shubham Sharma Date: Tue, 6 Jun 2023 14:27:27 +0530 Subject: [PATCH 4/7] Add fixes Signed-off-by: Shubham Sharma --- .../content/en/reference/api/workflow_api.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/daprdocs/content/en/reference/api/workflow_api.md b/daprdocs/content/en/reference/api/workflow_api.md index e784e52e1..e417eed63 100644 --- a/daprdocs/content/en/reference/api/workflow_api.md +++ b/daprdocs/content/en/reference/api/workflow_api.md @@ -12,8 +12,8 @@ Dapr provides users with the ability to interact with workflows and comes with a Start a workflow instance with the given name and optionally, an instance ID. -```http -POST http://localhost:3500/v1.0-alpha1/workflows///start[?instanceId=] +``` +POST http://localhost:3500/v1.0-alpha1/workflows///start[?instanceID=] ``` Note that workflow instance IDs can only contain alphanumeric characters, underscores, and dashes. @@ -24,7 +24,7 @@ Parameter | Description --------- | ----------- `workflowComponentName` | Use `dapr` for Dapr Workflows `workflowName` | Identify the workflow type -`instanceId` | (Optional) Unique value created for each run of a specific workflow +`instanceID` | (Optional) Unique value created for each run of a specific workflow ### Request content @@ -52,7 +52,7 @@ The API call will provide a response similar to this: Terminate a running workflow instance with the given name and instance ID. -```http +``` POST http://localhost:3500/v1.0-alpha1/workflows///terminate ``` @@ -79,7 +79,7 @@ This API does not return any content. For workflow components that support subscribing to external events, such as the Dapr Workflow engine, you can use the following "raise event" API to deliver a named event to a specific workflow instance. -```http +```` POST http://localhost:3500/v1.0-alpha1/workflows///raiseEvent/ ``` @@ -112,7 +112,7 @@ None. Pause a running workflow instance. -```http +``` POST http://localhost:3500/v1.0-alpha1/workflows///pause ``` @@ -139,7 +139,7 @@ None. Resume a paused workflow instance. -```http +``` POST http://localhost:3500/v1.0-alpha1/workflows///resume ``` @@ -166,7 +166,7 @@ None. Purge the workflow state from your state store with the workflow's instance ID. -```http +```` POST http://localhost:3500/v1.0-alpha1/workflows///purge ``` @@ -193,7 +193,7 @@ None. Get information about a given workflow instance. -```http +```` GET http://localhost:3500/v1.0-alpha1/workflows// ``` From 981444ff02d6ba31a865f240e685de9766ee21c3 Mon Sep 17 00:00:00 2001 From: Shubham Sharma Date: Tue, 6 Jun 2023 14:30:06 +0530 Subject: [PATCH 5/7] Revert extra tick Signed-off-by: Shubham Sharma --- daprdocs/content/en/reference/api/workflow_api.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/reference/api/workflow_api.md b/daprdocs/content/en/reference/api/workflow_api.md index e417eed63..80814852e 100644 --- a/daprdocs/content/en/reference/api/workflow_api.md +++ b/daprdocs/content/en/reference/api/workflow_api.md @@ -79,7 +79,7 @@ This API does not return any content. For workflow components that support subscribing to external events, such as the Dapr Workflow engine, you can use the following "raise event" API to deliver a named event to a specific workflow instance. -```` +``` POST http://localhost:3500/v1.0-alpha1/workflows///raiseEvent/ ``` @@ -166,7 +166,7 @@ None. Purge the workflow state from your state store with the workflow's instance ID. -```` +``` POST http://localhost:3500/v1.0-alpha1/workflows///purge ``` @@ -193,7 +193,7 @@ None. Get information about a given workflow instance. -```` +``` GET http://localhost:3500/v1.0-alpha1/workflows// ``` From 45707c226d8a72d911e98076f787af0e14f1e770 Mon Sep 17 00:00:00 2001 From: Hannah Hunter Date: Tue, 6 Jun 2023 09:20:47 -0400 Subject: [PATCH 6/7] updates per mark Signed-off-by: Hannah Hunter --- .../quickstarts/cryptography-quickstart.md | 4 ++-- daprdocs/static/images/crypto-quickstart.png | Bin 27987 -> 27601 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md index 8616e455c..ead966d22 100644 --- a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md @@ -98,7 +98,7 @@ dapr run --app-id crypto-quickstart --resources-path ../../../components/ -- go #### `local-storage.yaml` -Earlier, you created a directory inside `crypto-quickstarts` called `keys`. In [the `local-storage` component YAML](https://github.com/ItalyPaleAle/dapr-quickstarts/blob/crypto-go/cryptography/components/local-storage.yaml), the `path` metadata maps to the newly created `keys` directory. +Earlier, you created a directory inside `crypto-quickstarts` called `keys`. In [the `local-storage` component YAML](https://github.com/dapr/quickstarts/tree/master/cryptography/components/local-storage.yaml), the `path` metadata maps to the newly created `keys` directory. ```yml apiVersion: dapr.io/v1alpha1 @@ -116,7 +116,7 @@ spec: #### `app.go` -[The application file](https://github.com/ItalyPaleAle/dapr-quickstarts/blob/crypto-go/cryptography/go/sdk/crypto-quickstart/app.go) encrypts and decrypts messages and files using the RSA and AES keys that you generated in the terminal. The application creates a new Dapr SDK client: +[The application file](https://github.com/dapr/quickstarts/tree/master/cryptography/go/sdk/crypto-quickstart/app.go) encrypts and decrypts messages and files using the RSA and AES keys that you generated. The application creates a new Dapr SDK client: ```go func main() { diff --git a/daprdocs/static/images/crypto-quickstart.png b/daprdocs/static/images/crypto-quickstart.png index 318a3096269b9bbb22e9fcd2c91a459344f6ab59..e6f7fe70fc1a7ce3ea9e613fa31f277760833557 100644 GIT binary patch literal 27601 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 literal 27987 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 DpnRna From 80b11f3e9a3b2fab9223e190044830aacdcb8afb Mon Sep 17 00:00:00 2001 From: Hannah Hunter Date: Tue, 6 Jun 2023 09:23:48 -0400 Subject: [PATCH 7/7] forgot one Signed-off-by: Hannah Hunter --- .../en/getting-started/quickstarts/cryptography-quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md index ead966d22..3dbcdd3f5 100644 --- a/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/cryptography-quickstart.md @@ -67,7 +67,7 @@ The application code defines two required keys: - Private RSA key - A 256-bit symmetric (AES) key -Generate the keys using OpenSSL: +Generate two keys, an RSA key and and AES key using OpenSSL and write these to two files: ```bash mkdir -p keys