mirror of https://github.com/dapr/docs.git
				
				
				
			add crypto quickstart doc
Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com>
This commit is contained in:
		
							parent
							
								
									ebd730cc5c
								
							
						
					
					
						commit
						ef61aae081
					
				| 
						 | 
					@ -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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<img src="/images/workflow-quickstart-overview.png" width=800 style="padding-bottom:15px;">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{% 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" >}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 <!-- 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/).
 | 
				
			||||||
 | 
					<!-- IGNORE_LINKS -->
 | 
				
			||||||
 | 
					- [Docker Desktop](https://www.docker.com/products/docker-desktop)
 | 
				
			||||||
 | 
					<!-- END_IGNORE -->
 | 
				
			||||||
 | 
					- [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):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/PRWYX4lb2Sg?start=1148" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 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" >}}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue