SEC 2.0 Reference Device Driver User's Guide
Table Of Contents
- SEC 2.0 Reference Device Driver User’s Guide
- 1 Overview
- 2 Device Driver Components
- 3 User Interface
- 4 Individual Request Type Descriptions
- 4.1 Random Number Requests
- 4.2 DES Requests
- 4.3 ARC4 Requests
- 4.4 Hash Requests
- 4.5 HMAC Requests
- 4.6 AES Requests
- 4.7 Integer Public Key Requests
- 4.8 ECC Public Key Requests
- 4.9 IPSec Requests
- 4.10 802.11 Protocol Requests
- 4.11 SRTP Protocol Requests
- 5 Sample Code
- 6 Linux Environment
- 7 VxWorks Environment
- 8 Porting

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;