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

#include "include/jsec.h"

Detailed Description

Security Encryption CoProcessor (SEC)

Class to create shared descriptors for the SEC/CAAM architecture found in the Freescale/NXP/Qualcomm QorIQ and Layerscape network processors See the Security Reference Manual for the QorIQ processor desired for shared descriptor layout of each protocol in the ENCAP and DECAP directions

Also created job descriptors to process input and output data in the SEC/CAAM architecture. Contains support for reading and writing SG tables in the formats supported by SEC/CAAM

NOTE: Commands in the shared descriptor are big endian but inline data may be little endian if the platform requires it such as some of the ARM based Layerscape processors. Examples of data that may be little endian are the IV, NONCE, SALT, and INITCNT

$ IPsec\; cipher\; and\; authentication\; modes $
cipherauthentication
NULL_CIPHER NULL_AUTH
DES_CBC HMAC_MD5
3DES_CBC HMAC_SHA1
AES_CBC AES_XCBC_MAC
AES_CTR AES_CMAC
AES_CCM HMAC_SHA2_256
AES_GCM HMAC_SHA2_384
HMAC_SHA2_512

The methods and constructor for NXPs SEC(CAAM) support in Protocol++® (ProtocolPP®) are as follows

// Constructor for JSEC
jsec(sgt_t sgt, unsigned long seed);
// Return the properly formatted shared descriptor converted from the
// Protocol++ (ProtocolPP) security association and type
void get_shared(std::shared_ptr<ProtocolPP::jarray<uint8_t>>& shared,
std::shared_ptr<ProtocolPP::jsecass> security);
// Return a properly formatted job descriptor for SEC(CAAM)
// using the Protocol++(ProtocolPP) data
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);
// Read the scatter-gather table and return the data as a jarray
void read_sgt(uint8_t* sgtin,
std::shared_ptr<ProtocolPP::jarray<uint8_t>>& data);
protocol_t
Definition: jenum.h:1323
Protocol++® (ProtocolPP®) written by : John Peter Greninger • © John Peter Greninger 2015-2024 • All Rights Reserved
All copyrights and trademarks are the property of their respective owners

The source code contained or described herein and all documents related to the source code (herein called "Material") are owned by John Peter Greninger and Sheila Rocha Greninger. Title to the Material remains with John Peter Greninger and Sheila Rocha Greninger. The Material contains trade secrets and proprietary and confidential information of John Peter Greninger and Sheila Rocha Greninger. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without prior express written consent of John Peter Greninger and Sheila Rocha Greninger (both are required)

No license under any patent, copyright, trade secret, or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel, or otherwise. Any license under such intellectual property rights must be express and approved by John Peter Greninger and Sheila Rocha Greninger in writing

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
  • Any and all modifications must be returned to John Peter Greninger at GitHub.com https://github.com/jpgreninger/protocolpp for evaluation. Inclusion of modifications in the source code shall be determined solely by John Peter Greninger. Failure to provide modifications shall render this license NULL and VOID and revoke any rights to use of Protocol++®
  • Commercial use requires a fee-based license obtainable at www.protocolpp.com
  • Academic use requires written and notarized permission from John Peter and Sheila Rocha Greninger
  • US Copyrights at https://www.copyright.gov/

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