Protocol++® (Protocolpp®)  v5.7.0
PlatformPP::jsec Class Reference

Classes

struct  sgt_t
 

Public Member Functions

 jsec (sgt_t sgt, uint64_t seed)
 
virtual ~jsec ()=default
 Standard deconstructor.
 
void get_shared (std::shared_ptr< ProtocolPP::jarray< uint8_t >> &shared, ProtocolPP::protocol_t type, std::shared_ptr< ProtocolPP::jsecass > security)
 
void get_desc (std::shared_ptr< ProtocolPP::jarray< uint8_t >> &desc, uint64_t shareaddr, uint32_t sharesize, uint64_t inaddr, uint32_t inlen, bool insgf, uint64_t outaddr, uint32_t outlen, bool outsgf)
 
void read_sgt (uint8_t *sgtin, std::shared_ptr< ProtocolPP::jarray< uint8_t >> &data)
 
void blob_encap (uint8_t *bkek, uint32_t bkek_size, uint8_t *blobkey, uint32_t blobkey_size, uint8_t *blob_data, uint32_t blob_data_size, uint8_t *blob)
 
void blob_decap (uint8_t *bkek, uint32_t bkek_size, uint8_t *blob, uint32_t blob_size, uint8_t *blob_data)
 
 jsec ()=delete
 don't use these
 
 jsec (jsec &rhs)=delete
 
 jsec (const jsec &rhs)=delete
 

Constructor & Destructor Documentation

◆ jsec()

PlatformPP::jsec::jsec ( sgt_t  sgt,
uint64_t  seed 
)

Constructor for JSEC

Parameters
sgt- Structure of SG table for SEC/CAAM
seed- Seed for random size generation for SG table construction

Member Function Documentation

◆ blob_decap()

void PlatformPP::jsec::blob_decap ( uint8_t *  bkek,
uint32_t  bkek_size,
uint8_t *  blob,
uint32_t  blob_size,
uint8_t *  blob_data 
)

Decapsulate the data as a Blob suitable for SEC(CAAM). Due to the nature of the Blob Key Encryption Key (BKEK) and how it's constructed, this function is only really useful when testing SEC(CAAM) directly. The BKEK bits are not accessible once the design is in silicon. Furthermore, Blob construction is typically specific to the device such that only that type of device can create the Blob

Parameters
bkek- Blob key encryption key (BKEK)
bkek_size- Length of the BKEK
blob- Encapsulated Blob data
blob_size- Size of the Blob data
blob_data- correctly sized pointer to hold plaintext Blob data

◆ blob_encap()

void PlatformPP::jsec::blob_encap ( uint8_t *  bkek,
uint32_t  bkek_size,
uint8_t *  blobkey,
uint32_t  blobkey_size,
uint8_t *  blob_data,
uint32_t  blob_data_size,
uint8_t *  blob 
)

Encapsulate the data as a Blob suitable for SEC(CAAM). Due to the nature of the Blob Key Encryption Key (BKEK) and how it's constructed, this function is only really useful when testing SEC(CAAM) directly. The BKEK bits are not accessible once the design is in silicon. Furthermore, Blob construction is typically specific to the device such that only that type of device can create the Blob

Parameters
bkek- Blob key encryption key (BKEK)
bkek_size- Length of the BKEK
blobkey- Random Blob key
blobkey_size- Length of the random Blob key
blob_data- Data to enacapsulate as the Blob
blob_data_size- Length of Blob data
blob- Correctly sized pointer to hold encapsulated Blob

◆ get_desc()

void PlatformPP::jsec::get_desc ( std::shared_ptr< ProtocolPP::jarray< uint8_t >> &  desc,
uint64_t  shareaddr,
uint32_t  sharesize,
uint64_t  inaddr,
uint32_t  inlen,
bool  insgf,
uint64_t  outaddr,
uint32_t  outlen,
bool  outsgf 
)

Return a properly formatted job descriptor

Parameters
desc- pointer to hold descriptor
shareaddr- shared descriptor address
sharesize- size of the shared descriptor
inaddr- address of input data
inlen- length of the input data
insgf- flag for scattered input data (true for scattered)
outaddr- address of output data
outlen- length of the output data
outsgf- flag for scattered output data (true for scattered)

◆ get_shared()

void PlatformPP::jsec::get_shared ( std::shared_ptr< ProtocolPP::jarray< uint8_t >> &  shared,
ProtocolPP::protocol_t  type,
std::shared_ptr< ProtocolPP::jsecass security 
)

Return the properly formatted shared descriptor for QorIQ or Layerscape processors

Parameters
shared- Byte pointer to shared descriptor
type- protocol to request shared descriptor for
security- security association to derive shared descriptor from

◆ read_sgt()

void PlatformPP::jsec::read_sgt ( uint8_t *  sgtin,
std::shared_ptr< ProtocolPP::jarray< uint8_t >> &  data 
)

Read the scatter-gather table and return the data

Parameters
sgtin- pointer to SG table
data- data from SG table

The documentation for this class was generated from the following file: