SaQura Crypto API · REST · v1
SaQura Crypto API
はじめに
SaQura Crypto API は、HTTPS 経由のポスト量子暗号のホスト型 REST インターフェースです。SDK 不要、どの言語からでも利用可能。SDK と同じ SaQura エンジン(1.0.11)を使用します。
- Base URL:
https://crypto.saqura.de - アルゴリズム: AES-256-GCM, RSA-4096 (OAEP/PSS), PBKDF2-SHA512, PQC-KEM (FrodoKEM / Classic-McEliece / X25519+ML-KEM FIPS 203), PQC署名 (ML-DSA FIPS 204 / SLH-DSA FIPS 205)
- プライバシー: コンテンツはメモリ内で処理され保存されません。平文・鍵はレスポンスにもログにも残りません。
機能の確認 (キー不要): GET /v1/capabilities · GET /health
curl https://crypto.saqura.de/v1/capabilities認証
すべての /v1 暗号エンドポイントは Authorization ヘッダーに API キー(Bearer、Stripe 形式)が必要です:
Authorization: Bearer sk_live_…sk_live_…= 本番、sk_test_…= テスト。- キーの取得: saqura.de/pricing (SaQura Crypto サブスクリプション).
- キーなし/無効 →
401. プランに機能が含まれない →403.
クイックスタート
AES-256-GCM
# Encrypt (key optional — omit and the API returns a fresh key)
curl -X POST https://crypto.saqura.de/v1/aes/encrypt \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{"plaintext":"hello"}'
# -> {"ciphertext":"…","key":"…"}
# Decrypt
curl -X POST https://crypto.saqura.de/v1/aes/decrypt \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{"ciphertext":"…","key":"…"}'
# -> {"plaintext":"hello"}エンドポイント
すべてのパスは次を基準とします: https://crypto.saqura.de. JSON フィールドは camelCase。
| メソッド & パス | リクエスト | レスポンス | プラン |
|---|---|---|---|
GET /v1/usage | — | {plan, period, used, includedPerMonth, remaining, rateLimitPerMinute, overage} | 全プラン |
POST /v1/aes/encrypt | {plaintext, key?} | {ciphertext, key} | Standard |
POST /v1/aes/decrypt | {ciphertext, key} | {plaintext} | Standard |
POST /v1/password/hash | {password} | {hash} | Basic |
POST /v1/password/verify | {password, hash} | {valid} | Basic |
POST /v1/rsa/keypair | {} | {publicKey, privateKey} | Basic |
POST /v1/rsa/encrypt | {plaintext, publicKey} | {ciphertext} | Basic |
POST /v1/rsa/decrypt | {ciphertext, privateKey} | {plaintext} | Basic |
POST /v1/rsa/sign | {data, privateKey} | {signature} | Basic |
POST /v1/rsa/verify | {data, signature, publicKey} | {valid} | Basic |
POST /v1/quantum/keypair | {strength?, generation?} | {publicKey, privateKey, strength, generation} | Pro |
POST /v1/quantum/encrypt | {plaintext, publicKey} | {ciphertext, encapsulatedSecret} | Pro |
POST /v1/quantum/decrypt | {ciphertext, privateKey, encapsulatedSecret} | {plaintext} | Pro |
POST /v1/quantum/sign/keypair | {strength?, algorithm?} | {publicKey, privateKey, strength, algorithm} | Pro |
POST /v1/quantum/sign | {data, privateKey, algorithm?} | {signature} | Pro |
POST /v1/quantum/verify | {data, signature, publicKey, algorithm?} | {valid} | Pro |
自分の利用状況
GET /v1/usage は、当月における自分のAPIキーの利用状況(プラン、使用リクエスト数、プラン内枠、残り、制限、超過)を返します。他の /v1 と同様に認証が必要ですが、これ自体は課金されません。表示されるのは自分の数値のみです。
# Your own usage for the current month (authenticated, NOT billed)
curl https://crypto.saqura.de/v1/usage \
-H "Authorization: Bearer sk_live_…"
# -> {"plan":"Pro","period":"2026-06","used":1234,
# "includedPerMonth":2000000,"remaining":1998766,
# "rateLimitPerMinute":1200,"overage":{"requests":null,"per1000":1,"note":"…"}}ポスト量子(KEM + 署名)
KEM 暗号化(Pro+)。世代:Gen4〜7(BSI プロファイル)と Gen8(X25519 + ML-KEM、FIPS 203)。復号には ciphertext と encapsulatedSecret の両方が必要です。
# 1) key pair (Gen4 default; Gen8 = X25519 + ML-KEM / FIPS 203)
curl -X POST https://crypto.saqura.de/v1/quantum/keypair \
-H "Authorization: Bearer sk_live_…" -H "Content-Type: application/json" \
-d '{"strength":"Highest","generation":"Gen8"}'
# -> {"publicKey":"…","privateKey":"…","strength":"Highest","generation":"Gen8"}
# 2) encrypt to the public key
curl -X POST https://crypto.saqura.de/v1/quantum/encrypt \
-H "Authorization: Bearer sk_live_…" -H "Content-Type: application/json" \
-d '{"plaintext":"secret","publicKey":"…"}'
# -> {"ciphertext":"…","encapsulatedSecret":"…"}
# 3) decrypt (needs both ciphertext and encapsulatedSecret)
curl -X POST https://crypto.saqura.de/v1/quantum/decrypt \
-H "Authorization: Bearer sk_live_…" -H "Content-Type: application/json" \
-d '{"ciphertext":"…","privateKey":"…","encapsulatedSecret":"…"}'
# -> {"plaintext":"secret"}署名(ML-DSA / SLH-DSA)
# ML-DSA (FIPS 204) — pass "SLH-DSA" for FIPS 205
curl -X POST https://crypto.saqura.de/v1/quantum/sign/keypair \
-H "Authorization: Bearer sk_live_…" -H "Content-Type: application/json" \
-d '{"strength":"Highest","algorithm":"ML-DSA"}'
curl -X POST https://crypto.saqura.de/v1/quantum/sign \
-H "Authorization: Bearer sk_live_…" -H "Content-Type: application/json" \
-d '{"data":"document","privateKey":"…","algorithm":"ML-DSA"}'
# -> {"signature":"…"}
curl -X POST https://crypto.saqura.de/v1/quantum/verify \
-H "Authorization: Bearer sk_live_…" -H "Content-Type: application/json" \
-d '{"data":"document","signature":"…","publicKey":"…","algorithm":"ML-DSA"}'
# -> {"valid":true}プランとクォータ
機能はプランごとに解放されます。制限は2種類:1分あたりのスループット制限(APIキーごと、匿名はIPごと)と、月額プランの場合は月間のプラン内リクエスト数です。
| プラン | 機能 | クォータ(req/分) | 込み/月 |
|---|---|---|---|
| Basic | RSA · Password | 300 | 50.000 |
| Standard | + AES | 600 | 250.000 |
| Pro | + Quantum (KEM · ML-DSA · SLH-DSA) | 1200 | 200万 |
| Scale | + Quantum(大容量) | 6000 | 1000万 |
| Enterprise | すべて | 12000 | 個別 |
| キーなし/無効 | — (401) | 60 | — |
月額プランでは、月間のプラン内リクエスト数を超えた分は従量課金されます:1,000 リクエストあたり 1 €(選択した通貨で相当額)。年額プランは従量課金なし。値は初期クォータで、調整される場合があります。
注:計算負荷の高い鍵生成(RSA/ポスト量子鍵ペア、パスワードハッシュ)は、高負荷時の安定性のため同時実行数も制限されます。そのためスパイク時には、1分あたりのクォータ内でも 429(Retry-After ヘッダー)が返ることがあります。少し待って指数バックオフで再試行してください。
エラー
エラーは Problem Details 形式(RFC 7807)に従います:
400— 無効な入力(例:"Invalid base64 input.")。ペイロードは返されません。401— キーなし/無効。403— プランに機能が含まれていません。429— クォータ超過(Retry-After ヘッダー)。
ご質問は お問い合わせフォーム. 鍵・平文をチケットに含めないでください。