cryptkeyrsa.c File Reference

#include "cryptkeyrsa_p.h"
#include <gwenhywfar/misc.h>
#include <gwenhywfar/debug.h>
#include <gwenhywfar/text.h>

Go to the source code of this file.

Functions

int GWEN_Crypt_KeyRsa__DataFromDb (GWEN_DB_NODE *db, gcry_ac_data_t *pData, int pub, GWEN_UNUSED unsigned int nbits)
int GWEN_Crypt_KeyRsa__GetNamedElement (const GWEN_CRYPT_KEY *k, const char *name, uint8_t *buffer, uint32_t *pBufLen)
int GWEN_Crypt_KeyRsa__ReadMpi (GWEN_DB_NODE *db, const char *dbName, gcry_ac_data_t ds, const char *dsName)
int GWEN_Crypt_KeyRsa__sKeyElementToData (gcry_ac_data_t data, gcry_sexp_t sx, const char *name)
int GWEN_Crypt_KeyRsa__sKeyToDataPrivKey (gcry_ac_data_t data, gcry_sexp_t sx)
int GWEN_Crypt_KeyRsa__sKeyToDataPubKey (gcry_ac_data_t data, gcry_sexp_t sx)
int GWEN_Crypt_KeyRsa__WriteMpi (GWEN_DB_NODE *db, const char *dbName, gcry_ac_data_t ds, const char *dsName)
void GWEN_Crypt_KeyRsa_AddFlags (GWEN_CRYPT_KEY *k, uint32_t fl)
int GWEN_Crypt_KeyRsa_Decipher (GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen)
GWEN_CRYPT_KEYGWEN_Crypt_KeyRsa_dup (const GWEN_CRYPT_KEY *k)
int GWEN_Crypt_KeyRsa_Encipher (GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen)
GWENHYWFAR_CB void GWEN_Crypt_KeyRsa_freeData (GWEN_UNUSED void *bp, void *p)
GWEN_CRYPT_KEYGWEN_Crypt_KeyRsa_fromDb (GWEN_DB_NODE *db)
GWEN_CRYPT_KEYGWEN_Crypt_KeyRsa_fromModExp (unsigned int nbytes, const uint8_t *pModulus, uint32_t lModulus, const uint8_t *pExponent, uint32_t lExponent)
GWEN_CRYPT_KEYGWEN_Crypt_KeyRsa_fromModPrivExp (unsigned int nbytes, const uint8_t *pModulus, uint32_t lModulus, const uint8_t *pExponent, uint32_t lExponent, const uint8_t *pPrivExponent, uint32_t lPrivExponent)
int GWEN_Crypt_KeyRsa_GeneratePair (unsigned int nbytes, int use65537e, GWEN_CRYPT_KEY **pPubKey, GWEN_CRYPT_KEY **pSecretKey)
int GWEN_Crypt_KeyRsa_GeneratePair2 (unsigned int nbits, int use65537e, GWEN_CRYPT_KEY **pPubKey, GWEN_CRYPT_KEY **pSecretKey)
int GWEN_Crypt_KeyRsa_GetExponent (const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen)
uint32_t GWEN_Crypt_KeyRsa_GetFlags (const GWEN_CRYPT_KEY *k)
int GWEN_Crypt_KeyRsa_GetModulus (const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen)
int GWEN_Crypt_KeyRsa_GetSecretExponent (const GWEN_CRYPT_KEY *k, uint8_t *buffer, uint32_t *pBufLen)
void GWEN_Crypt_KeyRsa_SetFlags (GWEN_CRYPT_KEY *k, uint32_t fl)
int GWEN_Crypt_KeyRsa_Sign (GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pSignatureData, uint32_t *pSignatureLen)
void GWEN_Crypt_KeyRsa_SubFlags (GWEN_CRYPT_KEY *k, uint32_t fl)
int GWEN_Crypt_KeyRsa_toDb (const GWEN_CRYPT_KEY *k, GWEN_DB_NODE *db, int pub)
int GWEN_Crypt_KeyRsa_Verify (GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, const uint8_t *pSignatureData, uint32_t signatureLen)


Function Documentation

int GWEN_Crypt_KeyRsa__DataFromDb ( GWEN_DB_NODE db,
gcry_ac_data_t *  pData,
int  pub,
GWEN_UNUSED unsigned int  nbits 
)

