Skip to content

Scurid Edge Agent

These are the set of APIs that are exposed when running Scurid Edge Agent on an IoT device.

Reference filename : edgeagent.proto

CreateDeviceIdentityReq

left blank intentionally

CreateDeviceIdentityRes

Field Type Label Description
did string

DeleteDeviceIdentityReq

Field Type Label Description
did string

DeleteDeviceIdentityRes

Field Type Label Description
result bool

DownloadFilesReq

request structure to be sent

Field Type Label Description
identity string device's public identity
path string where ever user wants to store the files

DownloadFilesRes

true if all files are downloaded, else false - check error for details

Field Type Label Description
result bool True/False, confirms if the files have been downloaded, check for error if false

Empty

left blank

GetDeviceIdentityReq

DID to be checked if it exists

Field Type Label Description
did string

GetDeviceIdentityRes

provides validation that device's DID is already generated

Field Type Label Description
did string

GetOnboardingPackageReq

Field Type Label Description
did string public DID

GetOnboardingPackageRes

Field Type Label Description
onboardingPkg string can contain any kind of on boarding information, JSON, XML etc.

GetScuridEdgeAgentVersionRes

provides what agent version is currently installed on the hardware

Field Type Label Description
agentVersion string

GetTokenReq

Field Type Label Description
username string public DID

GetTokenRes

Field Type Label Description
token string short lived encrypted token returned by the server on successful login

RegisterDeviceIdentityReq

sent by any client using the edge agent for generating the identity req expects fields of type GetDeviceIdentityReq and GetScuridEdgeAgentVersionRes

Field Type Label Description
did string public identity of DID
unixTime int64 time of request
deviceName string device name provided by the Iot Software interacting with the agent

RegisterDeviceIdentityRes

Response for registration request from the caller

Field Type Label Description
result bool simply a confirmation if request has been received or not

SignBytePayloadWithIdentityReq

Field Type Label Description
payload bytes array if bytes to be signed
did string identity i.e. did:scurid:XXXXXXXXXXX ; NOTE identity is case sensitive

SignBytePayloadWithIdentityRes

Field Type Label Description
signature string generated signature

SignWithIdentityReq

Field Type Label Description
payload string data to be signed
did string identity i.e. did:scurid:XXXXXXXXXXX ; note identity is case sensitive

SignWithIdentityRes

Field Type Label Description
signature string generated signature

VerifyBytePayloadWithIdentityReq

Field Type Label Description
signature string
payload bytes
did string identity i.e. did:scurid:XXXXXXXXXXX ; NOTE: identity is case sensitive

VerifyBytePayloadWithIdentityRes

Field Type Label Description
isValid bool true if valid, else false (Defaults to False)

VerifySignatureReq

Field Type Label Description
signature string
payload string
did string identity i.e. did:scurid:XXXXXXXXXXX ; note identity is case sensitive

VerifySignatureRes

Field Type Label Description
isValid bool true if valid, else false

ScuridEdgeAgentAPI

Method Name Request Type Response Type Description
CreateDeviceIdentity CreateDeviceIdentityReq CreateDeviceIdentityRes Create an identity
DeleteDeviceDID DeleteDeviceIdentityReq DeleteDeviceIdentityRes Delete an existing DID
GetDeviceIdentity GetDeviceIdentityReq GetDeviceIdentityRes Validates if particular identity was already created locally
GetScuridEdgeAgentVersion Empty GetScuridEdgeAgentVersionRes Get currently installed version of edge agent
SignWithIdentity SignWithIdentityReq SignWithIdentityRes Signs a payload with identity
VerifySignature VerifySignatureReq VerifySignatureRes Verifies a signature tagged to the payload
SignBytePayloadWithIdentity SignBytePayloadWithIdentityReq SignBytePayloadWithIdentityRes Signs a byte array payload with identity
VerifyBytePayloadWithIdentity VerifyBytePayloadWithIdentityReq VerifyBytePayloadWithIdentityRes Verifies a byte array payload with identity
RegisterDeviceIdentity RegisterDeviceIdentityReq RegisterDeviceIdentityRes To be called for registering the device identity for the first time Expects additional device data that will be used for binding the identity with the device
GetToken GetTokenReq GetTokenRes GetToken to receive required token from Scurid Platform App Needed in order to access APIs that need authentication from the Scurid Platform App Not used for authentication locally on the Scurid Edge Agent Also used for refreshing the token
DownloadFiles DownloadFilesReq DownloadFilesRes Used for downloading one or more files number of files to download will depend on files prepared by the admin on Scurid Platform App

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)