KEYSET_DATA object

The JSON KEYSET_DATA object stores the parameters and keys that are necessary to read, format, write and authenticate a Master Card, i.e.

  • Optionaly, the identification of the target device brand (default is, of course, SpringCard),
  • The identification of the keyset that the device is expected to have,
  • The value of the private key to sign the configuration data,
  • The value of the read and write keys to protect the data on the card.

The specification of this KEYSET_DATA object is taken from the specification of the files used by the SpringCoreConfig command-line tool.

Object definition

Field name Type Status Description / Remark
BrandId string option ID of the keyset, in hex (2 bytes)
Leave empty or set to 0000 for SpringCard products
KeyId string option ID of the keyset that is currently in the device, in hex (2 bytes)
If this entry is missing and an ECC key is provided, the value is computed
as CRC32(PublicKey)
PrivateKey string option ECC private key to sign the data, in hex (32 bytes)
PublicKey string option ECC public key, in hex (64 bytes)
If this entry is missing, it is computed from the PrivateKey
AuthKeyRead string option AES secret key to read the data, in hex (16 bytes)
AuthKeyWrite string option AES secret key to write the data, in hex (16 bytes)

Remarks

  • For all ECC operations, curve is P-256.

  • If the device is blank (out of factory condition), DO NOT populate any entry, to let Companion Service us SpringCard’s default keys.