Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
The SKC Secure KMIP Client Toolkit

Introduction

This guide contains all the infromation you need to get started with the SKC C++ KMIP Client Toolkit. It outlines the steps needed to incorporate, build and deploy the client with your application. It provides a an overview, working examples of using the client, as well A detailed API reference for the client's various interfaces.

Getting Started

The following sections will get you started with the basics of SKC. This is just some introductory stuff to get you going quickly. Once you understand how to build the examples and load and deploy SKC, you will be ready to move on the KMIP Reference Guide and PKCS 11 Reference Guide which documents the component interfaces and provides SKC specific examples.

  1. SKC Directory Structure
  2. Building The Examples
  3. Building Your Application With SKC
  4. Loading Components
  5. Deploying SKC
  6. SKC Redistributibles

Getting Help

There are many ways to get help using SKC.

Reference Guide

The KMIP Reference Guide explains the use and operation of the client toolkit, providing links to headers, interface definitions, and key fetaures that you should be aware of.

UEFI Platform Getting Started

SKC now includes limited support for the UEFI platform. The low-level KMIP TTLV encoder and decoder are provided as static library that UEFI drivers and applications can link against. The library does not provide any networking or crypto code. You must implement 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.

SKC Toolkit Examples

Examples are the easiest way to learn how to use our toolkit. Below are several examples that should get you started. All examples compile and run (see Building The Examples) and should help give you a good start on using the SKC toolkit in your aplications. Please let us know if you you have ideas for more examples, and/or have examples that you would like to contribute.