Skip to content

Commit 149aee8

Browse files
committed
lowercase key provider in prose
1 parent 544374f commit 149aee8

5 files changed

Lines changed: 22 additions & 22 deletions

File tree

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Advanced wallets operate in two modes:
1616
Key features include:
1717

1818
- **Complete Infrastructure Control** - Host and manage all components in your own secure environment.
19-
- **KMS/HSM Integration** - Bring your own KMS or HSM by implementing the provided [Advanced Wallets Key Provider API interface specification](./key-provider-api-spec.yaml). Reference implementations available for [AWS HSM](./demo-key-provider-script/aws-interface.md) and [Dinamo HSM](./demo-key-provider-script/dinamo-interface.md).
19+
- **KMS/HSM Integration** - Bring your own KMS or HSM by implementing the provided [advanced wallets key provider API interface specification](./key-provider-api-spec.yaml). Reference implementations available for [AWS HSM](./demo-key-provider-script/aws-interface.md) and [Dinamo HSM](./demo-key-provider-script/dinamo-interface.md).
2020
- **Network Isolation** - Advanced Wallet Manager operates in a completely isolated network segment with no external internet access.
2121
- **mTLS Security** - Optional mutual TLS with client certificate validation for secure inter-service communications.
2222
- **Flexible Configuration** - Environment-based setup with file or variable-based certificates.
@@ -38,7 +38,7 @@ Key features include:
3838

3939
## Architecture
4040

