SKC Directory Structure | |
Building The Examples | |
Building Your Application With SKC | |
Loading Components | |
Deploying SKC | |
SKC Redistributibles | |
SKC Toolkit Examples | |
SKC References | |
cfilestream.h | |
cfilestream.cpp | |
cconsolestream.h | |
cconsolestream.cpp | |
Release Notes | |
KMIP Reference Guide | |
KMIP Examples | |
KMIP Example 1 - Basic Code Structure | This example shows the basic code structure used to access KMIP operations in the SDK |
ex-kmip-1.cpp | |
KMIP Example 2 - Asynchronous KMIP operation | This example shows how to use the SDK to perform an asynchronous KMIP operation (specifically an asynchronous locate operation) |
ex-kmip-2.cpp | |
KMIP Example 3 - Key Wrapping | This example shows how to request a key off of the KMIP server wrapped (i.e., encrypted) by another key |
ex-kmip-3.cpp | |
KMIP Example 4 - Register a symmetric key | This example shows how to create a symmetric key along with setting its cipher algorithm meta data so that the KMIP server can save it with the key material |
ex-kmip-4.cpp | |
KMIP Example 5 - Clean all managed objects off of KMIP server | During testing or even in production a key or other managed object (e.g., certificate) may be left in the KMIP server by accident |
ex-kmip-5.cpp | |
KMIP Example 6 - Notify and Put Support | This example demonstrates how to use the p6IKMIPServer component to receive and process asynchronous, incoming Notify and Put requests from the KMIP server |
ex-kmip-6.cpp | |
KMIP Example 7 - Create and register asymmetric keys | This example demonstrates how to create and save a public / private key pair on a KMIP server |
ex-kmip-7.cpp | |
KMIP Example 8 - KMIP server creates asymmetric keys | This example demonstrates how to ask the KMIP server to generate a public / private key pair |
ex-kmip-8.cpp | |
KMIP Example 9 - KMIP server creates certificate for key pair | This example demonstrates how to ask the KMIP server to generate a certificate for a key pair |
ex-kmip-9.cpp | |
KMIP Example 10 - Adding multiple attributes to a managed object | This example demonstrates how multiple attributes can be added / modified to a key managed object with one SDK call |
ex-kmip-10.cpp | |
KMIP Example 11 - Attributes and Enumerators | This example demonstrates how to get the attributes of a registered certificate (or key) via the SDK's enumerator mechanism |
ex-kmip-11.cpp | |
KMIP Example 12 - Query Server and Enumerators | This example demonstrates how to query a KMIP server to get what it supports and to process the returned information via the SDK's enumerator mechanism |
ex-kmip-12.cpp | |
KMIP Example 13 - Low Level SDK APIs | This example demonstrates how to use the lower level APIs of the SDK |
ex-kmip-13.cpp | |
KMIP Example 14 - Key Management with Low Level SDK APIs | This example demonstrates how to use the lower level APIs of the SDK to create, modify, locate and get keys |
ex-kmip-14.cpp | |
KMIP Example 15 - A C Language version of example 1 | This example demonstrates how to use the C programming language to access the P6R KMIP SDK API |
ex-kmip-15.c | |
KMIP Example 16 - Generate a KMIP keystore | This example demonstrates how to properly create and initialize a keystore with KMIP server credentials |
ex-kmip-16.c | |
KMIP Example 17 - Create a key if not found on KMIP server | This example demonstrates a specific use case: search of a key on a KMIP server with a specific 'Name' attribute |
ex-kmip-17.c | |
KMIP Example 18 - Rekey an existing key with a Name attribute | This example demonstrates how an application with an existing key can replace it by using the RE-Key KMIP operation |
ex-kmip-18.c | |
KMIP Example 19 - Locate and Get a Symmetric Key | This example is similar to example 1 with a few additions |
ex-kmip-19.c | |
KMIP Example 20 - Multiple Create Key Operations in a single KMIP Request | This example demonstrates how an application can perform multiple KMIP Create symmetric key operations in a single request to a KMIP server |
ex-kmip-20.c | |
KMIP Example 21 - ReKey Operation Creating a Chain of Replaced Keys | This example demonstrates how an application can perform multiple KMIP Re-Key operations in a row creating a chain of replaced keys |
ex-kmip-21.cpp | |
HPE Atalla NSP PKCS 11 Reference Guide | |
PKCS 11 Examples | |
PKCS 11 Example 1: Initialize a token | This example demonstrate how to initialize a token for the first time for the Security Officer (SO) account and the normal user's account |
ex-pkcs11-1.c | |
PKCS 11 Example 2: Store a key onto a token | This example demonstrate how to store a key that was created by a client into a token, and then modify/add attributes to it |
ex-pkcs11-2.c | |
PKCS 11 Example 3: Search for a key on a token | This example demonstrate how to search for one or more keys in a token, read attributes from a found key, and deletes some of the found keys |
ex-pkcs11-3.c | |
PKCS 11 Example 4: Generate a key on a token | This example demonstrate how to have a token generate a key using a PKCS 11 mechanism |
ex-pkcs11-4.c | |
PKCS 11 Example 5: Perform Encryption / Decryption | This example demonstrate how to perform encryption / decryption with a key stored on a token |
ex-pkcs11-5.c | |
PKCS 11 Example 6: Utimaco HSM Integration, Initialize a Token | This example demonstrates how to use a Utimaco HSM extension to initialize a token from the PKCS#11 API |
ex-pkcs11-6.c | |
PKCS 11 Example 7: Utimaco HSM Integration, Perform Encryption / Decryption | This example demonstrates how to use a Utimaco HSM as a token to generate a key and use that key to perform encryption |
ex-pkcs11-7.c | |
PKCS 11 Example 8: HSM Integration, list all slots on HSM token | P6R's PKCS 11 library maps one HSM slot to a P6R slot |
ex-pkcs11-8.c | |
PKCS 11 Example 9: Thales nShield Connect HSM Integration | Demonstrate how to use the Thales nShield Connect HSM vendor extensions: C_LoginBegin, C_LoginNext, and C_LoginEnd via P6R's PKCS 11 library |
ex-pkcs11-9.c | |
PKCS 11 Example 10: FutureX HSM Integration | Demonstrate how to use the FutureX PKCS 11 vendor extensions: C_FX_HexEncode, C_FX_HexDecode, C_FX_MemFree, C_FX_GetErrorString, C_FX_GetMechanismString, C_FX_GenericCreateMutex, C_FX_GenericLockMutex, C_FX_GenericUnlockMutex, C_FX_GenericDestroyMutex, C_FX_SleepMS |
ex-pkcs11-10.c | |
PKCS 11 Example 11: Java Security Provider -- Public/Private keys | Demonstrate how to use P6R's PKCS 11 library as a Java Security Provider |
KeyGenExample.java | |
PKCS 11 Example 12: Java Security Provider -- Symmetric Keys | Demonstrate how to use P6R's PKCS 11 library as a Java Security Provider |
SymmetricKeyExample.java | |
PKCS 11 Example 13: Java Security Provider -- Streaming Encryption | Demonstrate how to use P6R's PKCS 11 library as a Java Security Provider |
StreamingKeyExample.java | |
PKCS 11 Example 14: Wrap a Key | This example demonstrate how to wrap a data key created on an HSM with a Key Encrypting Key (KEK) created on the same HSM |
ex-pkcs11-14.c | |
p6Loader Examples | P6loader is used to load P6R's component libraries |
Basic example of loading a component library | This is a simple example of loading and using a P6R component library |
p6api.cpp | |
JSN Reference | |
JSON Parser Examples | |
JSON Example 1 - Verifying JSON Data | In this example, the JSON parser is used to parse and verify a a JSON documents structure and data |
ex-json-1.cpp | |
ccontenthandler.h | |
ccontenthandler.cpp | |
JSON Example 2 - How to detect errors | This example shows how to detect errors as a JSON document is being parsed |
ex-json-2.cpp | |
ccontenthandler.h | |
ccontenthandler.cpp | |
cerrorhandler.h | |
cerrorhandler.cpp | |
JSON Example 3 - The Bare Minimum | Provides an extremely simple example of a content handler which you can use as a starting point for your own handler |
ex-json3.cpp | |
ccontenthandler.cpp | |
ccontenthandler.h | |
SAX2 Reference | |
SAX2 Examples | |
SAX2 Example 1 - Set features and content handlers | This example is meant as a simple place to start using the SAX2 parser |
ex-sax2-1.cpp | |
ccontenthandler.cpp | |
ccontenthandler.h | |
cerrorhandler.cpp | |
cerrorhandler.h | |
SAX2 Example 2 - Streaming Interface | Both the XML SAX2 and JSON SAX2-like parsers are streaming (i.e., the XML or JSON to parse can be given in small chunks until the entire document is provided) |
ex-sax2-2.cpp | |
ccontenthandler.cpp | |
ccontenthandler.h | |
XPath 2.0 and DOM Tree Reference | |
DOM & XPath 2.0 Examples | |
DOM/Xpath Example 1 - DOM & XPath 2.0 | We use XPath 2.0 to access the DOM tree after XML, JSON, or JsonML is parsed into an instance of a DOM |
ex-dom-1.cpp | |
DOM/Xpath Example 2 - Manual Generation of XML, JSON and JsonML | Our DOM object supports the manual generation of both XML, JSON, or JsonML |
ex-dom-2.cpp | |
DOM/Xpath Example 3 - Advanced Sorting Fetaures of p6IDOMNodeset | This example demonstrates the advanced sorting feature of the p6IDOMNodeset component |
ex-dom-3.cpp | |
DOM/Xpath Example 4 - Namespaces & XPath 2.0 | This example demonstrates how XML namespaces can be used in XPath expressions |
ex-dom-4.cpp | |
namespaces.h | |
namespaces.cpp | |
DOM/Xpath Example 5 - JsonML with DOM and XPath 2.0 | |
ex-dom-5.cpp | |
XSLT 2.0 Implementation | |
XSLT Examples | |
XSLT Example 1 - The bare minimum | This example shows what it takes to run a basic template |
ex-xslt1.cpp | |
filestream.h | |
filestream.cpp | |
XSLT Example 2 - Using JSON | Here is an example of both using JSON as the XSLT source document and outputing the template result tree as JSON |
ex-xslt2.cpp | |
filestream.h | |
filestream.cpp | |
XSLT Example 3 - Exending Functionality with XPath 2.0 | Demonstrate how XPATH is extended by the use of an application written component |
ex-xslt3.cpp | |
filestream.h | |
filestream.cpp | |
cxpathextend.h | |
cxpathextend.cpp | |
embeddedxml.xsl | |
XSLT Example 4 - Character Maps | Demonstrate how character maps work in XSLT 2.0 |
ex-xslt4.cpp | |
filestream.h | |
filestream.cpp | |
RGX Reference Guide | |
Example 1 - Split & Explode | P6R provides both wide and narrow string regex support |
Example 2 - Three ways to do replace | Show three different functions to perform text replacement including "replaceWithCallback" which is a unique P6R feature |
Example 3 - Narrow Examples Including Split and Explode | |
Example 4 - Wide Examples | |
Example 5 - EGREP Style Regex | Simple examples of using an EGREP style regular expression |
Example 6 - Look-Ahead and Look-Behind | |
CConsoleStream | |
Example 7 - Multiple Matches | |
Networking APIs | |
Secure Socket Networking | |
Asynchronous UDP I/O Engine | |
Database connector object | |
SKC UEFI Platform Reference Guide | |
PKCS 11 Command Line Tool Reference Guide | |
KMIP Command Line Tool Reference Guide | |
KMIP Command Line Tool Reference Guide | |
The P6R Component Object Model | |
What is [p6]COM | |
P6COM Helpers | |
P6 Error Codes | P6R::P6ERR's are 32 bit unsigned values separated into "status", "facility" and "code", |