List of Crypto Operations APIs.
The NetworkCryptoService
service
Method |
NetworkCryptoService.JoinRequestMIC
|
---|---|
Description | Calculate the join-request message MIC. |
Request type |
CryptoServicePayloadRequest
|
Response type |
CryptoServicePayloadResponse
|
HTTP bindings |
Method |
NetworkCryptoService.JoinAcceptMIC
|
---|---|
Description | Calculate the join-accept message MIC. |
Request type |
JoinAcceptMICRequest
|
Response type |
CryptoServicePayloadResponse
|
HTTP bindings |
Method |
NetworkCryptoService.EncryptJoinAccept
|
---|---|
Description | Encrypt the join-accept payload. |
Request type |
CryptoServicePayloadRequest
|
Response type |
CryptoServicePayloadResponse
|
HTTP bindings |
Method |
NetworkCryptoService.EncryptRejoinAccept
|
---|---|
Description | Encrypt the rejoin-accept payload. |
Request type |
CryptoServicePayloadRequest
|
Response type |
CryptoServicePayloadResponse
|
HTTP bindings |
Method |
NetworkCryptoService.DeriveNwkSKeys
|
---|---|
Description | Derive network session keys (NwkSKey, or FNwkSKey, SNwkSKey and NwkSEncKey) |
Request type |
DeriveSessionKeysRequest
|
Response type |
NwkSKeysResponse
|
HTTP bindings |
Method |
NetworkCryptoService.GetNwkKey
|
---|---|
Description | Get the NwkKey. Crypto Servers may return status code FAILED_PRECONDITION when root keys are not exposed. |
Request type |
GetRootKeysRequest
|
Response type |
KeyEnvelope
|
HTTP bindings |
Messages
Message ApplicationIdentifiers
Show object example
{
"application_id": "",
}
Fields:
Field |
application_id
|
---|---|
Type |
string
|
Description |
|
Message CryptoServicePayloadRequest
Show object example
{
"ids": {},
"lorawan_version": "MAC_UNKNOWN",
"payload": "",
"provisioner_id": "",
"provisioning_data": {},
}
Fields:
Field |
ids
|
---|---|
Type |
EndDeviceIdentifiers
|
Description |
End device identifiers for the cryptographic operation.
|
Field |
lorawan_version
|
---|---|
Type |
MACVersion
|
Description |
LoRaWAN version to use for the cryptographic operation.
|
Field |
payload
|
---|---|
Type |
bytes
|
Description |
Raw input payload.
|
Field |
provisioner_id
|
---|---|
Type |
string
|
Description |
Provisioner that provisioned the end device.
|
Field |
provisioning_data
|
---|---|
Type |
google.protobuf.
Struct
|
Description |
Provisioning data for the provisioner. |
Message CryptoServicePayloadResponse
Show object example
{
"payload": "",
}
Fields:
Field |
payload
|
---|---|
Type |
bytes
|
Description |
Raw output payload. |
Message DeriveSessionKeysRequest
Show object example
{
"ids": {},
"lorawan_version": "MAC_UNKNOWN",
"join_nonce": "",
"dev_nonce": "",
"net_id": "",
"provisioner_id": "",
"provisioning_data": {},
}
Fields:
Field |
ids
|
---|---|
Type |
EndDeviceIdentifiers
|
Description |
End device identifiers to use for key derivation. The DevAddr must be set in this request. The DevEUI may need to be set, depending on the provisioner.
|
Field |
lorawan_version
|
---|---|
Type |
MACVersion
|
Description |
LoRaWAN key derivation scheme.
|
Field |
join_nonce
|
---|---|
Type |
bytes
|
Description |
LoRaWAN JoinNonce (or AppNonce).
|
Field |
dev_nonce
|
---|---|
Type |
bytes
|
Description |
LoRaWAN DevNonce.
|
Field |
net_id
|
---|---|
Type |
bytes
|
Description |
LoRaWAN NetID.
|
Field |
provisioner_id
|
---|---|
Type |
string
|
Description |
Provisioner that provisioned the end device.
|
Field |
provisioning_data
|
---|---|
Type |
google.protobuf.
Struct
|
Description |
Provisioning data for the provisioner. |
Message EndDeviceIdentifiers
Show object example
{
"device_id": "",
"application_ids": {},
"dev_eui": "",
"join_eui": "",
"dev_addr": "",
}
Fields:
Field |
device_id
|
---|---|
Type |
string
|
Description |
|
Field |
application_ids
|
---|---|
Type |
ApplicationIdentifiers
|
Description |
|
Field |
dev_eui
|
---|---|
Type |
bytes
|
Description |
The LoRaWAN DevEUI.
|
Field |
join_eui
|
---|---|
Type |
bytes
|
Description |
The LoRaWAN JoinEUI (AppEUI until LoRaWAN 1.0.3 end devices).
|
Field |
dev_addr
|
---|---|
Type |
bytes
|
Description |
The LoRaWAN DevAddr.
|
Message JoinAcceptMICRequest
Show object example
{
"payload_request": {},
"join_request_type": "REJOIN_CONTEXT",
"dev_nonce": "",
}
Fields:
Field |
payload_request
|
---|---|
Type |
CryptoServicePayloadRequest
|
Description |
Request data for the cryptographic operation.
|
Field |
join_request_type
|
---|---|
Type |
JoinRequestType
|
Description |
LoRaWAN join-request type.
|
Field |
dev_nonce
|
---|---|
Type |
bytes
|
Description |
LoRaWAN DevNonce.
|
Message NwkSKeysResponse
Show object example
{
"f_nwk_s_int_key": {},
"s_nwk_s_int_key": {},
"nwk_s_enc_key": {},
}
Fields:
Field |
f_nwk_s_int_key
|
---|---|
Type |
KeyEnvelope
|
Description |
The (encrypted) Forwarding Network Session Integrity Key (or Network Session Key in 1.0 compatibility mode).
|
Field |
s_nwk_s_int_key
|
---|---|
Type |
KeyEnvelope
|
Description |
The (encrypted) Serving Network Session Integrity Key.
|
Field |
nwk_s_enc_key
|
---|---|
Type |
KeyEnvelope
|
Description |
The (encrypted) Network Session Encryption Key.
|
Message GetRootKeysRequest
Show object example
{
"ids": {},
"provisioner_id": "",
"provisioning_data": {},
}
Fields:
Field |
ids
|
---|---|
Type |
EndDeviceIdentifiers
|
Description |
End device identifiers to request the root keys for.
|
Field |
provisioner_id
|
---|---|
Type |
string
|
Description |
Provisioner that provisioned the end device.
|
Field |
provisioning_data
|
---|---|
Type |
google.protobuf.
Struct
|
Description |
Provisioning data for the provisioner. |
Message KeyEnvelope
Show object example
{
"key": "",
"kek_label": "",
"encrypted_key": "",
}
Fields:
Field |
key
|
---|---|
Type |
bytes
|
Description |
The unencrypted AES key.
|
Field |
kek_label
|
---|---|
Type |
string
|
Description |
The label of the RFC 3394 key-encryption-key (KEK) that was used to encrypt the key.
|
Field |
encrypted_key
|
---|---|
Type |
bytes
|
Description |
|
Enums
Enum JoinRequestType
Name | Value | Description |
---|---|---|
REJOIN_CONTEXT |
0 |
Resets DevAddr, Session Keys, Frame Counters, Radio Parameters. |
REJOIN_SESSION |
1 |
Equivalent to the initial JoinRequest. |
REJOIN_KEYS |
2 |
Resets DevAddr, Session Keys, Frame Counters, while keeping the Radio Parameters. |
JOIN |
255 |
Normal join-request. |
Enum MACVersion
Name | Value | Description |
---|---|---|
MAC_UNKNOWN |
0 |
|
MAC_V1_0 |
1 |
|
MAC_V1_0_1 |
2 |
|
MAC_V1_0_2 |
3 |
|
MAC_V1_1 |
4 |
|
MAC_V1_0_3 |
5 |
|
MAC_V1_0_4 |
6 |