41-
- **Advanced Wallet Manager** (Port 3080) - An isolated signing server with no internet access that only connects to your Key Provider API implementation for key operations.
41+
- **Advanced Wallet Manager** (Port 3080) - An isolated signing server with no internet access that only connects to your key provider API implementation for key operations.
4242
- **Master Express** (Port 3081) - An API gateway providing end-to-end wallet creation and transaction support, integrating [BitGo APIs](https://developers.bitgo.com/reference/overview#/) with secure communication to Advanced Wallet Manager.
4343

4444
## Installation
@@ -49,7 +49,7 @@ Key features include:
4949
- **npm** or **yarn** package manager.
5050
- **OpenSSL** for certificate generation.
5151
- **Docker** and **Docker Compose** for containerized deployment (or you can use **Podman** as alternative to Docker).
52-
- **Key Provider API Implementation** - You must implement the [Key Provider API interface specification](./key-provider-api-spec.yaml) to connect your KMS/HSM to the Advanced Wallet Manager. Reference implementations available:
52+
- **key provider API implementation** - You must implement the [key provider API interface specification](./key-provider-api-spec.yaml) to connect your KMS/HSM to the Advanced Wallet Manager. Reference implementations available:
5353
- [AWS HSM Implementation Example](./demo-key-provider-script/aws-interface.md)
5454
- [Dinamo HSM Implementation Example](./demo-key-provider-script/dinamo-interface.md)
5555

@@ -168,9 +168,9 @@ curl -X POST http://localhost:3081/ping/advancedWalletManager
168168
| Variable | Description | Default | Required |
169169
| ------------------------------ | ---------------------------------- | ------- | -------- |
170170
| `ADVANCED_WALLET_MANAGER_PORT` | Port to listen on | `3080` ||
171-
| `KEY_PROVIDER_URL` | URL to your Key Provider API implementation | - ||
171+
| `KEY_PROVIDER_URL` | URL to your key provider API implementation | - ||
172172

173-
> **Note:** The `KEY_PROVIDER_URL` points to your implementation of the Key Provider API interface. You must implement this interface to connect your KMS/HSM. See [Prerequisites](#prerequisites) for the specification and examples.
173+
> **Note:** The `KEY_PROVIDER_URL` points to your implementation of the key provider API interface. You must implement this interface to connect your KMS/HSM. See [Prerequisites](#prerequisites) for the specification and examples.
174174
175175
### Master Express Settings
176176

@@ -232,16 +232,16 @@ curl -X POST http://localhost:3081/ping/advancedWalletManager
232232
| `AWM_SERVER_CA_CERT` | AWM server CA certificate (alternative) | PEM string |
233233
| `AWM_SERVER_CERT_ALLOW_SELF_SIGNED` | Allow self-signed AWM server certificates | Boolean (default: `false`) |
234234

235-
**For Advanced Wallet Manager → Key Provider:**
235+
**For Advanced Wallet Manager → key provider:**
236236

237237
| Variable | Description | Format |
238238
| ------------------------------------------- | -------------------------------------------------- | -------------------------- |
239239
| `KEY_PROVIDER_CLIENT_TLS_KEY_PATH` | Client private key file path | File path |
240240
| `KEY_PROVIDER_CLIENT_TLS_KEY` | Client private key (alternative) | PEM string |
241241
| `KEY_PROVIDER_CLIENT_TLS_CERT_PATH` | Client certificate file path | File path |
242242
| `KEY_PROVIDER_CLIENT_TLS_CERT` | Client certificate (alternative) | PEM string |
243-
| `KEY_PROVIDER_SERVER_CA_CERT_PATH` | key provider server CA certificate file path | File path |
244-
| `KEY_PROVIDER_SERVER_CA_CERT` | key provider server CA certificate (alternative) | PEM string |
243+
| `KEY_PROVIDER_SERVER_CA_CERT_PATH` | Key provider server CA certificate file path | File path |
244+
| `KEY_PROVIDER_SERVER_CA_CERT` | Key provider server CA certificate (alternative) | PEM string |
245245
| `KEY_PROVIDER_SERVER_CERT_ALLOW_SELF_SIGNED` | Allow self-signed key provider server certificates | Boolean (default: `false`) |
246246

247247
> **Note:** For security reasons, when `TLS_MODE=mtls`, outbound client certificates are required and cannot reuse server certificates. When `TLS_MODE=disabled`, these certificates aren't required.
@@ -351,7 +351,7 @@ The setup creates two distinct networks:
351351
### Prerequisites
352352

353353
1. **Install Docker and Docker Compose**
354-
2. **Ensure your Key Provider API implementation is running** on your host machine (typically on port 3000)
354+
2. **Ensure your key provider API implementation is running** on your host machine (typically on port 3000)
355355

356356
### Quick Start
357357

demo-key-provider-script/aws-interface.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# AWS HSM Key Provider Implementation Documentation
22

3-
This document provides a reference implementation for integrating the 4 Key Provider API's with AWS HSM, covering the complete request-response flow from API handlers to HSM operations.
3+
This document provides a reference implementation for integrating the 4 key provider API's with AWS HSM, covering the complete request-response flow from API handlers to HSM operations.
44

55
## ⚠️ Security Recommendation
66

7-
For production key provider implementations, consider implementing the Key Provider API in a C++ like language, because JavaScript does not support low-level memory management. Depending on your solution, direct memory management with explicit memory allocation/deallocation might be desirable.
7+
For production key provider implementations, consider implementing the key provider API in a C++ like language, because JavaScript does not support low-level memory management. Depending on your solution, direct memory management with explicit memory allocation/deallocation might be desirable.
88

99
Also consider implementing low level cryptographic operations using low-level languages like C++ or Rust. They typically provide easier and more efficient data manipulation and transaformation.
1010

@@ -14,7 +14,7 @@ When working with AWS HSM, adhere to their guidances and best practices for the
1414

1515
## API Overview
1616

17-
The Key Provider API provides secure key management through four main endpoints that integrate with AWS HSM:
17+
The key provider API provides secure key management through four main endpoints that integrate with AWS HSM:
1818

1919
- `POST /key` - Store private keys using envelope encryption
2020
- `GET /key/{pub}` - Retrieve private keys using envelope decryption
@@ -25,10 +25,10 @@ The Key Provider API provides secure key management through four main endpoints
2525
All 4 API's implementation should follow roughly the same dataflow as outlined bellow:
2626

2727
```
28-
API Request → Handler → Key Provider → AWS HSM → Key Provider → Database (if required) → Response
28+
API Request → Handler → key provider → AWS HSM → key provider → Database (if required) → Response
2929
```
3030

31-
A Key Provider is the implementation of the code that is in charge of making the necessary calls to the HSM directly. You might have multiple providers in your solution, one for each 3rd party HSM that you wish to use, for example.
31+
A key provider is the implementation of the code that is in charge of making the necessary calls to the HSM directly. You might have multiple providers in your solution, one for each 3rd party HSM that you wish to use, for example.
3232

3333
### Handler-to-Provider Mapping
3434

@@ -67,7 +67,7 @@ The 3 levels consist of the root-level key from the KMS/HSM, 2nd level data keys
6767

6868
### Root Key Creation
6969

70-
This following needs to be only run once. The Key Provider should be functional with just one root-level key.
70+
This following needs to be only run once. The key provider should be functional with just one root-level key.
7171

7272
```typescript
7373
import * as awskms from '@aws-sdk/client-kms';

demo-key-provider-script/dinamo-interface.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
## ⚠️ Security Recommendation
44

5-
**For production key provider implementations, consider implementing the Key Provider API in a C++ like language, or use typed arrays like Uint8Array for all sensitive data because JavaScript does not support secure memory management.**
5+
**For production key provider implementations, consider implementing the key provider API in a C++ like language, or use typed arrays like Uint8Array for all sensitive data because JavaScript does not support secure memory management.**
66

77
**Recommended Alternatives:**
88
- **C++/Rust**: Languages with explicit memory management and secure allocation
99
- **Node.js Typed Arrays**: Use `Uint8Array` for sensitive data with explicit zeroing
1010
- **Native Addons**: Implement cryptographic operations in native C++ modules
1111
- **Hardware Security**: Use HSM-backed secure memory when available
1212

13-
This document provides a reference implementation for integrating the 4 Key Provider API's with Dinamo HSM, covering the complete request-response flow from API handlers to HSM operations.
13+
This document provides a reference implementation for integrating the 4 key provider API's with Dinamo HSM, covering the complete request-response flow from API handlers to HSM operations.
1414

1515
## Demo Scripts
1616

@@ -20,7 +20,7 @@ This document provides a reference implementation for integrating the 4 Key Prov
2020

2121
## Quick Overview
2222

23-
The Key Provider API provides secure key management through four main endpoints that integrate with Dinamo HSM:
23+
The key provider API provides secure key management through four main endpoints that integrate with Dinamo HSM:
2424

2525
- `POST /key` - Store private keys using envelope encryption
2626
- `GET /key/{pub}` - Retrieve private keys using envelope decryption
@@ -30,7 +30,7 @@ The Key Provider API provides secure key management through four main endpoints
3030
## Architecture Flow
3131

3232
```
33-
API Request → Handler → Key Provider → Dinamo HSM → Database → Response
33+
API Request → Handler → key provider → Dinamo HSM → Database → Response
3434
```
3535

3636
### Handler-to-Provider Mapping

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ services:
2222
- TLS_MODE=disabled
2323
- CLIENT_CERT_ALLOW_SELF_SIGNED=true
2424

25-
# key provider settings (required)
25+
# Key provider settings (required)
2626
- KEY_PROVIDER_URL=http://172.20.0.1:3000 # UPDATE TO YOUR OWN key provider URL
2727
- KEY_PROVIDER_SERVER_CERT_ALLOW_SELF_SIGNED=true
2828

key-provider-api-spec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ info:
77
# API Interface for Advanced Wallet Integration
88
99
This specification defines the required API interface that must be implemented by clients to integrate
10-
their KMS/HSM provider with advanced wallets through the Advanced Wallets Key Provider interface.
10+
their KMS/HSM provider with advanced wallets through the advanced wallets key provider interface.
1111
1212
## Purpose
1313
14-
Clients must implement this Advanced Wallets Key Provider API specification to enable secure cryptographic key storage and management
14+
Clients must implement this advanced wallets key provider API specification to enable secure cryptographic key storage and management
1515
for advanced wallets. The implementation should connect to your organization's KMS/HSM provider.
1616
1717
## Implementation Requirements

0 commit comments

Comments
 (0)