gwenhywfar  4.3.1
Defines | Typedefs | Enumerations | Functions
Cryptographic Object Manager
Cryptographic Functions

Framework for Signing, Verifying, Encrypting and Decrypting of data objects. More...

Defines

#define GWEN_CRYPTMGR_TLV_ENCRYPTEDOBJECT   0x22
#define GWEN_CRYPTMGR_TLV_SIGNEDOBJECT   0x21

Typedefs

typedef struct GWEN_CRYPTMGR GWEN_CRYPTMGR

Enumerations

enum  GWEN_CRYPT_PROFILE { GWEN_CryptProfile_None = 0, GWEN_CryptProfile_1 = 1 }
enum  GWEN_SIGNATURE_PROFILE { GWEN_SignatureProfile_None = 0, GWEN_SignatureProfile_1 = 1 }

Functions

GWENHYWFAR_API void GWEN_CryptMgr_free (GWEN_CRYPTMGR *cm)

Information About the Local Key

GWENHYWFAR_API const char * GWEN_CryptMgr_GetLocalKeyName (const GWEN_CRYPTMGR *cm)
GWENHYWFAR_API int GWEN_CryptMgr_GetLocalKeyNumber (const GWEN_CRYPTMGR *cm)
GWENHYWFAR_API int GWEN_CryptMgr_GetLocalKeyVersion (const GWEN_CRYPTMGR *cm)

Information About the Peer Key

GWENHYWFAR_API const char * GWEN_CryptMgr_GetPeerKeyName (const GWEN_CRYPTMGR *cm)
GWENHYWFAR_API int GWEN_CryptMgr_GetPeerKeyNumber (const GWEN_CRYPTMGR *cm)
GWENHYWFAR_API int GWEN_CryptMgr_GetPeerKeyVersion (const GWEN_CRYPTMGR *cm)

Information About the Algorithms for Signing and Encrypting

GWENHYWFAR_API int GWEN_CryptMgr_GetCryptProfile (const GWEN_CRYPTMGR *cm)
GWENHYWFAR_API void GWEN_CryptMgr_SetCryptProfile (GWEN_CRYPTMGR *cm, int i)
GWENHYWFAR_API int GWEN_CryptMgr_GetSignatureProfile (const GWEN_CRYPTMGR *cm)
GWENHYWFAR_API void GWEN_CryptMgr_SetSignatureProfile (GWEN_CRYPTMGR *cm, int i)

Basic Cryptographic Functions

GWENHYWFAR_API int GWEN_CryptMgr_Sign (GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf)
GWENHYWFAR_API int GWEN_CryptMgr_Encrypt (GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf)
GWENHYWFAR_API int GWEN_CryptMgr_Verify (GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf)
GWENHYWFAR_API int GWEN_CryptMgr_Decrypt (GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf)

Complex Cryptographic Functions

Functions of this group perform multiple operations in one setting (e.g. signing and encrypting or decrypting and verifying a signature).

GWENHYWFAR_API int GWEN_CryptMgr_Encode (GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf)
GWENHYWFAR_API int GWEN_CryptMgr_Decode (GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf)

Detailed Description

Framework for Signing, Verifying, Encrypting and Decrypting of data objects.

This group contains functions which operate on cryptographic objects. These objects are signed objects and encrypted objects. Data can be wrapped in those objects for secure transmission.

Keys used by this group are identified by a name, number and version. There is a local key (used for signing and decryption) and a peer key (used for signature verification and encryption).

This module handles the adminstration of signed objects and encrypted objects. The cryptographic functions are performed using callbacks. Therefore you can't instantiate an object of this group directly. You must call the constructor of one of the implementations (like GWEN_CryptMgrKeys_new).

Signed objects and encrypted objects consist of modified TLV (Tag, Length, Value) objects with the following structure:

PositionLengthDescription
01Type
12Length of the following value (or 0)
2nValue

A signed object is such a TLV object consisting of:

Encrypted objects are another kind of TLVs containing:


Define Documentation