int GWEN_Crypt_KeyRsa__GetNamedElement ( const GWEN_CRYPT_KEY k,
const char *  name,
uint8_t *  buffer,
uint32_t *  pBufLen 
)

int GWEN_Crypt_KeyRsa__ReadMpi ( GWEN_DB_NODE db,
const char *  dbName,
gcry_ac_data_t  ds,
const char *  dsName 
)

int GWEN_Crypt_KeyRsa__sKeyElementToData ( gcry_ac_data_t  data,
gcry_sexp_t  sx,
const char *  name 
)

int GWEN_Crypt_KeyRsa__sKeyToDataPrivKey ( gcry_ac_data_t  data,
gcry_sexp_t  sx 
)

Definition at line 735 of file cryptkeyrsa.c.

References GWEN_Crypt_KeyRsa__sKeyElementToData().

Referenced by GWEN_Crypt_KeyRsa_GeneratePair2().

int GWEN_Crypt_KeyRsa__sKeyToDataPubKey ( gcry_ac_data_t  data,
gcry_sexp_t  sx 
)

Definition at line 721 of file cryptkeyrsa.c.

References GWEN_Crypt_KeyRsa__sKeyElementToData().

Referenced by GWEN_Crypt_KeyRsa_GeneratePair2().

int GWEN_Crypt_KeyRsa__WriteMpi ( GWEN_DB_NODE db,
const char *  dbName,
gcry_ac_data_t  ds,
const char *  dsName 
)

void GWEN_Crypt_KeyRsa_AddFlags ( GWEN_CRYPT_KEY k,
uint32_t  fl 
)

Definition at line 1184 of file cryptkeyrsa.c.

References GWEN_INHERIT_GETDATA.

Referenced by GWEN_Crypt_TokenFile__GenerateKey().

int GWEN_Crypt_KeyRsa_Decipher ( GWEN_CRYPT_KEY k,
const uint8_t *  pInData,
uint32_t  inLen,
uint8_t *  pOutData,
uint32_t *  pOutLen 
)

GWEN_CRYPT_KEY* GWEN_Crypt_KeyRsa_dup ( const GWEN_CRYPT_KEY k  ) 

int GWEN_Crypt_KeyRsa_Encipher ( GWEN_CRYPT_KEY k,
const uint8_t *  pInData,
uint32_t  inLen,
uint8_t *  pOutData,
uint32_t *  pOutLen 
)

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

Definition at line 515 of file cryptkeyrsa.c.

References GWEN_FREE_OBJECT.

Referenced by GWEN_Crypt_KeyRsa_fromDb(), and GWEN_Crypt_KeyRsa_GeneratePair2().

GWEN_CRYPT_KEY* GWEN_Crypt_KeyRsa_fromDb ( GWEN_DB_NODE db  ) 

GWEN_CRYPT_KEY* GWEN_Crypt_KeyRsa_fromModExp ( unsigned int  nbytes,
const uint8_t *  pModulus,
uint32_t  lModulus,
const uint8_t *  pExponent,
uint32_t  lExponent 
)

GWEN_CRYPT_KEY* GWEN_Crypt_KeyRsa_fromModPrivExp ( unsigned int  nbytes,
const uint8_t *  pModulus,
uint32_t  lModulus,
const uint8_t *  pExponent,
uint32_t  lExponent,
const uint8_t *  pPrivExponent,
uint32_t  lPrivExponent 
)

int GWEN_Crypt_KeyRsa_GeneratePair ( unsigned int  nbytes,
int  use65537e,
GWEN_CRYPT_KEY **  pPubKey,
GWEN_CRYPT_KEY **  pSecretKey 
)

Creates a key pair and returns a pointer to it.

Returns:
NULL on error, otherwise a pointer to two keys: public and private
Parameters:
nbytes number of bytes
use65537e !=0: use the value 65537 for the public exponent, otherwise let the library choose the exponent by its own

Definition at line 942 of file cryptkeyrsa.c.

References GWEN_Crypt_KeyRsa_GeneratePair2().

Referenced by GWEN_Crypt_TokenFile__GenerateKey().

int GWEN_Crypt_KeyRsa_GeneratePair2 ( unsigned int  nbits,
int  use65537e,
GWEN_CRYPT_KEY **  pPubKey,
GWEN_CRYPT_KEY **  pSecretKey 
)

Creates a key pair and returns a pointer to it. This function allows for more precise control over the size of the created key because it lets you specify the size in bits rather than in bytes.

Returns:
NULL on error, otherwise a pointer to two keys: public and private
Parameters:
nbits number of bits
use65537e !=0: use the value 65537 for the public exponent, otherwise let the library choose the exponent by its own

Definition at line 758 of file cryptkeyrsa.c.

References DBG_ERROR, DBG_INFO, GWEN_Crypt_Key_free(), GWEN_Crypt_Key_new(), GWEN_Crypt_Key_SetDecipherFn(), GWEN_Crypt_Key_SetEncipherFn(), GWEN_Crypt_Key_SetSignFn(), GWEN_Crypt_Key_SetVerifyFn(), GWEN_Crypt_KeyRsa__sKeyToDataPrivKey(), GWEN_Crypt_KeyRsa__sKeyToDataPubKey(), GWEN_Crypt_KeyRsa_Decipher(), GWEN_Crypt_KeyRsa_Encipher(), GWEN_Crypt_KeyRsa_freeData(), GWEN_Crypt_KeyRsa_Sign(), GWEN_Crypt_KeyRsa_Verify(), GWEN_ERROR_GENERIC, GWEN_INHERIT_SETDATA, GWEN_LOGDOMAIN, and GWEN_NEW_OBJECT.

Referenced by GWEN_Crypt_KeyRsa_GeneratePair(), and GWEN_Crypt_TokenFile__GenerateKey().

int GWEN_Crypt_KeyRsa_GetExponent ( const GWEN_CRYPT_KEY k,
uint8_t *  buffer,
uint32_t *  pBufLen 
)

Definition at line 1008 of file cryptkeyrsa.c.

References GWEN_Crypt_KeyRsa__GetNamedElement().

Referenced by GWEN_Crypt_TokenFile__GenerateKey().

uint32_t GWEN_Crypt_KeyRsa_GetFlags ( const GWEN_CRYPT_KEY k  ) 

Definition at line 1160 of file cryptkeyrsa.c.

References GWEN_INHERIT_GETDATA.

int GWEN_Crypt_KeyRsa_GetModulus ( const GWEN_CRYPT_KEY k,
uint8_t *  buffer,
uint32_t *  pBufLen 
)

Definition at line 1002 of file cryptkeyrsa.c.

References GWEN_Crypt_KeyRsa__GetNamedElement().

Referenced by GWEN_Crypt_TokenFile__GenerateKey().

int GWEN_Crypt_KeyRsa_GetSecretExponent ( const GWEN_CRYPT_KEY k,
uint8_t *  buffer,
uint32_t *  pBufLen 
)

Definition at line 1014 of file cryptkeyrsa.c.

References GWEN_Crypt_KeyRsa__GetNamedElement().

void GWEN_Crypt_KeyRsa_SetFlags ( GWEN_CRYPT_KEY k,
uint32_t  fl 
)

Definition at line 1172 of file cryptkeyrsa.c.

References GWEN_INHERIT_GETDATA.

Referenced by GWEN_Crypt_KeyRsa_dup().

int GWEN_Crypt_KeyRsa_Sign ( GWEN_CRYPT_KEY k,
const uint8_t *  pInData,
uint32_t  inLen,
uint8_t *  pSignatureData,
uint32_t *  pSignatureLen 
)

void GWEN_Crypt_KeyRsa_SubFlags ( GWEN_CRYPT_KEY k,
uint32_t  fl 
)

Definition at line 1196 of file cryptkeyrsa.c.

References GWEN_INHERIT_GETDATA.

int GWEN_Crypt_KeyRsa_toDb ( const GWEN_CRYPT_KEY k,
GWEN_DB_NODE db,
int  pub 
)

int GWEN_Crypt_KeyRsa_Verify ( GWEN_CRYPT_KEY k,
const uint8_t *  pInData,
uint32_t  inLen,
const uint8_t *  pSignatureData,
uint32_t  signatureLen 
)


Generated on Thu Aug 20 13:54:40 2009 for gwenhywfar by  doxygen 1.5.9