First working version
This commit is contained in:
parent
63ed6316bc
commit
d8eda81e0e
31 changed files with 3134 additions and 0 deletions
80
docs/data-sources/obfs4_bridge_line.md
Normal file
80
docs/data-sources/obfs4_bridge_line.md
Normal file
|
@ -0,0 +1,80 @@
|
|||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "tor_obfs4_bridge_line Data Source - tor"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Generates a complete Tor bridge line using obfs4 state and network details
|
||||
---
|
||||
|
||||
# tor_obfs4_bridge_line (Data Source)
|
||||
|
||||
Generates a complete Tor bridge line using obfs4 state and network details
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
# Copyright (c) HashiCorp, Inc.
|
||||
|
||||
terraform {
|
||||
required_providers {
|
||||
tor = {
|
||||
source = "guardianproject/tor"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "tor" {}
|
||||
|
||||
# Example: Generate a bridge line from existing components
|
||||
data "tor_obfs4_bridge_line" "example" {
|
||||
ip_address = "192.0.2.1"
|
||||
port = 443
|
||||
identity_fingerprint_sha1 = "1234567890abcdef1234567890abcdef12345678"
|
||||
obfs4_state_certificate = "example-cert-value"
|
||||
obfs4_state_iat_mode = 0
|
||||
}
|
||||
|
||||
output "bridge_line" {
|
||||
description = "Generated bridge line for clients"
|
||||
value = data.tor_obfs4_bridge_line.example.bridge_line
|
||||
}
|
||||
|
||||
# Example: Complete workflow integration
|
||||
resource "tor_relay_identity_rsa" "bridge" {}
|
||||
|
||||
resource "tor_relay_identity_ed25519" "bridge" {}
|
||||
|
||||
resource "tor_obfs4_state" "bridge" {
|
||||
rsa_identity_private_key = tor_relay_identity_rsa.bridge.private_key_pem
|
||||
ed25519_identity_private_key = tor_relay_identity_ed25519.bridge.private_key_pem
|
||||
}
|
||||
|
||||
data "tor_obfs4_bridge_line" "integrated" {
|
||||
ip_address = "10.0.0.1"
|
||||
port = 9001
|
||||
identity_fingerprint_sha1 = tor_relay_identity_rsa.bridge.public_key_fingerprint_sha1
|
||||
obfs4_state_certificate = tor_obfs4_state.bridge.certificate
|
||||
obfs4_state_iat_mode = tor_obfs4_state.bridge.iat_mode
|
||||
}
|
||||
|
||||
output "integrated_bridge_line" {
|
||||
description = "Bridge line from integrated workflow"
|
||||
value = data.tor_obfs4_bridge_line.integrated.bridge_line
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- `identity_fingerprint_sha1` (String) SHA1 fingerprint of the RSA identity key
|
||||
- `ip_address` (String) Bridge IP address
|
||||
- `obfs4_state_certificate` (String) Base64-encoded certificate from tor_obfs4_state resource
|
||||
- `obfs4_state_iat_mode` (Number) Inter-Arrival Time mode from tor_obfs4_state resource
|
||||
- `port` (Number) Bridge port number
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `bridge_line` (String) Complete bridge line ready for client use
|
||||
- `id` (String) Data source identifier
|
75
docs/index.md
Normal file
75
docs/index.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "tor Provider"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
The Tor provider generates cryptographic identity materials for obfs4 Tor bridges, enabling stateless bridge deployments.
|
||||
---
|
||||
|
||||
# tor Provider
|
||||
|
||||
The Tor provider generates cryptographic identity materials for obfs4 Tor bridges, enabling stateless bridge deployments.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
# Copyright (c) HashiCorp, Inc.
|
||||
|
||||
terraform {
|
||||
required_providers {
|
||||
tor = {
|
||||
source = "guardianproject/tor"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "tor" {}
|
||||
|
||||
# Generate relay identity keys
|
||||
resource "tor_relay_identity_rsa" "bridge" {}
|
||||
|
||||
resource "tor_relay_identity_ed25519" "bridge" {}
|
||||
|
||||
# Generate obfs4 state using the identity keys
|
||||
resource "tor_obfs4_state" "bridge" {
|
||||
rsa_identity_private_key = tor_relay_identity_rsa.bridge.private_key_pem
|
||||
ed25519_identity_private_key = tor_relay_identity_ed25519.bridge.private_key_pem
|
||||
iat_mode = 1
|
||||
}
|
||||
|
||||
# Generate bridge line for client distribution
|
||||
data "tor_obfs4_bridge_line" "bridge" {
|
||||
ip_address = "192.0.2.1"
|
||||
port = 443
|
||||
identity_fingerprint_sha1 = tor_relay_identity_rsa.bridge.public_key_fingerprint_sha1
|
||||
obfs4_state_certificate = tor_obfs4_state.bridge.certificate
|
||||
obfs4_state_iat_mode = tor_obfs4_state.bridge.iat_mode
|
||||
}
|
||||
|
||||
# Output bridge configuration for deployment
|
||||
output "rsa_identity_pem" {
|
||||
description = "RSA identity private key for bridge configuration"
|
||||
value = tor_relay_identity_rsa.bridge.private_key_pem
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
output "ed25519_identity_pem" {
|
||||
description = "Ed25519 identity private key for bridge configuration"
|
||||
value = tor_relay_identity_ed25519.bridge.private_key_pem
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
output "obfs4_state_json" {
|
||||
description = "Complete obfs4 state for bridge runtime"
|
||||
value = tor_obfs4_state.bridge.state_json
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
output "bridge_line" {
|
||||
description = "Complete bridge line for client use"
|
||||
value = data.tor_obfs4_bridge_line.bridge.bridge_line
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
36
docs/resources/obfs4_state.md
Normal file
36
docs/resources/obfs4_state.md
Normal file
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "tor_obfs4_state Resource - tor"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Generates obfs4 state and certificate for Tor bridges using external relay identity keys
|
||||
---
|
||||
|
||||
# tor_obfs4_state (Resource)
|
||||
|
||||
Generates obfs4 state and certificate for Tor bridges using external relay identity keys
|
||||
|
||||
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- `ed25519_identity_private_key` (String, Sensitive) Ed25519 identity private key in PEM format (from tor_relay_identity_ed25519 resource)
|
||||
- `rsa_identity_private_key` (String, Sensitive) RSA identity private key in PEM format (from tor_relay_identity_rsa resource)
|
||||
|
||||
### Optional
|
||||
|
||||
- `iat_mode` (Number) Inter-Arrival Time mode (0=none, 1=enabled, 2=paranoid)
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `bridge_line` (String) Complete bridge line ready for client use (placeholder IP and fingerprint)
|
||||
- `certificate` (String) Base64-encoded certificate for bridge lines
|
||||
- `drbg_seed` (String, Sensitive) 24-byte DRBG seed in hex format
|
||||
- `id` (String) Resource identifier
|
||||
- `node_id` (String) 20-byte node ID in hex format
|
||||
- `private_key` (String, Sensitive) 32-byte Curve25519 private key in hex format
|
||||
- `public_key` (String) 32-byte Curve25519 public key in hex format
|
||||
- `state_json` (String) Complete obfs4 state in JSON format
|
24
docs/resources/relay_identity_ed25519.md
Normal file
24
docs/resources/relay_identity_ed25519.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "tor_relay_identity_ed25519 Resource - tor"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Generates Ed25519 private key for Tor relay identity as required by the Tor specification.
|
||||
---
|
||||
|
||||
# tor_relay_identity_ed25519 (Resource)
|
||||
|
||||
Generates Ed25519 private key for Tor relay identity as required by the Tor specification.
|
||||
|
||||
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `algorithm` (String) Name of the algorithm used when generating the private key (always 'Ed25519')
|
||||
- `id` (String) Unique identifier based on public key fingerprint
|
||||
- `private_key_pem` (String, Sensitive) Private key data in PEM (RFC 1421) format
|
||||
- `public_key_fingerprint_sha256` (String) SHA256 fingerprint of the public key in hex format
|
||||
- `public_key_pem` (String) Public key data in PEM (RFC 1421) format
|
25
docs/resources/relay_identity_rsa.md
Normal file
25
docs/resources/relay_identity_rsa.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "tor_relay_identity_rsa Resource - tor"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Generates 1024-bit RSA private key for Tor relay identity as required by the Tor specification.
|
||||
---
|
||||
|
||||
# tor_relay_identity_rsa (Resource)
|
||||
|
||||
Generates 1024-bit RSA private key for Tor relay identity as required by the Tor specification.
|
||||
|
||||
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `algorithm` (String) Name of the algorithm used when generating the private key (always 'RSA')
|
||||
- `id` (String) Unique identifier based on public key fingerprint
|
||||
- `private_key_pem` (String, Sensitive) Private key data in PEM (RFC 1421) format
|
||||
- `public_key_fingerprint_sha1` (String) SHA1 fingerprint of the public key in hex format
|
||||
- `public_key_fingerprint_sha256` (String) SHA256 fingerprint of the public key in hex format
|
||||
- `public_key_pem` (String) Public key data in PEM (RFC 1421) format
|
Loading…
Add table
Add a link
Reference in a new issue