Credential Profiles
Scope note: this page describes the credential-profile surface exposed through proto/org.proto.
Overview
Credential profiles configure how Link and firmware read a generic DESFire credential.
At a high level, a credential profile defines:
- how the DESFire application is selected
- how authentication is performed
- whether a privacy application is used first
- what file data is read
- how credential bytes are extracted
- how the transaction is completed
Current API Surface
The current Org API exposes credential profiles through:
Org.UpdateCredentialProfiles(UpdateCredentialProfilesRequest)DeviceSummary.credential_profilescredential_profile.protocredential_profile_configurations.protokeys.GenericDesfire
UpdateCredentialProfiles
UpdateCredentialProfiles sends a complete credential-profile set to one or more devices.
Request shape:
device_ids: target devicesprofile_set: completeDesfireProfileInputSetto apply
DesfireProfileInputSet contains:
profiles[]: repeatedDesfireProfileInputecp: optional bytes payload
Each DesfireProfileInput contains:
configurations:lastlock.api.DesfireProfileConfigurationskeys:lastlock.api.keys.GenericDesfire
Configuration Model
DesfireProfileConfigurations defines the generic DESFire transaction settings.
Important fields include:
select_method,app_aid,df_nameprivacy_aid,privacy_auth_method,privacy_div_method,privacy_key_num_on_cardget_card_uidcred_auth_method,cred_div_method,cred_key_num_on_cardfile_number,read_offset,read_lengthcredential_offset,credential_lengthcommit_type
The related enums are:
SelectMethodAuthMethodDivMethodCommitType
Key Material
Credential profiles use lastlock.api.keys.GenericDesfire key material:
credential_key: required AES-128 credential authentication keyprivacy_key: optional AES-128 privacy authentication key
Those keys are supplied alongside the profile configuration in each DesfireProfileInput.
Device Summary
DeviceSummary.credential_profiles contains the last DesfireProfileSet sent for the device.
Guidance
When using credential profiles:
- treat
UpdateCredentialProfilesas a full profile-set update for the target devices - keep each profile’s
configurationsandkeyspaired correctly - use
DeviceSummary.credential_profileswhen you need to inspect the last profile snapshot sent to a device