Int Ippwrite(Char *Buffer, Int Size) - VeriFone MX800 series Programmer's Manual

Hide thumbs Also See for MX800 series:
Table of Contents

Advertisement

D
D
EVICE
RIVERS

int ippWrite(char *buffer, int size)

int ippWrite(char *buffer, int size)
NOTE
50
M
X
800 S
P
ERIES
ROGRAMMERS
ippWrite() transfers a single complete IPP packet or a single character from
the buffer into the IPP. Incomplete, incorrectly framed packets, overly large, or
multiple packets in a single write are rejected. The valid start-of-packet characters
are STX and SI. The valid end-of-packet characters are ETX and SO. The only
single characters accepted are ACK, NAK, and EOT.
Parameters
Pointer to the data area
buffer
Maximum number of bytes to write
size
Return Values
The packet was transferred to the IPP.
=size
The task does not own the IPP.
-EBADF
Too may PIN sessions requested during a short period of time. Try
-EACCES
again in a few seconds. See note below.
Buffer is too large to be a valid IPP packet, the buffer pointer is not
-EINVAL
valid, the single character was not one of [ACK, NACK, EOT], the
packet has a bad LRC, or the packet is not framed correctly.
PIN encryption is limited to one per 30 seconds on average to deter an
exhaustive PIN search.
The algorithm is best explained in terms of tokens in a bucket. An encryption
request is only accepted if there is a token in a bucket. A token is placed in the
bucket every 30 seconds, with a maximum of 30 tokens allowed in the bucket.
The number of tokens in the bucket is limited to 2 on power up.
Every time a PIN is entered, a token is removed from the bucket. If there is no
token in the bucket, the PIN entry request returns an error:
IPP PIN entry : ippWrite returns -EACCES.
VSS PIN entry : iPS_RequestPINEntry returns E_KM_ACCESS_DENIED.
This allows an average of one PIN encryption per 30 seconds, but over a long
period of time. The intention is that under normal use, PIN entry is not denied.
G
UIDE

Advertisement

Table of Contents
loading

Table of Contents