Cryptographic Object Manager

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)

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_Decode (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)

Basic Cryptographic Functions



GWENHYWFAR_API int GWEN_CryptMgr_Decrypt (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_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)

Information About the Algorithms for Signing and Encrypting



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

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)

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:

Position

Length

Description

0

1

Type

1

2

Length of the following value (or 0)

2

n

Value

A signed object is such a TLV object consisting of:

Encrypted objects are another kind of TLVs containing:


Define Documentation

#define GWEN_CRYPTMGR_TLV_ENCRYPTEDOBJECT   0x22

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 789 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 757 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 
)
GWENHYWFAR_API void GWEN_CryptMgr_free ( GWEN_CRYPTMGR cm  ) 

Definition at line 46 of file cryptmgr.c.

References GWEN_FREE_OBJECT, and GWEN_INHERIT_FINI.

GWENHYWFAR_API int GWEN_CryptMgr_GetCryptProfile ( const GWEN_CRYPTMGR cm  ) 

Definition at line 146 of file cryptmgr.c.

GWENHYWFAR_API const char* GWEN_CryptMgr_GetLocalKeyName ( const GWEN_CRYPTMGR cm  ) 

Definition at line 58 of file cryptmgr.c.

GWENHYWFAR_API int GWEN_CryptMgr_GetLocalKeyNumber ( const GWEN_CRYPTMGR cm  ) 

Definition at line 74 of file cryptmgr.c.

GWENHYWFAR_API int GWEN_CryptMgr_GetLocalKeyVersion ( const GWEN_CRYPTMGR cm  ) 

Definition at line 88 of file cryptmgr.c.

GWENHYWFAR_API const char* GWEN_CryptMgr_GetPeerKeyName ( const GWEN_CRYPTMGR cm  ) 

Definition at line 102 of file cryptmgr.c.

GWENHYWFAR_API int GWEN_CryptMgr_GetPeerKeyNumber ( const GWEN_CRYPTMGR cm  ) 

Definition at line 118 of file cryptmgr.c.

GWENHYWFAR_API int GWEN_CryptMgr_GetPeerKeyVersion ( const GWEN_CRYPTMGR cm  ) 

Definition at line 132 of file cryptmgr.c.

GWENHYWFAR_API int GWEN_CryptMgr_GetSignatureProfile ( const GWEN_CRYPTMGR cm  ) 

Definition at line 160 of file cryptmgr.c.

GWENHYWFAR_API void GWEN_CryptMgr_SetCryptProfile ( GWEN_CRYPTMGR cm,
int  i 
)

Definition at line 153 of file cryptmgr.c.

GWENHYWFAR_API void GWEN_CryptMgr_SetSignatureProfile ( GWEN_CRYPTMGR cm,
int  i 
)

Definition at line 167 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 
)

Generated on Sat Jan 2 09:32:39 2010 for gwenhywfar by  doxygen 1.6.1