{"service":"HALOWERK iotwerk","endpoint":"/v1/device-auth","method":"POST","content_type":"application/json","inputSchema":{"type":"object","required":["device_id","nonce","message","ephemeral_key"],"additionalProperties":false,"properties":{"device_id":{"type":"string","minLength":1,"maxLength":128,"description":"Stable device identifier."},"nonce":{"type":"string","minLength":8,"maxLength":256,"description":"Fresh caller-generated challenge nonce."},"message":{"type":"string","minLength":1,"maxLength":4096,"description":"Challenge payload."},"ephemeral_key":{"type":"string","minLength":16,"maxLength":512,"description":"Ephemeral HMAC key; long-lived production keys must not be sent."},"claimed_tag_hex":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}},"requestExample":{"device_id":"sensor-berlin-17","nonce":"20260831-0001","message":"boot:4.2.1","ephemeral_key":"example-ephemeral-key-2026"},"operations":[{"method":"POST","inputSchema":{"type":"object","required":["device_id","nonce","message","ephemeral_key"],"additionalProperties":false,"properties":{"device_id":{"type":"string","minLength":1,"maxLength":128,"description":"Stable device identifier."},"nonce":{"type":"string","minLength":8,"maxLength":256,"description":"Fresh caller-generated challenge nonce."},"message":{"type":"string","minLength":1,"maxLength":4096,"description":"Challenge payload."},"ephemeral_key":{"type":"string","minLength":16,"maxLength":512,"description":"Ephemeral HMAC key; long-lived production keys must not be sent."},"claimed_tag_hex":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}},"requestExample":{"device_id":"sensor-berlin-17","nonce":"20260831-0001","message":"boot:4.2.1","ephemeral_key":"example-ephemeral-key-2026"}}],"example_request":{"device_id":"sensor-berlin-17","nonce":"20260831-0001","message":"boot:4.2.1","ephemeral_key":"example-ephemeral-key-2026"},"serviceName":"iotwerk_device_auth","tags":["iot","security","hmac"],"outputSchema":{"type":"object","required":["method"],"properties":{"method":{"type":"string"}},"additionalProperties":true},"outputExample":{"device_id":"sensor-berlin-17","challenge_sha256":"18bc9813c9e7eada747dded26e0f2345367cc77db04c8c4bab52a1e9c0f92c9f","tag_hex":"e0fe0e124f142e26c9ee890cd6e121b55993a4cf0f6df4ed325066c962e2ae05","claimed_tag_matches":null,"method":"HMAC-SHA256 tag verification over a canonical device challenge"}}