Skip to content

Environment Setup

This guide helps you prepare your development environment to work with AnkaSecure's post-quantum cryptography platform.


Platform Access

SaaS Platform

AnkaSecure is available as a fully managed SaaS platform. To get started:

  1. Request Access: Contact sales@ankatech.co or your account representative
  2. Receive Credentials: You'll receive:
  3. Tenant ID: Your organization's unique identifier
  4. API Endpoint: https://api.ankasecure.com
  5. Initial Admin User: Credentials to access the platform

  6. Access Admin Console: Log in to configure your organization

  7. URL: https://console.ankasecure.com
  8. Create additional users and applications
  9. Generate API keys for service-to-service authentication

Enterprise On-Premise: For on-premise deployment, contact AnkaTech professional services. Installation and configuration are handled by our team.


Prerequisites by Integration Method

For SDK Integration

Java Development Kit (JDK): - Version: Java 11 or higher (Java 17+ recommended) - Download: OpenJDK or Oracle JDK

Build Tool (one of): - Maven 3.6+ - Download - Gradle 7.0+ - Download

IDE (optional but recommended): - IntelliJ IDEA, Eclipse, or VS Code with Java extensions

Verify Installation:

java -version
# java version "17.0.9" or higher

mvn -version
# Apache Maven 3.9.0 or higher

For CLI Integration

Operating System: - Windows: Windows 10/11 (64-bit) - macOS: macOS 11 (Big Sur) or later - Linux: Ubuntu 20.04+, CentOS 8+, or equivalent

Runtime: - CLI is a standalone executable (no additional runtime required) - Java runtime is bundled with the installer

Package Manager (optional, for easier installation): - macOS: Homebrew - Linux: apt, yum, or snap

Verify Installation:

ankasecure-cli version
# AnkaSecure CLI v3.0.0

For REST API Integration

HTTP Client: - curl (command-line) - Pre-installed on macOS/Linux, Windows download - Postman (GUI) - Download - Programming Language: Any language with HTTP library support

Network Requirements: - Outbound HTTPS access to api.ankasecure.com (port 443) - TLS 1.2 or higher support

Verify Connectivity:

curl -I https://api.ankasecure.com/api/v1/public/health
# HTTP/2 200
# content-type: application/json


Authentication Setup

1. Generate API Key (via Admin Console): - Log in to https://console.ankasecure.com - Navigate to ApplicationsCreate Application - Copy the generated API key (shown once)

2. Configure API Key:

SDK (Java):

ClientConfig config = ClientConfig.builder()
    .baseUrl("https://api.ankasecure.com")
    .apiKey("ask_1234567890abcdef...")  // Your API key
    .tenant("your-tenant-id")
    .build();

CLI:

ankasecure-cli config set api-key "ask_1234567890abcdef..."
ankasecure-cli config set tenant-id "your-tenant-id"

REST API (HTTP Header):

curl https://api.ankasecure.com/api/v1/crypto/encrypt \
  -H "Authorization: Bearer ask_1234567890abcdef..." \
  -H "X-Tenant-ID: your-tenant-id"

Option 2: User Authentication (JWT)

1. Obtain JWT Token:

curl -X POST https://api.ankasecure.com/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "username": "your-username",
    "password": "your-password",
    "tenantId": "your-tenant-id"
  }'

Response:

{
  "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expiresIn": 3600,
  "refreshToken": "..."
}

2. Use Token (valid for 1 hour):

export TOKEN="eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."

curl https://api.ankasecure.com/api/v1/crypto/encrypt \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Tenant-ID: your-tenant-id"


Network Configuration

Firewall Requirements

Outbound HTTPS (from your application/server): - Destination: api.ankasecure.com - Port: 443 (HTTPS) - Protocol: TCP - TLS: 1.2 or higher

Allow List:

*.ankasecure.com    # API and Console endpoints

Proxy Configuration

If your network uses an HTTP proxy:

SDK (Java) - Set JVM properties:

