/
BoB Device API

BoB Device API

The BoB Device API provides device key derivation for app backends and serves key derivation keys to trusted validation and inspection clients.

getDeviceKey

getDeviceKey will return a symmetric device key derived from a (secret) shared KDK (Key Derivation Key). The only input parameter is a Device ID, encoded using base64url.

Authorization: App backends are usually the only entities authorized for this call.

References: Key derivation functions are documented in MTS2.

Example request
curl --verbose -X POST --data @- \
     --header "Content-Type: application/json" \
     --header "X-BoB-AuthToken: REDACTED_JWT" \
     https://device.bob.example.com/api/v1/device/key <<JSON
{"did": "QTgyRUQ2RTktNURENi00QkVGLTkzMUQtMkRENkYwRjRDQkJD"}
JSON
Example response
{
 "did": "QTgyRUQ2RTktNURENi00QkVGLTkzMUQtMkRENkYwRjRDQkJD",
 "kid": "1337:20170320",
 "kty": "oct",
 "exp": 1490002591,
 "iat": 1489998991,
 "k": "-m9kaRQMwpp50MKtOUUR2Q"
}

getDeviceKDK

getDeviceKDK will return all current key derivation keys.

Authorization: Validators (and inspectors) are usually the only entities authorized for this call.

Example request
curl --verbose -X GET \
     --header "X-BoB-AuthToken: REDACTED_JWT" \
     https://device.bob.example.com/api/v1/device/kdk
Example response
{
    "keys": [
        {
            "pid": "1",
            "kid": "foo",
            "kty": "oct",
            "kdf": "mts2",
            "k": "SFJDSUMxT0UyVjRVVzIxQk9IMVFTNURCMlEyVDRaM0g"
        },
        {
            "pid": "1",
            "kid": "bar",
            "kty": "oct",
            "kdf": "mts2",
            "k": "MFhTRVNWWTJaNlFBWlE0RDFTOFU0NEtZSDA2U1BMU1c"
        }
    ]
}