15 #define DISABLE_DEBUGLOG
18 #include "cryptkey_p.h"
19 #include <gwenhywfar/misc.h>
20 #include <gwenhywfar/debug.h>
35 gcry_control(GCRYCTL_DISABLE_SECMEM, 0);
36 if (!gcry_check_version (NEED_LIBGCRYPT_VERSION)) {
37 const char *gcrypt_version = gcry_check_version(0);
39 "Gwen needs GCrypt >= %s, but is running with GCrypt %s",
40 NEED_LIBGCRYPT_VERSION, gcrypt_version);
45 gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);
46 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
69 k->cryptAlgoId=cryptAlgoId;
87 cryptAlgoId=GWEN_Crypt_CryptAlgoId_Unknown;
89 if (cryptAlgoId==GWEN_Crypt_CryptAlgoId_Unknown) {
121 "keySize", k->keySize);
123 "keyNumber", k->keyNumber);
125 "keyVersion", k->keyVersion);
140 nk->keyNumber=k->keyNumber;
141 nk->keyVersion=k->keyVersion;
151 if (k->refCount==1) {
166 return k->cryptAlgoId;
194 return k->keyVersion;
257 const uint8_t *pInData,
259 uint8_t *pSignatureData,
260 uint32_t *pSignatureLen) {
263 return k->signFn(k, pInData, inLen, pSignatureData, pSignatureLen);
271 const uint8_t *pInData,
273 const uint8_t *pSignatureData,
274 uint32_t signatureLen) {
277 return k->verifyFn(k, pInData, inLen, pSignatureData, signatureLen);
285 const uint8_t *pInData,
291 return k->encipherFn(k, pInData, inLen, pOutData, pOutLen);
299 const uint8_t *pInData,
305 return k->decipherFn(k, pInData, inLen, pOutData, pOutLen);
#define GWEN_DB_FLAGS_OVERWRITE_VARS
struct GWEN_DB_NODE GWEN_DB_NODE
#define GWEN_INHERIT_FINI(t, element)
GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgoId_fromString(const char *s)
int GWEN_Crypt_Key_GetKeySize(const GWEN_CRYPT_KEY *k)
GWEN_CRYPT_KEY_VERIFY_FN GWEN_Crypt_Key_SetVerifyFn(GWEN_CRYPT_KEY *k, GWEN_CRYPT_KEY_VERIFY_FN f)
void GWEN_Crypt_Key_free(GWEN_CRYPT_KEY *k)
#define GWEN_FREE_OBJECT(varname)
int GWEN_Crypt3_ModuleFini(void)
int GWEN_Crypt_Key_Encipher(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen)
GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_Key_GetCryptAlgoId(const GWEN_CRYPT_KEY *k)
GWENHYWFAR_CB int(* GWEN_CRYPT_KEY_ENCIPHER_FN)(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen)
int GWEN_Crypt_Key_GetKeyNumber(const GWEN_CRYPT_KEY *k)
int GWEN_Crypt3_ModuleInit(void)
int GWEN_Crypt_Key_toDb(const GWEN_CRYPT_KEY *k, GWEN_DB_NODE *db)
#define GWEN_NEW_OBJECT(typ, varname)
GWEN_CRYPT_KEY_SIGN_FN GWEN_Crypt_Key_SetSignFn(GWEN_CRYPT_KEY *k, GWEN_CRYPT_KEY_SIGN_FN f)
const char * GWEN_Crypt_CryptAlgoId_toString(GWEN_CRYPT_CRYPTALGOID a)
#define GWEN_ERROR_GENERIC
GWENHYWFAR_CB int(* GWEN_CRYPT_KEY_DECIPHER_FN)(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen)
GWENHYWFAR_CB int(* GWEN_CRYPT_KEY_SIGN_FN)(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pSignatureData, uint32_t *pSignatureLen)
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
struct GWEN_CRYPT_KEY GWEN_CRYPT_KEY
#define GWEN_INHERIT_INIT(t, element)
GWEN_LIST2_FUNCTIONS(TYPEMAKER2_TYPE, Typemaker2_Type)
GWENHYWFAR_CB int(* GWEN_CRYPT_KEY_VERIFY_FN)(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, const uint8_t *pSignatureData, uint32_t signatureLen)
GWEN_CRYPT_KEY_DECIPHER_FN GWEN_Crypt_Key_SetDecipherFn(GWEN_CRYPT_KEY *k, GWEN_CRYPT_KEY_DECIPHER_FN f)
#define DBG_ERROR(dbg_logger, format, args...)
int GWEN_Crypt_Key_Sign(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pSignatureData, uint32_t *pSignatureLen)
int GWEN_DB_SetCharValue(GWEN_DB_NODE *n, uint32_t flags, const char *path, const char *val)
int GWEN_Crypt_Key_GetKeyVersion(const GWEN_CRYPT_KEY *k)
void GWEN_Crypt_Key_SetKeyVersion(GWEN_CRYPT_KEY *k, int i)
#define GWEN_LIST_INIT(t, element)
int GWEN_Crypt_Key_Decipher(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen)
int GWEN_DB_GetIntValue(GWEN_DB_NODE *n, const char *path, int idx, int defVal)
GWEN_CRYPT_KEY * GWEN_Crypt_Key_dup(const GWEN_CRYPT_KEY *k)
GWEN_CRYPT_KEY_ENCIPHER_FN GWEN_Crypt_Key_SetEncipherFn(GWEN_CRYPT_KEY *k, GWEN_CRYPT_KEY_ENCIPHER_FN f)
int GWEN_DB_SetIntValue(GWEN_DB_NODE *n, uint32_t flags, const char *path, int val)
#define GWEN_LIST_FUNCTIONS(t, pr)
GWEN_CRYPT_KEY * GWEN_Crypt_Key_new(GWEN_CRYPT_CRYPTALGOID cryptAlgoId, int keySize)
int GWEN_Crypt_Key_Verify(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, const uint8_t *pSignatureData, uint32_t signatureLen)
void GWEN_Crypt_Key_SetKeyNumber(GWEN_CRYPT_KEY *k, int i)
#define GWEN_LIST_FINI(t, element)
#define GWEN_INHERIT_FUNCTIONS(t)
GWEN_CRYPT_KEY * GWEN_Crypt_Key_fromDb(GWEN_DB_NODE *db)
#define GWEN_ERROR_NOT_IMPLEMENTED