⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csd.h

📁 Sigma SMP8634 Mrua v. 2.8.2.0
💻 H
字号:
#ifndef CSD_H
#define CSD_H

/******************************************************************************/
/*                                                                            */
/*                               INCLUDE FILES                                */
/*                                                                            */
/******************************************************************************/

#include <stddef.h>
#include "csd_impl.h"

/******************************************************************************/
/*                                                                            */
/*                              TYPES DEFINITIONS                             */
/*                                                                            */
/******************************************************************************/

typedef struct SCsdInitParameters* TCsdInitParameters;

typedef unsigned char TCsdNuid[4];

typedef unsigned long int TCsdVendorID;

typedef unsigned long int TCsdDerivationLevelNumber;

typedef enum
{
  CSD_SCS_CHECKED_SIZE_16K,
  CSD_SCS_CHECKED_SIZE_32K,
  CSD_SCS_CHECKED_SIZE_64K,
  CSD_SCS_CHECKED_SIZE_128K,
  CSD_SCS_CHECKED_SIZE_256K,
  LAST_CSD_SCS_CHECKED_SIZE
} TCsdSCSCheckedAreaSize;

typedef enum
{
  CSD_NEJTAG_OPEN,
  CSD_NEJTAG_PASSWORD_PROTECTED,
  CSD_NEJTAG_CLOSED,
  CSD_NEJTAG_INCONSISTENT_STATE,
  LAST_CSD_NEJTAG_PORT_STATE
} TCsdNEJTAGPortState;

typedef struct
{
  size_t           length;
  unsigned char*  pData;
} TCsdDataBlock;

typedef TCsdDataBlock TCsdKey;
#define	EMBEDDED_TDES_KEY ((TCsdKey*) NULL)

typedef struct SCsdDescramblerChannelID* TCsdDescramblerChannelID;

typedef struct SCsdRam2RamChannelID* TCsdRam2RamChannelID;

typedef enum
{
  CSD_CRYPTO_MODE_TDES_ECB,
  CSD_CRYPTO_MODE_TDES_CBC,
  CSD_CRYPTO_MODE_AES_ECB,
  CSD_CRYPTO_MODE_AES_CBC,
  LAST_CDS_CRYPTO_MODE
} TCsdCryptoMode;

typedef unsigned long int TCsdCheckNumber;

typedef enum
{
  CSD_NO_ERROR,
  CSD_ERROR_OPERATION_FAILED,
  CSD_ERROR_OPERATION_NOT_ALLOWED,
  CSD_ERROR_BAD_KEY_LENGTH,
  CSD_ERROR_UNKNOWN_CHANNEL_ID,
  CSD_ERROR_CRYPTO_MODE_NOT_SUPPORTED,
  CSD_ERROR_LEVEL_NUMBER_NOT_SUPPORTED,
  LAST_CSD_STATUS
} TCsdStatus;

/******************************************************************************/
/*                                                                            */
/*                             FUNCTION PROTOTYPES                            */
/*                                                                            */
/******************************************************************************/

TCsdStatus csdInitialize
(
  TCsdInitParameters   xInitParameters
);

TCsdStatus csdTerminate
(
  TCsdInitParameters   xInitParameters
);

TCsdStatus csdGetSoftwareVersion
(
  char*     pxSoftwareVersion,
  size_t*   pxSoftwareVersionLength
);

TCsdStatus csdGetNUID
(
  TCsdNuid*   pxNuid
);

TCsdStatus csdGetVendorID
(
  TCsdVendorID*   pxVendorID
);

TCsdStatus csdGetChipRevision
(
  char*     pxChipRevision,
  size_t*   pxChipRevisionLength	
);

TCsdStatus csdSetSCSCheckedAreaSize
(
  TCsdSCSCheckedAreaSize   xSCSCheckedAreaSize
);

TCsdStatus csdEnableSCS
(
  void
);

TCsdStatus csdGetNEJTAGPortState
(
  TCsdNEJTAGPortState*   pxNEJTAGPortState
);

TCsdStatus csdSetNEJTAGPortState
(
  TCsdNEJTAGPortState   xNEJTAGPortState
);

TCsdStatus csdSetClearTextDescramblingKey
(
        TCsdDescramblerChannelID   xDescramblerChannelID,
  const TCsdKey*                  pxOddDescramblingKey,
  const TCsdKey*                  pxEvenDescramblingKey
);

TCsdStatus csdSetDescramblingInternalKeys
(
        TCsdDerivationLevelNumber   xDerivationLevelNumber,
  const TCsdKey                    pxProtectingKeyTable[],
        TCsdCryptoMode              xCryptoMode
);

TCsdStatus csdSetProtectedDescramblingKey
(
        TCsdDescramblerChannelID   xDescramblerChannelID,
  const TCsdKey*                  pxOddProtectedDescramblingKey,
  const TCsdKey*                  pxEvenProtectedDescramblingKey,
        TCsdCryptoMode             xCryptoMode
);

TCsdStatus csdSetRam2RamKey
(
        TCsdRam2RamChannelID        xRam2RamChannelID,
        TCsdDerivationLevelNumber   xDerivationLevelNumber,
  const TCsdKey                    pxProtectingKeyTable[],
        TCsdCryptoMode              xCryptoMode
);

TCsdStatus csdEncryptData
(
        TCsdRam2RamChannelID   xRam2RamChannelID,
  const TCsdDataBlock*        pxSrc,
        TCsdDataBlock*        pxDst,
        TCsdCryptoMode         xCryptoMode
);

TCsdStatus csdDecryptData
(
        TCsdRam2RamChannelID   xRam2RamChannelID,
  const TCsdDataBlock*        pxSrc,
        TCsdDataBlock*        pxDst,
        TCsdCryptoMode         xCryptoMode
);

TCsdStatus csdGetCheckNumber
(
  TCsdCheckNumber*   pxCheckNumber
);

#endif /* CSD_H */

/* END OF FILE */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -