Freescale Semiconductor SEC2SWUG specifications Direct Scatter-Gather Usage Example

Page 13

User Interface

scatter-composed, as opposed to direct, contiguous memory (for instance, key data could be in contiguous system memory, while ciphertext data will be in fragmented user memory).

A problem with marking buffers using this method is that there is no means for the caller to clearly identify which bit in scatterBufs matches any given pointer in the request, since the data description portion of different requests cannot be consistent or of any particular order.

A helper function, MarkScatterBuffer(), is therefore made available by the driver to make the bit/pointer association logic in the driver accessible to the caller. It's form is:

MarkScatterBuffer(void *request, void *buffer);

where request points to the request block being built (the opId element must be set prior to call), and buffer points to the element within the request which references a scattered buffer. It will then mark the necessary bit in scatterBufs that defines this buffer for this specific request type.

3.3.7.3 Direct Scatter-Gather Usage Example

In order to make this usage clear, an example is presented. Assume that a triple DES encryption operation is to be constructed, where the input and output buffers are located in fragmented user memory, and the cipher keys and IV are contained in system memory. A DES_LOADCTX_CRYPT_REQ is zero-allocated as encReq, and constructed:

/* set up encryption operation */

encReq.opId

= DPD_TDES_CBC_CTX_ENCRYPT;

encReq.notify

= notifier;

encReq.notify_on_error = notifier;

encReq.inIvBytes

= 8;

encReq.keyBytes

= 24;

encReq.inBytes

= bufsize;

encReq.inIvData

= iv;

encReq.keyData

= cipherKey;

encReq.inData

= (unsigned char *)input; /* this buffer is scattered */

encReq.outIvBytes

= 8;

encReq.outIvData

= ctx;

encReq.outData

= (unsigned char *)output; /* this buffer is scattered */

MarkScatterBuffer(&encReq, &encReq.input);

MarkScatterBuffer(&encReq, &encReq.output);

Upon completion of the two mark calls, encReq.scatterBufs will have two bits set within it that the driver knows how to interpret as meaning that the intended buffers have scatter lists defined for them, and will process them accordingly as the DPD is built for the hardware.

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

Freescale Semiconductor

PRELIMINARY—SUBJECT TO CHANGE WITHOUT NOTICE

13

