This repository has been archived by the owner on Oct 25, 2023. It is now read-only.
forked from aws/amazon-freertos
-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
They cover the following workflows: * RNG * Message Digest Creation * Importing an object * Generating a key pair
- Loading branch information
Showing
11 changed files
with
215 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
@startuml | ||
skinparam classFontSize 8 | ||
skinparam classFontName Helvetica | ||
autonumber | ||
|
||
participant "Application" as app | ||
participant "PKCS #11" as pkcs | ||
|
||
box "PKCS #11 - Creating A Message Digest" #LightBlue | ||
participant app | ||
participant pkcs | ||
end box | ||
|
||
app -> pkcs: Acquire function list with C_GetFunctionList | ||
pkcs -> app: Return CK_FUNCTION_LIST_PTR with supported functions | ||
|
||
app -> pkcs: Initialize with C_Initialize | ||
|
||
app -> pkcs: Query for a slot with C_GetSlotList | ||
pkcs -> app: Return an array of CK_SLOT_IDs | ||
|
||
app -> pkcs: Open a new session with a slot using C_OpenSession | ||
pkcs -> app: Return a CK_SESSION_HANDLE | ||
|
||
app -> pkcs: Log in to current session with C_Login | ||
|
||
app -> pkcs: Query for supported mechanisms with C_GetMechanismInfo | ||
pkcs -> app: Return CK_MECHANISM_INFO | ||
|
||
app -> pkcs: Start a digest operation using SHA-256 by passing CKM_SHA256 to C_DigestInit | ||
app -> pkcs: Pass bytes buffer of message to C_DigestUpdate | ||
app -> pkcs: Pass bytes buffer for storing the digest to C_DigestFinal | ||
pkcs -> app: Fill buffer with digest bytes | ||
|
||
app -> pkcs: Close session with C_CloseSession | ||
app -> pkcs: Uninitialize with C_Finalize | ||
|
||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
@startuml | ||
skinparam classFontSize 8 | ||
skinparam classFontName Helvetica | ||
autonumber | ||
|
||
participant "Application" as app | ||
participant "PKCS #11" as pkcs | ||
|
||
box "PKCS #11 - Generating A Key Pair" #LightBlue | ||
participant app | ||
participant pkcs | ||
end box | ||
|
||
app -> pkcs: Acquire function list with C_GetFunctionList | ||
pkcs -> app: Return CK_FUNCTION_LIST_PTR with supported functions | ||
|
||
app -> pkcs: Initialize with C_Initialize | ||
|
||
app -> pkcs: Query for a slot with C_GetSlotList | ||
pkcs -> app: Return an array of CK_SLOT_IDs | ||
|
||
app -> pkcs: Open a new session with a slot using C_OpenSession | ||
pkcs -> app: Return a CK_SESSION_HANDLE | ||
|
||
app -> pkcs: Log in to current session with C_Login | ||
|
||
app -> pkcs: Pass CK_ATTRIBUTEs template to C_CreateKeyPair | ||
pkcs -> app: Return CK_OBJECT_HANDLE for public key and for private key | ||
|
||
app -> pkcs: Close session with C_CloseSession | ||
app -> pkcs: Uninitialize with C_Finalize | ||
|
||
@endumlf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
@startuml | ||
skinparam classFontSize 8 | ||
skinparam classFontName Helvetica | ||
autonumber | ||
|
||
participant "Application" as app | ||
participant "PKCS #11" as pkcs | ||
|
||
box "PKCS #11 - Importing A Crypto Object" #LightBlue | ||
participant app | ||
participant pkcs | ||
end box | ||
|
||
app -> pkcs: Acquire function list with C_GetFunctionList | ||
pkcs -> app: Return CK_FUNCTION_LIST_PTR with supported functions | ||
|
||
app -> pkcs: Initialize with C_Initialize | ||
|
||
app -> pkcs: Query for a slot with C_GetSlotList | ||
pkcs -> app: Return an array of CK_SLOT_IDs | ||
|
||
app -> pkcs: Open a new session with a slot using C_OpenSession | ||
pkcs -> app: Return a CK_SESSION_HANDLE | ||
|
||
app -> pkcs: Log in to current session with C_Login | ||
|
||
app -> pkcs: Pass Attribute template to C_CreateObject | ||
pkcs -> app: Return CK_OBJECT_HANDLE associated with the new object | ||
|
||
app -> pkcs: Close session with C_CloseSession | ||
app -> pkcs: Uninitialize with C_Finalize | ||
|
||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
@startuml | ||
skinparam classFontSize 8 | ||
skinparam classFontName Helvetica | ||
autonumber | ||
|
||
participant "Application" as app | ||
participant "PKCS #11" as pkcs | ||
|
||
box "PKCS #11 - Generating A Random Number" #LightBlue | ||
participant app | ||
participant pkcs | ||
end box | ||
|
||
app -> pkcs: Acquire function list with C_GetFunctionList | ||
pkcs -> app: Return CK_FUNCTION_LIST_PTR with supported functions | ||
|
||
app -> pkcs: Initialize with C_Initialize | ||
|
||
app -> pkcs: Query for a slot with C_GetSlotList | ||
pkcs -> app: Return an array of CK_SLOT_IDs | ||
|
||
app -> pkcs: Open a new session with a slot using C_OpenSession | ||
pkcs -> app: Return a CK_SESSION_HANDLE | ||
|
||
app -> pkcs: Log in to current session with C_Login | ||
|
||
app -> pkcs: Request an array of random bytes with C_GenerateRandom | ||
pkcs -> app: Return an array of random bytes | ||
|
||
app -> pkcs: Close session with C_CloseSession | ||
app -> pkcs: Uninitialize with C_Finalize | ||
|
||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
@startuml | ||
skinparam classFontSize 8 | ||
skinparam classFontName Helvetica | ||
autonumber | ||
|
||
participant "Application" as app | ||
participant "PKCS #11" as pkcs | ||
|
||
box "PKCS #11 - Signing And Verifying A Signature" #LightBlue | ||
participant app | ||
participant pkcs | ||
end box | ||
|
||
app -> pkcs: Acquire function list with C_GetFunctionList | ||
pkcs -> app: Return CK_FUNCTION_LIST_PTR with supported functions | ||
|
||
app -> pkcs: Initialize with C_Initialize | ||
|
||
app -> pkcs: Query for a slot with C_GetSlotList | ||
pkcs -> app: Return an array of CK_SLOT_IDs | ||
|
||
app -> pkcs: Open a new session with a slot using C_OpenSession | ||
pkcs -> app: Return a CK_SESSION_HANDLE | ||
|
||
app -> pkcs: Log in to current session with C_Login | ||
|
||
app -> pkcs: Initiate a find operation by passing a CK_ATTRIBUTEs template to C_FindObjectsInit | ||
app -> pkcs: Request a CK_OBJECT_HANDLE | ||
pkcs -> app: Return CK_OBJECT_HANDLE for the appropriate object | ||
app -> pkcs: Clean up find operation with C_FindObjectsFinal | ||
|
||
app -> pkcs: Start a digest operation using SHA-256 by passing CKM_SHA256 C_DigestInit | ||
app -> pkcs: Provide bytes buffer of message to hash with C_DigestUpdate | ||
app -> pkcs: Provide bytes buffer to store digest in with C_DigestFinal | ||
pkcs -> app: Fill buffer with digest bytes | ||
|
||
app -> pkcs: Start a sign operation by passing the signature mechanism and private key handle to C_SignInit | ||
app -> pkcs: Provide bytes buffer of message hash and bytes buffer to store the signature to C_Sign | ||
pkcs -> app: Fill signature buffer with signature bytes of hash buffer | ||
|
||
app -> pkcs: Start a verify operation by passing the verify mechanism and public key handle to C_VerifyInit | ||
app -> pkcs: Provide bytes buffer of message hash and bytes buffer of the signature to C_Verify | ||
pkcs -> app: Return OK if public key could verify signature | ||
|
||
app -> pkcs: Close session with C_CloseSession | ||
app -> pkcs: Uninitialize with C_Finalize | ||
|
||
@endumla | ||
|