ctfile.c File Reference

#include "ctfile_p.h"
#include "i18n_l.h"
#include <gwenhywfar/ctf_context_be.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/debug.h>
#include <gwenhywfar/padd.h>
#include <gwenhywfar/cryptkeyrsa.h>
#include <gwenhywfar/text.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
Include dependency graph for ctfile.c:

Go to the source code of this file.

Functions

int GWEN_Crypt_TokenFile__CloseFile (GWEN_CRYPT_TOKEN *ct, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__Decipher (GWEN_CRYPT_TOKEN *ct, uint32_t keyId, GWEN_CRYPT_PADDALGO *a, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__Encipher (GWEN_CRYPT_TOKEN *ct, uint32_t keyId, GWEN_CRYPT_PADDALGO *a, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__GenerateKey (GWEN_CRYPT_TOKEN *ct, uint32_t keyId, const GWEN_CRYPT_CRYPTALGO *a, uint32_t gid)
const GWEN_CRYPT_TOKEN_CONTEXT
*GWENHYWFAR_CB 
GWEN_Crypt_TokenFile__GetContext (GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__GetContextIdList (GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
GWEN_CRYPT_KEYGWEN_Crypt_TokenFile__GetKey (GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__GetKeyIdList (GWEN_CRYPT_TOKEN *ct, uint32_t *pIdList, uint32_t *pCount, uint32_t gid)
const GWEN_CRYPT_TOKEN_KEYINFO
*GWENHYWFAR_CB 
GWEN_Crypt_TokenFile__GetKeyInfo (GWEN_CRYPT_TOKEN *ct, uint32_t id, uint32_t flags, uint32_t gid)
int GWEN_Crypt_TokenFile__OpenFile (GWEN_CRYPT_TOKEN *ct, int wr, uint32_t gid)
int GWEN_Crypt_TokenFile__Read (GWEN_CRYPT_TOKEN *ct, uint32_t gid)
int GWEN_Crypt_TokenFile__ReadFile (GWEN_CRYPT_TOKEN *ct, uint32_t gid)
int GWEN_Crypt_TokenFile__ReloadIfNeeded (GWEN_CRYPT_TOKEN *ct, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__SetContext (GWEN_CRYPT_TOKEN *ct, uint32_t id, const GWEN_CRYPT_TOKEN_CONTEXT *nctx, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__SetKeyInfo (GWEN_CRYPT_TOKEN *ct, uint32_t id, const GWEN_CRYPT_TOKEN_KEYINFO *ski, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__Sign (GWEN_CRYPT_TOKEN *ct, uint32_t keyId, GWEN_CRYPT_PADDALGO *a, const uint8_t *pInData, uint32_t inLen, uint8_t *pSignatureData, uint32_t *pSignatureLen, uint32_t *pSeqCounter, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__Verify (GWEN_CRYPT_TOKEN *ct, uint32_t keyId, GWEN_CRYPT_PADDALGO *a, const uint8_t *pInData, uint32_t inLen, const uint8_t *pSignatureData, uint32_t signatureLen, uint32_t seqCounter, uint32_t gid)
int GWEN_Crypt_TokenFile__Write (GWEN_CRYPT_TOKEN *ct, int cr, uint32_t gid)
int GWEN_Crypt_TokenFile__WriteFile (GWEN_CRYPT_TOKEN *ct, int cr, uint32_t gid)
void GWEN_Crypt_TokenFile_AddContext (GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_CONTEXT *ctx)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile_Close (GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile_Create (GWEN_CRYPT_TOKEN *ct, uint32_t gid)
GWENHYWFAR_CB void GWEN_Crypt_TokenFile_freeData (GWEN_UNUSED void *bp, void *p)
GWEN_CRYPT_TOKEN_CONTEXTGWEN_Crypt_TokenFile_GetContext (GWEN_CRYPT_TOKEN *ct, int idx)
GWEN_CRYPT_TOKENGWEN_Crypt_TokenFile_new (const char *typeName, const char *tokenName)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile_Open (GWEN_CRYPT_TOKEN *ct, GWEN_UNUSED int admin, uint32_t gid)
GWEN_CRYPT_TOKEN_FILE_READ_FN GWEN_Crypt_TokenFile_SetReadFn (GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_FILE_READ_FN f)
GWEN_CRYPT_TOKEN_FILE_WRITE_FN GWEN_Crypt_TokenFile_SetWriteFn (GWEN_CRYPT_TOKEN *ct, GWEN_CRYPT_TOKEN_FILE_WRITE_FN f)

Function Documentation

int GWEN_Crypt_TokenFile__CloseFile ( GWEN_CRYPT_TOKEN ct,
uint32_t  gid 
)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__Decipher ( GWEN_CRYPT_TOKEN ct,
uint32_t  keyId,
GWEN_CRYPT_PADDALGO a,
const uint8_t *  pInData,
uint32_t  inLen,
uint8_t *  pOutData,
uint32_t *  pOutLen,
uint32_t  gid 
)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__Encipher ( GWEN_CRYPT_TOKEN ct,
uint32_t  keyId,
GWEN_CRYPT_PADDALGO a,
const uint8_t *  pInData,
uint32_t  inLen,
uint8_t *  pOutData,
uint32_t *  pOutLen,
uint32_t  gid 
)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__GenerateKey ( GWEN_CRYPT_TOKEN ct,
uint32_t  keyId,
const GWEN_CRYPT_CRYPTALGO a,
uint32_t  gid 
)

Definition at line 1795 of file ctfile.c.

References DBG_DEBUG, DBG_INFO, GWEN_Crypt_CryptAlgo_GetChunkSize(), GWEN_Crypt_CryptAlgo_GetId(), GWEN_Crypt_CryptAlgo_GetKeySizeInBits(), GWEN_Crypt_Key_free(), GWEN_Crypt_Key_GetKeyNumber(), GWEN_Crypt_Key_GetKeyVersion(), GWEN_Crypt_KeyRsa_AddFlags(), GWEN_CRYPT_KEYRSA_FLAGS_DIRECTSIGN, GWEN_Crypt_KeyRsa_GeneratePair(), GWEN_Crypt_KeyRsa_GeneratePair2(), GWEN_Crypt_KeyRsa_GetExponent(), GWEN_Crypt_KeyRsa_GetModulus(), GWEN_Crypt_Token_Context_List_First(), GWEN_Crypt_Token_Context_List_Next(), GWEN_Crypt_Token_GetModes(), GWEN_CRYPT_TOKEN_KEYFLAGS_CANDECIPHER, GWEN_CRYPT_TOKEN_KEYFLAGS_CANENCIPHER, GWEN_CRYPT_TOKEN_KEYFLAGS_CANSIGN, GWEN_CRYPT_TOKEN_KEYFLAGS_CANVERIFY, GWEN_CRYPT_TOKEN_KEYFLAGS_HASACTIONFLAGS, GWEN_CRYPT_TOKEN_KEYFLAGS_HASSIGNCOUNTER, GWEN_Crypt_Token_KeyInfo_AddFlags(), GWEN_Crypt_Token_KeyInfo_dup(), GWEN_Crypt_Token_KeyInfo_free(), GWEN_Crypt_Token_KeyInfo_SetExponent(), GWEN_Crypt_Token_KeyInfo_SetKeyNumber(), GWEN_Crypt_Token_KeyInfo_SetKeyVersion(), GWEN_Crypt_Token_KeyInfo_SetModulus(), GWEN_Crypt_Token_KeyInfo_SetSignCounter(), GWEN_CRYPT_TOKEN_MODE_DIRECT_SIGN, GWEN_CRYPT_TOKEN_MODE_EXP_65537, GWEN_Crypt_TokenFile__ReloadIfNeeded(), GWEN_Crypt_TokenFile__WriteFile(), GWEN_CTF_Context_GetLocalAuthKeyInfo(), GWEN_CTF_Context_GetLocalCryptKeyInfo(), GWEN_CTF_Context_GetLocalSignKeyInfo(), GWEN_CTF_Context_SetLocalAuthKey(), GWEN_CTF_Context_SetLocalAuthKeyInfo(), GWEN_CTF_Context_SetLocalCryptKey(), GWEN_CTF_Context_SetLocalCryptKeyInfo(), GWEN_CTF_Context_SetLocalSignKey(), GWEN_CTF_Context_SetLocalSignKeyInfo(), GWEN_ERROR_NO_DATA, GWEN_ERROR_NOT_SUPPORTED, GWEN_Gui_ProgressLog(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Error, GWEN_LoggerLevel_Notice, I18N, and NULL.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

const GWEN_CRYPT_TOKEN_CONTEXT* GWENHYWFAR_CB GWEN_Crypt_TokenFile__GetContext ( GWEN_CRYPT_TOKEN ct,
uint32_t  id,
uint32_t  gid 
)

Definition at line 1039 of file ctfile.c.

References DBG_INFO, GWEN_Crypt_Token_Context_GetId(), GWEN_Crypt_Token_Context_List_First(), GWEN_Crypt_Token_Context_List_Next(), GWEN_Crypt_TokenFile__ReloadIfNeeded(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, and NULL.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

int GWENHYWFAR_CB GWEN_Crypt_TokenFile__GetContextIdList ( GWEN_CRYPT_TOKEN ct,
uint32_t *  pIdList,
uint32_t *  pCount,
uint32_t  gid 
)

Definition at line 985 of file ctfile.c.

References DBG_INFO, GWEN_Crypt_Token_Context_List_First(), GWEN_Crypt_Token_Context_List_Next(), GWEN_Crypt_TokenFile__ReloadIfNeeded(), GWEN_ERROR_BUFFER_OVERFLOW, GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, and NULL.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

GWEN_CRYPT_KEY* GWEN_Crypt_TokenFile__GetKey ( GWEN_CRYPT_TOKEN ct,
uint32_t  id,
uint32_t  gid 
)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__GetKeyIdList ( GWEN_CRYPT_TOKEN ct,
uint32_t *  pIdList,
uint32_t *  pCount,
uint32_t  gid 
)

Definition at line 546 of file ctfile.c.

References DBG_INFO, GWEN_CRYPT_TOKEN_CONTEXT_KEYS, GWEN_Crypt_Token_Context_List_First(), GWEN_Crypt_Token_Context_List_Next(), GWEN_Crypt_TokenFile__ReloadIfNeeded(), GWEN_ERROR_BUFFER_OVERFLOW, GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, and NULL.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

const GWEN_CRYPT_TOKEN_KEYINFO* GWENHYWFAR_CB GWEN_Crypt_TokenFile__GetKeyInfo ( GWEN_CRYPT_TOKEN ct,
uint32_t  id,
uint32_t  flags,
uint32_t  gid 
)
int GWEN_Crypt_TokenFile__OpenFile ( GWEN_CRYPT_TOKEN ct,
int  wr,
uint32_t  gid 
)
int GWEN_Crypt_TokenFile__Read ( GWEN_CRYPT_TOKEN ct,
uint32_t  gid 
)

Definition at line 215 of file ctfile.c.

References DBG_ERROR, GWEN_Crypt_Token_GetTokenName(), GWEN_ERROR_IO, GWEN_INHERIT_GETDATA, and GWEN_LOGDOMAIN.

Referenced by GWEN_Crypt_TokenFile__ReadFile().

Here is the call graph for this function:

Here is the caller graph for this function:

int GWEN_Crypt_TokenFile__ReadFile ( GWEN_CRYPT_TOKEN ct,
uint32_t  gid 
)

Definition at line 259 of file ctfile.c.

References DBG_INFO, GWEN_Crypt_Token_Context_List_Clear(), GWEN_Crypt_TokenFile__CloseFile(), GWEN_Crypt_TokenFile__OpenFile(), GWEN_Crypt_TokenFile__Read(), GWEN_INHERIT_GETDATA, and GWEN_LOGDOMAIN.

Referenced by GWEN_Crypt_TokenFile__ReloadIfNeeded(), and GWEN_Crypt_TokenFile_Open().

Here is the call graph for this function:

Here is the caller graph for this function:

int GWEN_Crypt_TokenFile__ReloadIfNeeded ( GWEN_CRYPT_TOKEN ct,
uint32_t  gid 
)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__SetContext ( GWEN_CRYPT_TOKEN ct,
uint32_t  id,
const GWEN_CRYPT_TOKEN_CONTEXT nctx,
uint32_t  gid 
)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__SetKeyInfo ( GWEN_CRYPT_TOKEN ct,
uint32_t  id,
const GWEN_CRYPT_TOKEN_KEYINFO ski,
uint32_t  gid 
)

Definition at line 801 of file ctfile.c.

References DBG_ERROR, DBG_INFO, GWEN_Crypt_Key_free(), GWEN_Crypt_Key_SetKeyNumber(), GWEN_Crypt_Key_SetKeyVersion(), GWEN_Crypt_KeyRsa_fromModExp(), GWEN_Crypt_Token_Context_List_First(), GWEN_Crypt_Token_Context_List_Next(), GWEN_CRYPT_TOKEN_KEYFLAGS_ACTIONMASK, GWEN_CRYPT_TOKEN_KEYFLAGS_HASACTIONFLAGS, GWEN_CRYPT_TOKEN_KEYFLAGS_HASSIGNCOUNTER, GWEN_CRYPT_TOKEN_KEYFLAGS_HASSTATUS, GWEN_Crypt_Token_KeyInfo_GetExponentData(), GWEN_Crypt_Token_KeyInfo_GetExponentLen(), GWEN_Crypt_Token_KeyInfo_GetFlags(), GWEN_Crypt_Token_KeyInfo_GetKeyNumber(), GWEN_Crypt_Token_KeyInfo_GetKeySize(), GWEN_Crypt_Token_KeyInfo_GetKeyVersion(), GWEN_Crypt_Token_KeyInfo_GetModulusData(), GWEN_Crypt_Token_KeyInfo_GetModulusLen(), GWEN_Crypt_Token_KeyInfo_GetSignCounter(), GWEN_Crypt_Token_KeyInfo_SetExponent(), GWEN_Crypt_Token_KeyInfo_SetFlags(), GWEN_Crypt_Token_KeyInfo_SetKeyNumber(), GWEN_Crypt_Token_KeyInfo_SetKeySize(), GWEN_Crypt_Token_KeyInfo_SetKeyVersion(), GWEN_Crypt_Token_KeyInfo_SetModulus(), GWEN_Crypt_Token_KeyInfo_SetSignCounter(), GWEN_Crypt_TokenFile__ReloadIfNeeded(), GWEN_Crypt_TokenFile__WriteFile(), GWEN_CTF_Context_GetLocalAuthKey(), GWEN_CTF_Context_GetLocalAuthKeyInfo(), GWEN_CTF_Context_GetLocalCryptKey(), GWEN_CTF_Context_GetLocalCryptKeyInfo(), GWEN_CTF_Context_GetLocalSignKey(), GWEN_CTF_Context_GetLocalSignKeyInfo(), GWEN_CTF_Context_GetRemoteAuthKey(), GWEN_CTF_Context_GetRemoteAuthKeyInfo(), GWEN_CTF_Context_GetRemoteCryptKey(), GWEN_CTF_Context_GetRemoteCryptKeyInfo(), GWEN_CTF_Context_GetRemoteSignKey(), GWEN_CTF_Context_GetRemoteSignKeyInfo(), GWEN_CTF_Context_SetRemoteAuthKey(), GWEN_CTF_Context_SetRemoteCryptKey(), GWEN_CTF_Context_SetRemoteSignKey(), GWEN_ERROR_INVALID, GWEN_ERROR_NOT_FOUND, GWEN_Gui_ProgressLog(), GWEN_INHERIT_GETDATA, GWEN_LOGDOMAIN, GWEN_LoggerLevel_Error, GWEN_LoggerLevel_Notice, I18N, and NULL.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

int GWENHYWFAR_CB GWEN_Crypt_TokenFile__Sign ( GWEN_CRYPT_TOKEN ct,
uint32_t  keyId,
GWEN_CRYPT_PADDALGO a,
const uint8_t *  pInData,
uint32_t  inLen,
uint8_t *  pSignatureData,
uint32_t *  pSignatureLen,
uint32_t *  pSeqCounter,
uint32_t  gid 
)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile__Verify ( GWEN_CRYPT_TOKEN ct,
uint32_t  keyId,
GWEN_CRYPT_PADDALGO a,
const uint8_t *  pInData,
uint32_t  inLen,
const uint8_t *  pSignatureData,
uint32_t  signatureLen,
uint32_t  seqCounter,
uint32_t  gid 
)
int GWEN_Crypt_TokenFile__Write ( GWEN_CRYPT_TOKEN ct,
int  cr,
uint32_t  gid 
)

Definition at line 234 of file ctfile.c.

References DBG_ERROR, DBG_WARN, GWEN_Crypt_Token_GetTokenName(), GWEN_Crypt_Token_GetTypeName(), GWEN_ERROR_IO, GWEN_ERROR_NOT_SUPPORTED, GWEN_INHERIT_GETDATA, and GWEN_LOGDOMAIN.

Referenced by GWEN_Crypt_TokenFile__WriteFile().

Here is the call graph for this function:

Here is the caller graph for this function:

int GWEN_Crypt_TokenFile__WriteFile ( GWEN_CRYPT_TOKEN ct,
int  cr,
uint32_t  gid 
)
void GWEN_Crypt_TokenFile_AddContext ( GWEN_CRYPT_TOKEN ct,
GWEN_CRYPT_TOKEN_CONTEXT ctx 
)

Definition at line 371 of file ctfile.c.

References GWEN_Crypt_Token_Context_List_Add(), GWEN_CTF_Context_IsOfThisType(), and GWEN_INHERIT_GETDATA.

Here is the call graph for this function:

int GWENHYWFAR_CB GWEN_Crypt_TokenFile_Close ( GWEN_CRYPT_TOKEN ct,
int  abandon,
uint32_t  gid 
)

Definition at line 522 of file ctfile.c.

References GWEN_Crypt_Token_Context_List_Clear(), GWEN_Crypt_TokenFile__WriteFile(), and GWEN_INHERIT_GETDATA.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

int GWENHYWFAR_CB GWEN_Crypt_TokenFile_Create ( GWEN_CRYPT_TOKEN ct,
uint32_t  gid 
)

Definition at line 440 of file ctfile.c.

References DBG_ERROR, DBG_INFO, GWEN_Crypt_Token_GetTokenName(), GWEN_Crypt_TokenFile__WriteFile(), GWEN_ERROR_INVALID, GWEN_ERROR_IO, GWEN_INHERIT_GETDATA, and GWEN_LOGDOMAIN.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

GWENHYWFAR_CB void GWEN_Crypt_TokenFile_freeData ( GWEN_UNUSED void *  bp,
void *  p 
)

Definition at line 1994 of file ctfile.c.

References GWEN_Crypt_Token_Context_List_free(), and GWEN_FREE_OBJECT.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

GWEN_CRYPT_TOKEN_CONTEXT* GWEN_Crypt_TokenFile_GetContext ( GWEN_CRYPT_TOKEN ct,
int  idx 
)

Definition at line 385 of file ctfile.c.

References GWEN_Crypt_Token_Context_List_First(), GWEN_Crypt_Token_Context_List_Next(), GWEN_INHERIT_GETDATA, and NULL.

Here is the call graph for this function:

GWEN_CRYPT_TOKEN* GWEN_Crypt_TokenFile_new ( const char *  typeName,
const char *  tokenName 
)
int GWENHYWFAR_CB GWEN_Crypt_TokenFile_Open ( GWEN_CRYPT_TOKEN ct,
GWEN_UNUSED int  admin,
uint32_t  gid 
)

Definition at line 503 of file ctfile.c.

References DBG_INFO, GWEN_Crypt_TokenFile__ReadFile(), GWEN_INHERIT_GETDATA, and GWEN_LOGDOMAIN.

Referenced by GWEN_Crypt_TokenFile_new().

Here is the call graph for this function:

Here is the caller graph for this function:

GWEN_CRYPT_TOKEN_FILE_READ_FN GWEN_Crypt_TokenFile_SetReadFn ( GWEN_CRYPT_TOKEN ct,
GWEN_CRYPT_TOKEN_FILE_READ_FN  f 
)

Definition at line 406 of file ctfile.c.

References GWEN_INHERIT_GETDATA.

GWEN_CRYPT_TOKEN_FILE_WRITE_FN GWEN_Crypt_TokenFile_SetWriteFn ( GWEN_CRYPT_TOKEN ct,
GWEN_CRYPT_TOKEN_FILE_WRITE_FN  f 
)

Definition at line 423 of file ctfile.c.

References GWEN_INHERIT_GETDATA.

Generated on Mon Jul 5 22:54:22 2010 for gwenhywfar by  doxygen 1.6.3