Implement nwssl NICI compatibility layer
All checks were successful
Source release / source-package (push) Successful in 1m13s
All checks were successful
Source release / source-package (push) Successful in 1m13s
This commit is contained in:
committed by
Mario Fetka
parent
a3def812f5
commit
1f4c03e2f6
@@ -3,13 +3,17 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef N_EXTERN_LIBRARY
|
||||
#define N_EXTERN_LIBRARY(type) type
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef uint8_t NICI_BYTE;
|
||||
typedef uint32_t NICI_ULONG;
|
||||
typedef uint32_t NICI_BBOOL;
|
||||
typedef uint8_t NICI_BBOOL;
|
||||
typedef uint32_t NICI_CC_HANDLE;
|
||||
typedef uint32_t NICI_OBJECT_HANDLE;
|
||||
typedef NICI_OBJECT_HANDLE *NICI_OBJECT_HANDLE_PTR;
|
||||
@@ -18,20 +22,25 @@ typedef uint32_t nuint32;
|
||||
typedef uint8_t nuint8;
|
||||
typedef uint8_t nbool8;
|
||||
|
||||
#define NICI_H_INVALID 0
|
||||
#define NICI_KM_UNSPECIFIED 0
|
||||
typedef uint8_t *pnuint8;
|
||||
|
||||
#define NICI_A_KEY_TYPE 1
|
||||
#define NICI_A_KEY_USAGE 2
|
||||
#define NICI_A_KEY_SIZE 3
|
||||
#define NICI_A_GLOBAL 4
|
||||
#define NICI_A_CLASS 5
|
||||
#define NICI_A_KEY_FORMAT 6
|
||||
#define NICI_A_FEATURE 7
|
||||
#define NICI_H_INVALID 0u
|
||||
#define NICI_KM_UNSPECIFIED 0u
|
||||
#define N_TRUE 1u
|
||||
#define N_FALSE 0u
|
||||
|
||||
#define NICI_K_AES 1
|
||||
#define NICI_K_DES3X 2
|
||||
#define NICI_K_DES 3
|
||||
#define NICI_A_KEY_TYPE 1u
|
||||
#define NICI_A_KEY_USAGE 2u
|
||||
#define NICI_A_KEY_SIZE 3u
|
||||
#define NICI_A_GLOBAL 4u
|
||||
#define NICI_A_CLASS 5u
|
||||
#define NICI_A_KEY_FORMAT 6u
|
||||
#define NICI_A_FEATURE 7u
|
||||
#define NICI_A_KEY_VALUE 8u
|
||||
|
||||
#define NICI_K_AES 1u
|
||||
#define NICI_K_DES3X 2u
|
||||
#define NICI_K_DES 3u
|
||||
|
||||
#define NICI_F_DATA_ENCRYPT 0x0001u
|
||||
#define NICI_F_DATA_DECRYPT 0x0002u
|
||||
@@ -41,37 +50,61 @@ typedef uint8_t nbool8;
|
||||
#define NICI_F_KM_ENCRYPT 0x0020u
|
||||
#define NICI_F_KM_DECRYPT 0x0040u
|
||||
|
||||
#define NICI_O_SECRET_KEY 1
|
||||
#define NICI_AV_STORAGE 1
|
||||
#define NICI_P_IV 1
|
||||
#define NICI_O_SECRET_KEY 1u
|
||||
#define NICI_AV_STORAGE 1u
|
||||
#define NICI_P_IV 1u
|
||||
#define NICI_P_SALT 2u
|
||||
#define NICI_P_COUNT 3u
|
||||
|
||||
#define NICI_E_FUNCTION_NOT_SUPPORTED (-1)
|
||||
|
||||
#define NICI_AlgorithmPrefix(x) (x)
|
||||
#define IDV_NOV_AES128CBCPad NICI_AlgorithmPrefix(1), 97
|
||||
#define IDV_NOV_DES3CBCPad NICI_AlgorithmPrefix(1), 98
|
||||
#define IDV_NOV_DESCBCPad NICI_AlgorithmPrefix(1), 99
|
||||
#define IDV_AES128CBC NICI_AlgorithmPrefix(1), 1
|
||||
#define IDV_DES_EDE3_CBC_IV8 NICI_AlgorithmPrefix(1), 2
|
||||
#define IDV_DES_CBC_IV8 NICI_AlgorithmPrefix(1), 3
|
||||
#define IDV_DES_EDE3_CBCPadIV8 NICI_AlgorithmPrefix(1), 4
|
||||
#define IDV_DES_CBCPadIV8 NICI_AlgorithmPrefix(1), 5
|
||||
#define IDV_NOV_AES128CBCPad NICI_AlgorithmPrefix(1), 6
|
||||
#define IDV_NOV_DES3CBCPad NICI_AlgorithmPrefix(1), 7
|
||||
#define IDV_NOV_DESCBCPad NICI_AlgorithmPrefix(1), 8
|
||||
#define IDV_SHA1 NICI_AlgorithmPrefix(1), 9
|
||||
#define IDV_pbeWithSHA1And3Key3xDES_CBC NICI_AlgorithmPrefix(1), 10
|
||||
|
||||
typedef struct NICI_PARAMETER_DATA_st {
|
||||
uint32_t parmType;
|
||||
union {
|
||||
struct {
|
||||
uint32_t len;
|
||||
void *ptr;
|
||||
} b;
|
||||
uint32_t value;
|
||||
} u;
|
||||
} NICI_PARAMETER_DATA;
|
||||
|
||||
typedef struct NICI_PARAMETER_INFO_st {
|
||||
uint32_t parmType;
|
||||
void *parm;
|
||||
uint32_t parmLen;
|
||||
uint32_t count;
|
||||
NICI_PARAMETER_DATA parms[4];
|
||||
} NICI_PARAMETER_INFO;
|
||||
|
||||
typedef struct NICI_PARAMETER_st {
|
||||
NICI_PARAMETER_INFO *parms;
|
||||
uint32_t parmCount;
|
||||
} NICI_PARAMETER;
|
||||
|
||||
typedef struct NICI_ALGORITHM_st {
|
||||
const uint8_t *algorithm;
|
||||
uint32_t algorithmLen;
|
||||
NICI_PARAMETER *parameter;
|
||||
uint32_t parameterLen;
|
||||
NICI_PARAMETER_INFO *parameter;
|
||||
} NICI_ALGORITHM;
|
||||
|
||||
typedef struct NICI_ATTRIBUTE_st {
|
||||
uint32_t type;
|
||||
union {
|
||||
struct { uint32_t value; } f;
|
||||
struct { void *data; uint32_t len; } b;
|
||||
struct {
|
||||
uint32_t hasValue;
|
||||
uint32_t value;
|
||||
uint32_t valueInfo;
|
||||
} f;
|
||||
struct {
|
||||
void *valuePtr;
|
||||
uint32_t valueLen;
|
||||
uint32_t valueInfo;
|
||||
} v;
|
||||
} u;
|
||||
} NICI_ATTRIBUTE;
|
||||
|
||||
@@ -86,14 +119,16 @@ int CCS_UnwrapKey(NICI_CC_HANDLE context, NICI_OBJECT_HANDLE wrapping_key, const
|
||||
int CCS_GenerateKey(NICI_CC_HANDLE context, NICI_ALGORITHM *algorithm, NICI_ATTRIBUTE_PTR attrs, uint32_t attr_count, NICI_BBOOL *key_size_changed, NICI_OBJECT_HANDLE_PTR key, NICI_OBJECT_HANDLE template_key);
|
||||
int CCS_GetRandom(NICI_CC_HANDLE context, void *buf, uint32_t len);
|
||||
int CCS_DataEncryptInit(NICI_CC_HANDLE context, NICI_ALGORITHM *algorithm, NICI_OBJECT_HANDLE key);
|
||||
int CCS_Encrypt(NICI_CC_HANDLE context, const void *in, uint32_t in_len, void *out, uint32_t *out_len);
|
||||
int CCS_Encrypt(NICI_CC_HANDLE context, const void *in, uint32_t in_len, void *out, void *out_len);
|
||||
int CCS_DataDecryptInit(NICI_CC_HANDLE context, NICI_ALGORITHM *algorithm, NICI_OBJECT_HANDLE key);
|
||||
int CCS_Decrypt(NICI_CC_HANDLE context, const void *in, uint32_t in_len, void *out, uint32_t *out_len);
|
||||
int CCS_Decrypt(NICI_CC_HANDLE context, const void *in, uint32_t in_len, void *out, void *out_len);
|
||||
int CCS_FindObjectsInit(NICI_CC_HANDLE context, NICI_ATTRIBUTE_PTR attrs, uint32_t attr_count);
|
||||
int CCS_FindObjects(NICI_CC_HANDLE context, NICI_OBJECT_HANDLE_PTR objects, uint32_t *object_count);
|
||||
int CCS_FindObjects(NICI_CC_HANDLE context, NICI_OBJECT_HANDLE_PTR objects, void *object_count);
|
||||
int CCS_FindObjectsFinal(NICI_CC_HANDLE context);
|
||||
int CCS_pbeEncrypt(NICI_CC_HANDLE context, const void *password, uint32_t password_len, const void *salt, uint32_t salt_len, uint32_t iterations, const void *in, uint32_t in_len, void *out, uint32_t *out_len);
|
||||
int CCS_pbeDecrypt(NICI_CC_HANDLE context, const void *password, uint32_t password_len, const void *salt, uint32_t salt_len, uint32_t iterations, const void *in, uint32_t in_len, void *out, uint32_t *out_len);
|
||||
int CCS_DigestInit(NICI_CC_HANDLE context, NICI_ALGORITHM *algorithm);
|
||||
int CCS_Digest(NICI_CC_HANDLE context, const void *in, uint32_t in_len, void *out, void *out_len);
|
||||
int CCS_pbeEncrypt(NICI_CC_HANDLE context, NICI_ALGORITHM *algorithm, const void *password, const void *in, uint32_t in_len, void *out, void *out_len);
|
||||
int CCS_pbeDecrypt(NICI_CC_HANDLE context, NICI_ALGORITHM *algorithm, const void *password, const void *in, uint32_t in_len, void *out, void *out_len);
|
||||
int CCS_InjectKey(NICI_CC_HANDLE context, NICI_ATTRIBUTE_PTR attrs, nuint32 attr_count, NICI_OBJECT_HANDLE_PTR key);
|
||||
int CCS_ExtractKey(NICI_CC_HANDLE context, NICI_OBJECT_HANDLE key, NICI_ATTRIBUTE_PTR attrs, nuint32 attr_count);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user