java -Dhttps.proxyHost=proxy.example.com \
     -Dhttps.proxyPort=8080 \
     -jar your-application.jar

CLI - Set environment variables:

export HTTPS_PROXY=http://proxy.example.com:8080
ankasecure-cli key list

REST API - curl proxy:

curl -x http://proxy.example.com:8080 \
  https://api.ankasecure.com/api/v1/public/health


Security Best Practices

API Key Management

DO: - Store API keys in environment variables or secret managers - Use separate keys for development, staging, and production - Rotate keys periodically (every 90 days recommended) - Restrict key permissions to minimum required

DON'T: - Hardcode API keys in source code - Commit API keys to version control (Git, SVN) - Share API keys via email or chat - Use production keys in development environments

Example (Environment Variables):

# .env file (add to .gitignore)
ANKASECURE_API_KEY=ask_1234567890abcdef...
ANKASECURE_TENANT_ID=your-tenant-id
ANKASECURE_BASE_URL=https://api.ankasecure.com

Load in Application:

String apiKey = System.getenv("ANKASECURE_API_KEY");
String tenantId = System.getenv("ANKASECURE_TENANT_ID");

Certificate Validation

Always validate TLS certificates:

SDK: Certificate validation is enabled by default (do not disable).

CLI: Runs with certificate validation enabled.

REST API:

# ✅ CORRECT (validates certificates)
curl https://api.ankasecure.com/...

# ❌ INCORRECT (skips validation - INSECURE)
curl -k https://api.ankasecure.com/...  # Never use -k in production


Testing Your Setup

1. Verify Connectivity

curl -I https://api.ankasecure.com/api/v1/public/health

# Expected: HTTP/2 200

2. Authenticate

API Key:

curl https://api.ankasecure.com/api/v1/key-management/keys \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Tenant-ID: YOUR_TENANT_ID"

# Expected: JSON list of keys (or empty array if no keys yet)

JWT:

curl -X POST https://api.ankasecure.com/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"YOUR_USER","password":"YOUR_PASS","tenantId":"YOUR_TENANT"}'

# Expected: { "token": "...", "expiresIn": 3600 }

3. Generate a Test Key

curl -X POST https://api.ankasecure.com/api/v1/key-management/keys \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Tenant-ID: YOUR_TENANT_ID" \
  -H "Content-Type: application/json" \
  -d '{"algorithm":"ML-KEM-768","keyId":"test-setup-key"}'

# Expected: { "keyId": "test-setup-key", "status": "ACTIVE", ... }

✅ Success: If you receive a 200 OK response, your environment is ready!


Troubleshooting

Connection Refused

Symptom: curl: (7) Failed to connect to api.ankasecure.com port 443

Solutions: - Check firewall allows outbound HTTPS (port 443) - Verify DNS resolves api.ankasecure.com:

nslookup api.ankasecure.com
- Test with proxy if behind corporate firewall

Authentication Failed (401 Unauthorized)

Symptom: {"error":"AUTH_001","message":"Token validation failed"}

Solutions: - Verify API key is correct (copy from Admin Console) - Check X-Tenant-ID header matches your tenant - Ensure API key is active (not revoked or expired) - For JWT: Check token hasn't expired (1-hour lifetime)

Certificate Verification Failed

Symptom: SSL certificate problem: unable to get local issuer certificate

Solutions: - Update CA certificates:

# Ubuntu/Debian
sudo apt-get update && sudo apt-get install ca-certificates

# CentOS/RHEL
sudo yum update ca-certificates
- For Java: Update JRE/JDK to latest version - Check system time is correct (certificate validation is time-sensitive)

Rate Limit Exceeded (429 Too Many Requests)

Symptom: {"error":"RATE_001","message":"Rate limit exceeded"}

Solutions: - Review X-RateLimit-Remaining header in responses - Implement exponential backoff in your application - Contact support to increase rate limit for your tenant

For more help, see: - Common Errors - API Error Reference


Next Steps

Environment ready? Continue with:


Documentation Version: 3.0.0 Last Updated: 2025-12-26