58 error(
"rdssl_rc4_info_create no memory\n");
81 error(
"CryptAcquireContext failed with %lx\n",
dwErr);
106 error(
"CryptDestroyKey failed with %lx\n",
dwErr);
109 if (
info->hCryptProv)
115 error(
"CryptReleaseContext failed with %lx\n",
dwErr);
132 if (!rc4_info || !
key || !
len || !
info->hCryptProv)
134 error(
"rdssl_rc4_set_key %p %p %d\n", rc4_info,
key,
len);
140 error(
"rdssl_rc4_set_key no memory\n");
167 error(
"CryptImportKey failed with %lx\n",
dwErr);
178 BYTE * intermediate_data;
180 if (!rc4_info || !in_data || !out_data || !
len || !
info->hKey)
182 error(
"rdssl_rc4_crypt %p %p %p %d\n", rc4_info, in_data, out_data,
len);
186 if (!intermediate_data)
188 error(
"rdssl_rc4_set_key no memory\n");
202 g_free(intermediate_data);
203 error(
"CryptEncrypt failed with %lx\n",
dwErr);
206 memcpy(out_data, intermediate_data,
len);
207 g_free(intermediate_data);
225 error(
"rdssl_hash_info_create %d no memory\n",
id);
249 error(
"CryptAcquireContext failed with %lx\n",
dwErr);
262 error(
"CryptCreateHash failed with %lx\n",
dwErr);
282 if (
info->hCryptProv)
305 error(
"CryptDestroyHash failed with %lx\n",
dwErr);
316 error(
"CryptCreateHash failed with %lx\n",
dwErr);
328 error(
"rdssl_hash_transform %p %p %d\n", hash_info,
data,
len);
338 error(
"CryptHashData failed with %lx\n",
dwErr);
351 error(
"rdssl_hash_complete %p %p\n", hash_info,
data);
362 error(
"CryptGetHashParam failed with %lx\n",
dwErr);
373 error(
"CryptGetHashParam failed with %lx\n",
dwErr);
463 if (!
key || !keylen || !
data || !
len ||!output)
465 error(
"rdssl_hmac_md5 %p %d %p %d %p\n",
key, keylen,
data,
len, output);
474 error(
"rdssl_hmac_md5 %d no memory\n");
498 error(
"CryptAcquireContext failed with %lx\n",
dwErr);
517 error(
"CryptCreateHash failed with %lx\n",
dwErr);
528 error(
"CryptHashData failed with %lx\n",
dwErr);
540 error(
"CryptGetHashParam failed with %lx\n",
dwErr);
552 error(
"CryptGetHashParam failed with %lx\n",
dwErr);
570 error(
"CryptImportKey failed with %lx\n",
dwErr);
581 error(
"CryptCreateHash failed with %lx\n",
dwErr);
585 info.cbInnerString = 0;
586 info.cbOuterString = 0;
594 error(
"CryptSetHashParam failed with %lx\n",
dwErr);
604 error(
"CryptHashData failed with %lx\n",
dwErr);
615 error(
"CryptGetHashParam failed with %lx\n",
dwErr);
626 error(
"CryptGetHashParam failed with %lx\n",
dwErr);
674 #define HIBITMASK 0x80000000 675 #define MAX_DIG_LEN 51 676 #define MAX_DIGIT 0xffffffff 677 #define BITS_PER_DIGIT 32 678 #define MAX_HALF_DIGIT 0xffff 679 #define B_J (MAX_HALF_DIGIT + 1) 680 #define LOHALF(x) ((DIGIT_T)((x) & 0xffff)) 681 #define HIHALF(x) ((DIGIT_T)((x) >> 16 & 0xffff)) 682 #define TOHIGH(x) ((DIGIT_T)((x) << 16)) 684 #define mpNEXTBITMASK(mask, n) \ 824 for (
i = 1;
i <
x;
i++)
836 nextcarry = (
b[
i] &
mask) >>
y;
837 a[
i] =
b[
i] <<
x | carry;
860 for (
i = 1;
i <
x;
i++)
873 nextcarry = (
b[
i] &
mask) <<
y;
874 a[
i] =
b[
i] >>
x | carry;
1027 rhat =
u3 - qhat *
v1;
1053 rhat =
t - qhat *
v1;
1056 if ((qhat ==
B_J) || (qhat *
v0 >
t))
1061 if ((rhat <
B_J) && (qhat *
v0 >
t))
1084 rhat =
t - qhat *
v1;
1087 if ((qhat ==
B_J) || (qhat *
v0 >
t))
1092 if ((rhat <
B_J) && (qhat *
v0 >
t))
1127 else if (
t[1] > rhat)
1131 else if (
t[0] > ujn2)
1212 for (
i = 0;
i <
n;
i++)
1316 if (
v[
n - 1] & bitmask)
1329 for (
j =
m;
j >= 0;
j--)
1340 rhat = uu[
j +
n - 1];
1342 if (rhat <
v[
n - 1])
1351 if (!(rhat <
v[
n - 1]))
1361 overflow =
mpMultSub(
t[1], ww,
v, qhat, (
unsigned int)
n);
1367 overflow =
mpAdd(ww, ww,
v, (
unsigned int)
n);
1369 t[0] = uu[
j +
n - 1];
1372 for (
j =
n;
j <
m+
n;
j++)
1427 for (
i = 0;
i < 2 *
m;
i++)
1431 for (
j = 0;
j <
n;
j++)
1442 for (
i = 0;
i <
m;
i++)
1486 char*
mod,
int mod_len,
char*
exp,
int exp_len)
1502 if (in_len > out_len || in_len == 0 ||
1503 out_len == 0 || mod_len == 0 || exp_len == 0)
1564 0x3D, 0x3A, 0x5E, 0xBD, 0x72, 0x43, 0x3E, 0xC9,
1565 0x4D, 0xBB, 0xC1, 0x1E, 0x4A, 0xBA, 0x5F, 0xCB,
1566 0x3E, 0x88, 0x20, 0x87, 0xEF, 0xF5, 0xC1, 0xE2,
1567 0xD7, 0xB7, 0x6B, 0x9A, 0xF2, 0x52, 0x45, 0x95,
1568 0xCE, 0x63, 0x65, 0x6B, 0x58, 0x3A, 0xFE, 0xEF,
1569 0x7C, 0xE7, 0xBF, 0xFE, 0x3D, 0xF6, 0x5C, 0x7D,
1570 0x6C, 0x5E, 0x06, 0x09, 0x1A, 0xF5, 0x61, 0xBB,
1571 0x20, 0x93, 0x09, 0x5F, 0x05, 0x6D, 0xEA, 0x87,
1572 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1577 0x87, 0xA7, 0x19, 0x32, 0xDA, 0x11, 0x87, 0x55,
1578 0x58, 0x00, 0x16, 0x16, 0x25, 0x65, 0x68, 0xF8,
1579 0x24, 0x3E, 0xE6, 0xFA, 0xE9, 0x67, 0x49, 0x94,
1580 0xCF, 0x92, 0xCC, 0x33, 0x99, 0xE8, 0x08, 0x60,
1581 0x17, 0x9A, 0x12, 0x9F, 0x24, 0xDD, 0xB1, 0x24,
1582 0x99, 0xC7, 0x3A, 0xB8, 0x0A, 0x7B, 0x0D, 0xDD,
1583 0x35, 0x07, 0x79, 0x17, 0x0B, 0x51, 0x9B, 0xB3,
1584 0xC7, 0x10, 0x01, 0x13, 0xE7, 0x3F, 0xF3, 0x5F,
1585 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1586 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1587 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1588 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1589 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1590 0x00, 0x00, 0x00, 0x00
1595 char* sign_data,
int sign_len,
char* sign_data2,
int sign_len2,
char* testkey)
1601 if ((e_len != 4) || (n_len != 64) || (sign_len != 64) || (sign_len2 != 64))
1611 md5_final = (
char*)
xmalloc(64);
1621 memset(md5_final, 0xff, 64);
1635 return memcmp(sign_data, sign_data2, sign_len2);
1690 error(
"CryptAcquireContext call failed with %lx\n",
dwErr);
1695 &(
cert->pCertInfo->SubjectPublicKeyInfo),
1704 error(
"CryptImportPublicKeyInfoEx call failed with %lx\n",
dwErr);
1718 error(
"CryptExportKey call failed with %lx\n",
dwErr);
1734 error(
"CryptExportKey call failed with %lx\n",
dwErr);
1752 error(
"CertVerifySubjectCertificateContext call failed with %lx\n",
GetLastError());
1756 error(
"CertVerifySubjectCertificateContext check failed %lx\n",
dwFlags);
1766 if (!rkey || !exponent || !max_exp_len || !
modulus || !max_mod_len)
1768 error(
"rdssl_rkey_get_exp_mod %p %p %ld %p %ld\n", rkey, exponent, max_exp_len,
modulus, max_mod_len);
1771 memcpy (exponent, &
desc->pubexp, max_exp_len);
1781 error(
"rdssl_rkey_free rkey is null\n");
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
static unsigned int mpSizeof(DIGIT_T *a, unsigned int ndigits)
static DIGIT_T mpShiftLeft(DIGIT_T *a, DIGIT_T *b, unsigned int x, unsigned int ndigits)
static DIGIT_T mpAdd(DIGIT_T *w, DIGIT_T *u, DIGIT_T *v, unsigned int ndigits)
void * rdssl_rc4_info_create(void)
GLubyte GLubyte GLubyte GLubyte w
static int QhatTooBig(DIGIT_T qhat, DIGIT_T rhat, DIGIT_T vn2, DIGIT_T ujn2)
static DIGIT_T mpShiftRight(DIGIT_T *a, DIGIT_T *b, unsigned int x, unsigned int ndigits)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
uint8 * rdssl_cert_to_rkey(PCCERT_CONTEXT cert, uint32 *key_len)
static int spMultiply(DIGIT_T *p, DIGIT_T x, DIGIT_T y)
BOOL WINAPI CryptSetHashParam(HCRYPTHASH hHash, DWORD dwParam, const BYTE *pbData, DWORD dwFlags)
GLdouble GLdouble GLdouble r
PCCERT_CONTEXT rdssl_cert_read(uint8 *data, uint32 len)
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
static void g_free(void *in)
static int mpMultiply(DIGIT_T *w, DIGIT_T *u, DIGIT_T *v, unsigned int ndigits)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
void rdssl_hash_transform(void *hash_info, char *data, int len)
#define CERT_STORE_SIGNATURE_FLAG
static int mpCompare(DIGIT_T *a, DIGIT_T *b, unsigned int ndigits)
void rdssl_hash_clear(void *hash_info, ALG_ID id)
void rdssl_sha1_transform(void *sha1_info, char *data, int len)
DWORD WINAPI GetLastError(VOID)
static int mpDivide(DIGIT_T *q, DIGIT_T *r, DIGIT_T *u, unsigned int udigits, DIGIT_T *v, unsigned int vdigits)
void rdssl_hash_complete(void *hash_info, char *data)
GLint GLint GLint GLint GLint x
void rdssl_md5_complete(void *md5_info, char *data)
#define PKCS_7_ASN_ENCODING
#define CryptAcquireContext
#define cmp(status, error)
static int mpModulo(DIGIT_T *r, DIGIT_T *u, unsigned int udigits, DIGIT_T *v, unsigned int vdigits)
int rdssl_rkey_get_exp_mod(uint8 *rkey, uint8 *exponent, uint32 max_exp_len, uint8 *modulus, uint32 max_mod_len)
void rdssl_md5_clear(void *md5_info)
static void mpSetDigit(DIGIT_T *a, DIGIT_T d, unsigned int ndigits)
void rdssl_rc4_set_key(void *rc4_info, char *key, int len)
#define X509_ASN_ENCODING
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
static DIGIT_T mpMultSub(DIGIT_T wn, DIGIT_T *w, DIGIT_T *v, DIGIT_T q, unsigned int n)
void rdssl_rkey_free(uint8 *rkey)
static void mpSetZero(DIGIT_T *a, unsigned int ndigits)
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
static const WCHAR desc[]
static struct _test_info info[]
BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey)
void * rdssl_md5_info_create(void)
static size_t double int ndigits
static int sum(int x_, int y_)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
void rdssl_hmac_md5(char *key, int keylen, char *data, int len, char *output)
BOOL WINAPI CryptEncrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBufLen)
static void mpSetEqual(DIGIT_T *a, DIGIT_T *b, unsigned int ndigits)
GLboolean GLboolean GLboolean b
void rdssl_md5_transform(void *md5_info, char *data, int len)
void rdssl_cert_free(PCCERT_CONTEXT context)
GLdouble GLdouble GLdouble GLdouble q
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash)
BOOL WINAPI CryptExportKey(HCRYPTKEY hKey, HCRYPTKEY hExpKey, DWORD dwBlobType, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
int rdssl_mod_exp(char *out, int out_len, char *in, int in_len, char *mod, int mod_len, char *exp, int exp_len)
BOOL WINAPI CryptImportPublicKeyInfoEx(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
#define memcpy(s1, s2, n)
BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash)
static void * g_malloc(int size, int zero)
void rdssl_rc4_crypt(void *rc4_info, char *in_data, char *out_data, int len)
#define mpNEXTBITMASK(mask, n)
struct _PUBLICKEYSTRUC PUBLICKEYSTRUC
RD_BOOL rdssl_certs_ok(PCCERT_CONTEXT server_cert, PCCERT_CONTEXT cacert)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static int mpModMult(DIGIT_T *a, DIGIT_T *x, DIGIT_T *y, DIGIT_T *m, unsigned int ndigits)
BOOL WINAPI CryptHashData(HCRYPTHASH hHash, const BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
void rdssl_md5_info_delete(void *md5_info)
GLint GLint GLint GLint GLint GLint y
static DIGIT_T spDivide(DIGIT_T *q, DIGIT_T *r, DIGIT_T *u, DIGIT_T v)
VOID WINAPI CryptMemFree(LPVOID pv)
void rdssl_sha1_clear(void *sha1_info)
void rdssl_rc4_info_delete(void *rc4_info)
void rdssl_sha1_info_delete(void *sha1_info)
static DIGIT_T mpShortDiv(DIGIT_T *q, DIGIT_T *u, DIGIT_T v, unsigned int ndigits)
GLboolean GLboolean GLboolean GLboolean a
int rdssl_sign_ok(char *e_data, int e_len, char *n_data, int n_len, char *sign_data, int sign_len, char *sign_data2, int sign_len2, char *testkey)
BOOL WINAPI CryptImportKey(HCRYPTPROV hProv, const BYTE *pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, HCRYPTKEY *phKey)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
void * rdssl_hash_info_create(ALG_ID id)
void rdssl_hash_info_delete(void *hash_info)
void * rdssl_sha1_info_create(void)
BOOL WINAPI CertVerifySubjectCertificateContext(PCCERT_CONTEXT pSubject, PCCERT_CONTEXT pIssuer, DWORD *pdwFlags)
static uint8 g_ppk_d[108]
static void spMultSub(DIGIT_T *uu, DIGIT_T qhat, DIGIT_T v1, DIGIT_T v0)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
void rdssl_sha1_complete(void *sha1_info, char *data)