14 #define DISABLE_DEBUGLOG 19 #include <gwenhywfar/mdigest.h> 20 #include <gwenhywfar/cryptkey.h> 21 #include <gwenhywfar/cryptdefs.h> 22 #include <gwenhywfar/cryptkeysym.h> 23 #include <gwenhywfar/padd.h> 24 #include <gwenhywfar/text.h> 25 #include <gwenhywfar/debug.h> 29 #define BLOWFISH_KEYSIZE 32 79 for (i=0; i<iterations; i++) {
142 len=((v1[0]<<8)+v1[1]) & 0x3fff;
196 for (i=0; i<iterations; i++) {
200 memmove(key, p+(len-
sizeof(key)),
sizeof(key));
241 const char *password,
243 int passwordIterations,
348 const char *password,
350 int passwordIterations,
367 lDest=(p[0]<<8)+p[1];
410 rv=
_decode(p, len, tbuf2, cryptIterations);
430 lDest=(p[0]<<8)+p[1];
440 lDest=(p[0]<<8)+p[1];
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
void GWEN_MDigest_free(GWEN_MDIGEST *md)
int GWEN_Buffer_AllocRoom(GWEN_BUFFER *bf, uint32_t size)
#define GWEN_ERROR_INVALID
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
void GWEN_Crypt_Key_free(GWEN_CRYPT_KEY *k)
int GWEN_SmallTresor_Decrypt(const uint8_t *p, uint32_t len, const char *password, GWEN_BUFFER *dst, int passwordIterations, int cryptIterations)
int GWEN_Buffer_AdjustUsedBytes(GWEN_BUFFER *bf)
int GWEN_Crypt_Key_Encipher(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
char * GWEN_Buffer_GetPosPointer(const GWEN_BUFFER *bf)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
int GWEN_Buffer_IncrementPos(GWEN_BUFFER *bf, uint32_t i)
#define GWEN_ERROR_DECRYPT
static int _decodeData(const uint8_t *ptr, uint32_t len, uint8_t *pOutData, uint32_t *pOutLen, const uint8_t *pKey)
#define GWEN_ERROR_BAD_DATA
GWEN_CRYPT_KEY * GWEN_Crypt_KeyBlowFish_Generate(GWEN_CRYPT_CRYPTMODE mode, int keySize, int quality)
int GWEN_Padd_UnpaddWithIso9796_2(GWEN_BUFFER *buf)
static int _encode(const uint8_t *p, uint32_t len, GWEN_BUFFER *buf, int iterations)
struct GWEN_MDIGEST GWEN_MDIGEST
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
int GWEN_Padd_PaddWithIso9796_2(GWEN_BUFFER *buf, int dstSize)
struct GWEN_CRYPT_KEY GWEN_CRYPT_KEY
static int _encodeData(const uint8_t *ptr, uint32_t len, uint8_t *pOutData, uint32_t *pOutLen, const uint8_t *pKey)
uint8_t * GWEN_Crypt_KeyBlowFish_GetKeyDataPtr(const GWEN_CRYPT_KEY *k)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
void GWEN_Crypt_Random(int quality, uint8_t *buffer, uint32_t len)
#define DBG_ERROR(dbg_logger, format, args...)
#define DBG_INFO(dbg_logger, format, args...)
GWEN_CRYPT_KEY * GWEN_Crypt_KeyBlowFish_fromData(GWEN_CRYPT_CRYPTMODE mode, int keySize, const uint8_t *kd, uint32_t kl)
GWENHYWFAR_API GWEN_MDIGEST * GWEN_MDigest_Sha256_new(void)
static int _addRandomBytes(GWEN_BUFFER *dst, int withLength)
static int _decode(const uint8_t *p, uint32_t len, GWEN_BUFFER *dst, int iterations)
int GWEN_Crypt_Key_Decipher(GWEN_CRYPT_KEY *k, const uint8_t *pInData, uint32_t inLen, uint8_t *pOutData, uint32_t *pOutLen)
int GWEN_Buffer_AppendBytes(GWEN_BUFFER *bf, const char *buffer, uint32_t size)
int GWEN_SmallTresor_Encrypt(const uint8_t *src, uint32_t slen, const char *password, GWEN_BUFFER *dst, int passwordIterations, int cryptIterations)
#define GWEN_ERROR_INTERNAL
#define GWEN_ERROR_ENCRYPT
int GWEN_MDigest_PBKDF2(GWEN_MDIGEST *md, const char *password, const uint8_t *pSalt, uint32_t lSalt, uint8_t *pKey, uint32_t lKey, uint32_t iterations)