PD Info
osdp_pd_info_t is a user provided structure which describes how the PD has to
be setup. In CP mode, the app described the PDs it would like to communicate
with using an array of osdp_pd_info_t structures.
- 
struct osdp_pd_info_t
- OSDP PD Information. This struct is used to describe a PD to LibOSDP. - Public Members - 
const char *name
- User provided name for this PD (log messages include this name) 
 - 
int baud_rate
- Can be one of 9600/19200/38400/57600/115200/230400 
 - 
int address
- 7 bit PD address. the rest of the bits are ignored. The special address 0x7F is used for broadcast. So there can be 2^7-1 devices on a multi-drop channel 
 - 
int flags
- Used to modify the way the context is setup. See - OSDP_FLAG_*macros.
 - 
struct osdp_pd_id id
- Static information that the PD reports to the CP when it received a - CMD_ID. These information must be populated by a PD application.
 - 
const struct osdp_pd_cap *cap
- This is a pointer to an array of structures containing the PD’ capabilities. Use { -1, 0, 0 } to terminate the array. This is used only PD mode of operation 
 - 
struct osdp_channel channel
- Communication channel ops structure, containing send/recv function pointers 
 - 
const uint8_t *scbk
- Pointer to 16 bytes of Secure Channel Base Key for the PD. If non-null, this is used to set-up the secure channel. 
 
- 
const char *name
Setup Flags
OSDP setup in CP or PD mode can be infulenced by the following flags (set in
osdp_pd_info_t::flags). Some of them are effective only in CP or PD mode; see
individual flag documentation below.
- 
OSDP_FLAG_ENFORCE_SECURE
- OSDP setup flags. See osdp_pd_info_t::flags. - ENFORCE_SECURE: Make security conscious assumptions (see below) where possible. Fail where these assumptions don’t hold. - Don’t allow use of SCBK-D. 
- Assume that a KEYSET was successful at an earlier time. 
- CP does not allow user requested broadcast commands (see OSDP_CMD_FLAG_BROADCAST) 
 - Note - This flag is recommended in production use. 
- 
OSDP_FLAG_INSTALL_MODE
- When set, the PD would allow one session of secure channel to be setup with SCBK-D. - Note - In this mode, the PD is in a vulnerable state, the application is responsible for making sure that the device enters this mode only during controlled/provisioning-time environments. 
- 
OSDP_FLAG_IGN_UNSOLICITED
- When set, CP will not error and fail when the PD sends an unknown, unsolicited response (in response to osdp_POLL command). - Note - In PD mode this flag has no use. 
- 
OSDP_FLAG_ENABLE_NOTIFICATION
- Enable LibOSDP notification events - osdp_event_notification - to be reported using the event callback method registered by the application. - Note - These events, unlike others, are not generated by the PD. - Note - This is a CP mode only flag; in PD mode this flag has no use. 
- 
OSDP_FLAG_CAPTURE_PACKETS
- Capture raw osdp packets as seen by this device to a pcap file. LibOSDP must be built with OPT_OSDP_PACKET_TRACE or OPT_OSDP_DATA_TRACE for this flag to be in effect. - Note - The app must call osdp_{cp,pd}_teardown() before existing for the capture file to be finalized and written to the disk. 
- 
OSDP_FLAG_ALLOW_EMPTY_ENCRYPTED_DATA_BLOCK
- Allow an empty encrypted data block(SCS_17 and SCS_18 packets). This is non-conforming to the standard. If there is no data to be transferred, the CP should instead use the SCS_15/SCS_16 messages. Some OSDP implementations are buggy and send a 0-length data block with the SCS_17 and SCS_18 messages, this flag accepts that buggy behavior. - Note - this is a PD mode only flag