Image 13
Contents Freescale Semiconductor OverviewOverview Acronyms and AbbreviationsTerm Meaning SEC 2.0 Reference Device Driver User’s Guide, RevDevice Driver Structure Device Driver ComponentsDevice Driver Components End-User ApplicationDriver Initialization Routine Interrupt Service RoutineRequest Dispatch Routine Process Request RoutineUser Interface Deferred Service RoutineApplication Interface User Interface= Dpdaesacbcencryptcrypt Error Handling1 I/O Control Codes Global DefinitionsChannel Definitions Second and Third Arguments in the ioctl FunctionOperation ID opId Masks Callback Error Status Return CodeReturn Codes Channel DefinesSEC2CHAERROR SEC2ADDRESSPROBLEMSEC2PARITYSYSTEMERROR SEC2TEAERRORMiscellaneous Request Structures SEC2CANCELLEDREQUESTSEC2INVALIDADDRESS Define DescriptionStatusreq Process Request StructuresScatter-Gather Buffer Management NotifyonerrorDirect Scatter-Gather Usage Example Random Number Requests Individual Request Type DescriptionsDES Requests RngreqDescryptreq ARC4 Requests1 ARC4LOADCTXCRYPTREQ Descbccryptreq Valid Descriptors opIdARC4LOADCTXCRYPTREQ Valid Descriptor opId 2 ARC4LOADKEYCRYPTUNLOADCTXREQARC4LOADKEYCRYPTUNLOADCTXREQ Valid Descriptor opId Hashreq Hash RequestsHashreq Valid Descriptors 0x4400 opId Hmacpadreq Hmac RequestsHashreq Valid Descriptors 0x4500 opId Aesacryptreq AES RequestsHmacpadreq Valid Descriptors opId Modexpreq Integer Public Key RequestsAesacryptreq Valid Descriptors opId Modexpreq Valid Descriptor opIdMODR2MODNREQ ModssexpreqModssexpreq Valid Descriptor opId Dpdmmssrsaexp5 MOD2OPREQ ModrrmodpreqModrrmodpreq Valid Descriptor opId 0x5300MOD2OPREQ Valid Descriptors opId Value Function Description Eccpointreq ECC Public Key RequestsMOD2OPREQ Valid Descriptors opId Eccpointreq Valid Descriptors opId 2 ECC2OPREQECC2OPREQ Valid Descriptors opId EccspkbuildreqEccspkbuildreq Valid Descriptor opId DpdecspkbuildulctxEccptadddblreq IPSec RequestsIpseccbcreq Eccptadddblreq Valid Descriptor opIdIpseccbcreq Valid Descriptors opId Descriptors Ipsececbreq Valid Descriptors opId IpsececbreqIpsecaescbcreq Valid Descriptors opId IpsecaescbcreqIpsecaesecbreq Ipsecaesecbreq Valid Descriptors opId IpsecespreqIpsecespreq Valid Descriptors opId DPDIPSECESPOUTTDESCBCCRPTMD5PAD DpdipsecespinsdescbcdcrptshapadDpdipsecespouttdescbccrptshapad DPDIPSECESPINTDESCBCDCRPTMD5PADSrtp Protocol Requests 10 802.11 Protocol RequestsCcmpreq SrtpreqDES Sample Sample CodeSrtpreq Valid Descriptors opId Ipsec Sample PRELIMINARY-SUBJECT to Change Without Notice Linux Environment InstallationOperation VxWorks Environment Driver Operation in User ModeDriver Module License Macro VxWorks EnvironmentBuilding the Interface Modules PortingBSP Integration VxWorks Interface Module VariablesHeader Files Interrupt Service RoutineSource Files Debug Messaging Conditional CompilationDistribution Archive How to Reach Us

SEC2SWUG specifications

Freescale Semiconductor, a prominent player in the semiconductor industry, has made significant strides in developing robust solutions tailored for the automotive and industrial sectors. One such innovation is the SEC2SWUG (Security Configuration to Software User Guide), a comprehensive framework designed to enhance security protocols across various applications.

The SEC2SWUG is particularly vital in an era where cybersecurity threats are increasingly sophisticated. This tool is built to help developers implement security measures seamlessly during the software design phase, ensuring products are resilient against potential vulnerabilities. One of the main features of the SEC2SWUG is its versatility; it can be applied across a wide range of microcontrollers and processors offered by Freescale. This is particularly advantageous for engineers who require a consistent security approach across different platforms.

In terms of technology, the SEC2SWUG incorporates advanced cryptographic algorithms, allowing for data encryption, decryption, and authentication processes. This ensures that sensitive information remains secure, particularly in automotive applications where vehicle-to-everything (V2X) communication is becoming paramount. Moreover, the guide details the implementation of secure boot processes, which verify the integrity of firmware before it executes, bolstering overall system security.

Another key characteristic of SEC2SWUG is its user-friendliness. Freescale has focused on creating a resource that not only provides theoretical knowledge but also practical guidelines, making it easier for developers to integrate security protocols into their projects. The guide features clear annotations, example code snippets, and troubleshooting tips, which enhance the developer experience and facilitate a smoother transition from concept to execution.

Additionally, SEC2SWUG is designed to be scalable. As industries evolve, the demand for security measures will only grow, and this framework ensures that developers can adapt their solutions accordingly. Whether working on embedded systems, IoT applications, or complex automotive networks, the SEC2SWUG offers a robust security foundation.

In conclusion, Freescale Semiconductor's SEC2SWUG is a vital tool for engineers and developers looking to embed security into their applications. With its focus on advanced technologies and user-centric design, the SEC2SWUG stands at the forefront of secure software development, addressing the critical need for safety in interconnected systems.