medcrypt::guardian::SecureOperation

Named standalone operation.

#include <SecureOperation.h>

Public Functions

Name

~SecureOperation() The destructor.

Sign(const char in_data, const size_t & in_data_size, char out_signature, size_t * io_signature_size) Create signature.

Verify(const char in_data, const size_t & in_data_size, const char in_signature, const size_t & in_signature_size, bool * out_is_verified) Verify existing signature.

SignatureMultipartInit(const bool & in_force =true) Prepare for multipart sign/verify.

SignatureMultipartUpdate(const char * in_data, const size_t & in_data_size) Add data to multipart sign/verify operation.

SignatureMultipartSignFinal(char out_signature, size_t io_signature_size) Create signature from previously provided data.

SignatureMultipartVerifyFinal(const char in_signature, const size_t & in_signature_size, bool out_is_verified) Verify signature from previously provided data.

Public Functions Documentation

function ~SecureOperation

~SecureOperation()

The destructor.

Parameters:

  • none

Return: none

The destructor will return the contained object to the main Guardian Run thread.

function Sign

Create signature.

Parameters:

  • in_data binary data buffer

  • in_data_size bytes in in_data

  • out_signature binary data buffer

  • io_signature_size provide size of out_signature buffer, on return is set to size of the data in out_signature or the required size of out_signature

Returns:

  • OK out_signature populated with the signature

  • FAIL general failure, check the log

  • BADPARAM a provided parameter is nullptr or a size is 0

  • MISCONFIGURED this secure operation is not configured for signatures

  • OUTOFMEMORY out_signature is too small, see io_signature_size for required size

Return: medcrypt::guardian::Statusarrow-up-right

Signature created based on loaded profile.

function Verify

Verify existing signature.

Parameters:

  • in_data binary data buffer

  • in_data_size bytes in in_data

  • in_signature binary data buffer

  • in_signature_size bytes in in_signature

  • out_is_verified true if in_data matches in_signature

Returns:

  • OK signature checked against data, see out_is_verified for if signature matched the data

  • FAIL general failure

  • BADPARAM a provided parameter is nullptr or a size is 0

  • MISCONFIGURED this secure operation is not configured for signatures

Return: medcrypt::guardian::Statusarrow-up-right

Verification based on loaded profile.

Note: return value will be OK for a successful verify operation even if the signature does not match the data. Check out_is_verified to see if the data and signature match.

function SignatureMultipartInit

Prepare for multipart sign/verify.

Parameters:

  • in_force optional parameter, true will start a new operation even if another is already in progress

Returns:

  • OK secure operation is ready for data to sign/verify

  • FAIL general failure

  • MISCONFIGURED this secure operation is not configured for signatures

  • DENIED another secure operation is already in progress

Return: medcrypt::guardian::Statusarrow-up-right

Initializes secure operation for a multipart signature or multipart signature verification.

function SignatureMultipartUpdate

Add data to multipart sign/verify operation.

Parameters:

  • in_data_size bytes in in_data

  • in_data binary data buffer

Returns:

  • OK data added successfully

  • FAIL general failure

  • BADPARAM in_data is nullptr or in_data_size is 0

  • DENIED this secure operation has not been initialized for a multipart sign/verify operation

Return: medcrypt::guardian::Statusarrow-up-right

Add data in full or chunked pieces to the secure operation, finish the process with one of the Complete functions.

function SignatureMultipartSignFinal

Create signature from previously provided data.

Parameters:

  • io_signature_size provide size of out_signature buffer, on return is set to size of the data in out_signature or the required size of out_signature

  • out_signature binary data buffer

Returns:

  • OK out_signature populated with the signature

  • FAIL general failure

  • BADPARAM out_signature is nullptr or io_signature_size is nullptr or 0

  • DENIED multipart signature has not been intiailzed

  • OUTOFMEMORY out_signature is too small, see io_signature_size for required size

Return: medcrypt::guardian::Statusarrow-up-right

function SignatureMultipartVerifyFinal

Verify signature from previously provided data.

Parameters:

  • in_signature_size bytes in in_signature

  • in_signature binary data buffer

  • out_is_verified true if in_data matches in_signature

Returns:

  • OK out_verified reflects if signature matched the data

  • FAIL general failure

  • BADPARAM in_signature or out_is_verified is nullptr or in_signature_size is 0

  • DENIED no data has been added to this secure operation

Return: medcrypt::guardian::Statusarrow-up-right

Debugging and logging

Guardian does not create log files. Instead, logging is controlled by the application:

  • Guardian logs to stdout and stderr, which appear in the terminal/CLI of the running application during execution. Look for specific error codes or connection failures in the output.

  • Custom logging: Use SetLoggingCallback to redirect log messages to a callback function, stopping terminal output and allowing custom log handling

  • Log control: Applications can control log level and verbosity.

  • Guardian Cloud UI: Check the Guardian Cloud interface for additional error details and provisioning status.

Last updated