Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
SKC UEFI Platform Reference Guide

Introduction

Optionally (for an additional fee), limited support for the UEFI platform is now available. This is a source license for our low-level KMIP TTLV encoder, decoder and various supporting code that enables UEFI applications to use KMIP. Note that networking and crypto are not provided as part of this and therefore you must implement the networking and crypto using the network APIs and openssl included with your UEFI distribution.

The static library provides the following interfaces:

  • p6IKMIPEncoder
  • p6IKMIPDecoder
  • p6IKMIPStructure
  • p6ISafeString
  • p6INetHelpers

The static library and header files are located in the install directory under:

  • windows\WINNT6.1_x86_OPT_64bit_vs2012.OBJ (release)
  • windows\WINNT6.1_x86_DBG_64bit_vs2012.OBJ (debug)

The structure under those two directories are identical to what is in the Tianocore UEFI build workspace (eg. c:/udk2014/MyWorkSpace). To use the library, your driver/application must be linked against the SkcUefiLib.lib binary and it must also include the SkcUefiLib.h header file and the header files for the interfaces being used.

For example:

* #include <Uefi.h>
* #include <Library/UefiApplicationEntryPoint.h>
* #include <Library/UefiLib.h>
* #include <Library/MemoryAllocationLib.h>
* // SKC UEFI includes
* #include <Library/p6iobuffer.h>
* #include <Library/p6kmipencoder.h>
* #include <Library/p6kmipdecoder.h>
* #include <Library/SkcUefiLib.h>
*

UEFI Example Application

Example source is provided in Application/SkcTestDriver/SkcTestDriver.c which is a UEFI application that links against the static library (SkcUefiLib.lib) and implements a basic unit test that loads the encoder and decoder, then verifies their operation against hard coded TTLV included in the test application.

This example illustrates how to initialize and shutdown the library, and create and call the encoder and decoder interfaces from your driver or application. For examples of how to create, modify, locate and get keys using the encoder and decoder, please see KMIP Example 14 - Key Management with Low Level SDK APIs. You will need to replace the networking calls in Example 14 with calls to the UEFI APIs for SSL networking.