2 ipsec sample – Freescale Semiconductor SEC2SWUG User Manual

Page 37

Advertising
background image

SEC 2.0 Reference Device Driver User’s Guide, Rev. 0

Freescale Semiconductor

PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE

37

Sample Code

desencReq.status = 0;

desencReq.ivBytes = 8; /* input iv length */

desencReq.ivData = iv_in; /* pointer to input iv */

desencReq.keyBytes = 24; /* key length */

desencReq.keyData = DesKey; /* pointer to key */

desencReq.inBytes = packet_length; /* data length */

desencReq.inData = DesData; /* pointer to data */

desencReq.outData = desEncResult; /* pointer to results */

desencReq.nextReq = 0; /* no descriptor chained */

/* call the driver */

status = Ioctl(device, IOCTL_PROC_REQ, &desencReq);

/* First Level Error Checking */

if (status != 0) {

..

}

...

void notifyDes (void)

{

/* Second Level Error Checking */

if (desencReq.status != 0) {

..

}

..)

5.2 IPSEC Sample

/* define User Requests structures */

IPSEC_CBC_REQ ipsecReq;

....

/* Ipsec dynamic descriptor triple DES with SHA-1 authentication */

ipsecReq.opId = DPD_IPSEC_CBC_TDES_ENCRYPT_SHA_PAD;

ipsecReq.channel = 0;

ipsecReq.notify = (void *) notifyFunc;

ipsecReq.notify_on_error = (void *) notifyFunc;

ipsecReq.status = 0;

Advertising