Definition at line 61 of file cryptmgr.h.

Referenced by GWEN_CryptMgr_Decrypt(), and GWEN_CryptMgr_Encrypt().

#define GWEN_CRYPTMGR_TLV_SIGNEDOBJECT   0x21

Definition at line 60 of file cryptmgr.h.

Referenced by GWEN_CryptMgr_Sign(), and GWEN_CryptMgr_Verify().


Typedef Documentation

typedef struct GWEN_CRYPTMGR GWEN_CRYPTMGR

Definition at line 64 of file cryptmgr.h.


Enumeration Type Documentation

Enumerator:
GWEN_CryptProfile_None 
GWEN_CryptProfile_1 

Padding for key : ISO 9796-2 Encryption for key : RSA 2048 Padding for data : ANSIX9_23 Encryption for data: BLOWFISH-256

Definition at line 67 of file cryptmgr.h.

Enumerator:
GWEN_SignatureProfile_None 
GWEN_SignatureProfile_1 

Hash: RMD-160 Padd: ISO 9796-2 Sign: RSA 2048

Definition at line 79 of file cryptmgr.h.


Function Documentation

GWENHYWFAR_API int GWEN_CryptMgr_Decode ( GWEN_CRYPTMGR cm,
const uint8_t *  pData,
uint32_t  lData,
GWEN_BUFFER dbuf 
)

Decrypt the given data which is expected to be an encrypted object containing a signed object which actually contains the data. The signature of the contained signed object is verified.

Definition at line 791 of file cryptmgr.c.

References DBG_INFO, GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_GetUsedBytes(), GWEN_Buffer_new(), GWEN_CryptMgr_Decrypt(), GWEN_CryptMgr_Verify(), and GWEN_LOGDOMAIN.

GWENHYWFAR_API int GWEN_CryptMgr_Decrypt ( GWEN_CRYPTMGR cm,
const uint8_t *  pData,
uint32_t  lData,
GWEN_BUFFER dbuf 
)
GWENHYWFAR_API int GWEN_CryptMgr_Encode ( GWEN_CRYPTMGR cm,
const uint8_t *  pData,
uint32_t  lData,
GWEN_BUFFER dbuf 
)

Sign the given data (thus creating a signed object) and encrypt the result of that operation (i.e. creating an encrypted object containing a signed object which actually contains the data).

Definition at line 759 of file cryptmgr.c.

References DBG_INFO, GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_GetUsedBytes(), GWEN_Buffer_new(), GWEN_CryptMgr_Encrypt(), GWEN_CryptMgr_Sign(), and GWEN_LOGDOMAIN.

GWENHYWFAR_API int GWEN_CryptMgr_Encrypt ( GWEN_CRYPTMGR cm,
const uint8_t *  pData,
uint32_t  lData,
GWEN_BUFFER dbuf 
)

Definition at line 48 of file cryptmgr.c.

References GWEN_FREE_OBJECT, and GWEN_INHERIT_FINI.

Referenced by GWEN_Sar_SignArchive(), and GWEN_Sar_VerifyArchive().

Definition at line 148 of file cryptmgr.c.

Definition at line 60 of file cryptmgr.c.

Definition at line 76 of file cryptmgr.c.

Definition at line 90 of file cryptmgr.c.

Definition at line 104 of file cryptmgr.c.

Definition at line 120 of file cryptmgr.c.

Definition at line 134 of file cryptmgr.c.

Definition at line 162 of file cryptmgr.c.

Definition at line 155 of file cryptmgr.c.

Definition at line 169 of file cryptmgr.c.

GWENHYWFAR_API int GWEN_CryptMgr_Sign ( GWEN_CRYPTMGR cm,
const uint8_t *  pData,
uint32_t  lData,
GWEN_BUFFER dbuf 
)
GWENHYWFAR_API int GWEN_CryptMgr_Verify ( GWEN_CRYPTMGR cm,
const uint8_t *  pData,
uint32_t  lData,
GWEN_BUFFER dbuf 
)