mirror of
https://github.com/tursodatabase/libsql.git
synced 2025-03-08 23:41:50 +00:00
A common complain with libSQL is how to run extensions. The main mechanism, with a .so, has a lot of issues around how those .so are distributed. The most common extensions are the ones in the sqlean package. We can improve this experience by bundling them in our sqlite build. Not all SQLean extensions are kosher: some of them, like fileio, use the vfs. Others, are deemed too complex. The extensions included here are a subset that we deem important enough, and low risk enough, to just be a part of the main bundle.
35 lines
1.1 KiB
C
35 lines
1.1 KiB
C
/*********************************************************************
|
|
* Filename: md5.h
|
|
* Author: Brad Conte (brad AT bradconte.com)
|
|
* Source: https://github.com/B-Con/crypto-algorithms
|
|
* License: Public Domain
|
|
* Details: Defines the API for the corresponding MD5 implementation.
|
|
*********************************************************************/
|
|
|
|
#ifndef MD5_H
|
|
#define MD5_H
|
|
|
|
/*************************** HEADER FILES ***************************/
|
|
#include <stddef.h>
|
|
|
|
/****************************** MACROS ******************************/
|
|
#define MD5_BLOCK_SIZE 16 // MD5 outputs a 16 byte digest
|
|
|
|
/**************************** DATA TYPES ****************************/
|
|
typedef unsigned char BYTE; // 8-bit byte
|
|
typedef unsigned int WORD; // 32-bit word, change to "long" for 16-bit machines
|
|
|
|
typedef struct {
|
|
BYTE data[64];
|
|
WORD datalen;
|
|
unsigned long long bitlen;
|
|
WORD state[4];
|
|
} MD5_CTX;
|
|
|
|
/*********************** FUNCTION DECLARATIONS **********************/
|
|
void* md5_init();
|
|
void md5_update(MD5_CTX* ctx, const BYTE data[], size_t len);
|
|
int md5_final(MD5_CTX* ctx, BYTE hash[]);
|
|
|
|
#endif // MD5_H
|