Appearance
me.virmesh.account.verifyAccountKey
公開鍵に対応する秘密鍵を保持していることを検証します。
ログインや再認証の前段で、指定した公開鍵に対する署名を検証する action です。
クライアントは canonical JSON of payload に署名して送信します。
この action 自体は鍵所有の確認だけを行い、session 発行やプロフィール取得は含みません。
Endpoint
Request schema
payload.key_typestringRequired鍵種別。現時点では ed25519 を想定します。
payload.public_keystringRequired検証対象の公開鍵です。
payload.created_atintegerRequiredクライアント送信時刻。UNIX epoch milliseconds を送ります。
payload.challengestringOptional任意の challenge token です。未指定でもログイン時の鍵所有確認に使えます。
signaturestringRequiredcanonical JSON of payload に対する署名です。
Request example
{
"payload": {
"key_type": "ed25519",
"public_key": "base64-public-key",
"created_at": 1770000000000
},
"signature": "base64-signature"
}Responses
200status+me.virmesh.success.accountKeyVerified公開鍵に対応する秘密鍵の保持が検証されたことを示します。
status+me.virmesh.success.accountKeyVerified公開鍵に対応する秘密鍵の保持が検証されたことを示します。
me.virmesh.account.verifyAccountKey が正常終了し、
指定した公開鍵に対応する秘密鍵をクライアントが保持していることが確認されたときに返します。
account key verified
{
"status": "status+me.virmesh.success.accountKeyVerified"
}400status+me.virmesh.json.invalid_payload`payload`がactionの期待する形式ではないことを示します。
status+me.virmesh.json.invalid_payload`payload`がactionの期待する形式ではないことを示します。
リクエストデータ自体はJSON objectとして解釈できたものの、 期待する形式と一致しない場合に使います。
Status payload
payload.messagestringRequired検証に失敗した理由を表す詳細メッセージです。
invalid payload
{
"status": "status+me.virmesh.json.invalid_payload",
"payload": {
"message": "送信されたペイロードが正しい形式ではありません。"
}
}400status+me.virmesh.key.invalid_key送信された公開鍵がこの key scheme では受理できないことを示します。
status+me.virmesh.key.invalid_key送信された公開鍵がこの key scheme では受理できないことを示します。
公開鍵の encoding、byte length、または key material が想定する key type に 合致しない場合に返します。
Status payload
payload.messagestringRequired公開鍵が不正である理由を表す詳細メッセージです。
invalid key
{
"status": "status+me.virmesh.key.invalid_key",
"payload": {
"message": "送信された鍵が無効です。"
}
}400status+me.virmesh.key.invalid_signature署名の形式が不正、または署名検証に失敗したことを示します。
status+me.virmesh.key.invalid_signature署名の形式が不正、または署名検証に失敗したことを示します。
この status は署名文字列が base64 として不正な場合と、 復元できた署名が検証に失敗した場合に使われます。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。
signature verification failed
{
"status": "status+me.virmesh.key.invalid_signature",
"payload": {
"message": "Signature verification failed."
}
}400status+me.virmesh.key.unsupported_keytype送信された鍵種別がそのサーバーでサポートされていないことを示します。
status+me.virmesh.key.unsupported_keytype送信された鍵種別がそのサーバーでサポートされていないことを示します。
指定された鍵方式にサーバーが対応しておらず、リクエストを処理できないことを示します。
例えば、action が ed25519 鍵を要求しているにもかかわらず、クライアントが secp256k1 鍵を送信した場合などに返されます。
Status payload
payload.messagestringRequired未対応であることを示すメッセージです。
unsupported key type
{
"status": "status+me.virmesh.key.unsupported_keytype",
"payload": {
"message": "送信された鍵の種類はサポートされていません。"
}
}501status+me.virmesh.action.not_supported要求した action が現在の server では利用できないことを示します。
status+me.virmesh.action.not_supported要求した action が現在の server では利用できないことを示します。
指定されたactionがサーバー上で無効化されており、使用できないことを示します。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。
action is disabled
{
"status": "status+me.virmesh.action.not_supported",
"payload": {
"message": "registerAccountKeyによる登録がサポートされていません。"
}
}