EVP_DigestUpdate(md, WELLKNOWN, strlen(WELLKNOWN));
EVP_DigestUpdate(md, (unsigned char*)WELLKNOWN, strlen(WELLKNOWN));
static void sig_in(BIO* b)	{	BIO_OK_CTX *ctx;	EVP_MD_CTX *md;	unsigned char tmp[EVP_MAX_MD_SIZE];	int ret= 0;	ctx=(BIO_OK_CTX *)b->ptr;	md= &(ctx->md);	if(ctx->buf_len- ctx->buf_off < 2* md->digest->md_size) return;	EVP_DigestInit(md, md->digest);	memcpy(&(md->md.base[0]), &(ctx->buf[ctx->buf_off]), md->digest->md_size);	longswap(&(md->md.base[0]), md->digest->md_size);	ctx->buf_off+= md->digest->md_size;	EVP_DigestUpdate(md, WELLKNOWN, strlen(WELLKNOWN));	md->digest->final(tmp, &(md->md.base[0]));	ret= memcmp(&(ctx->buf[ctx->buf_off]), tmp, md->digest->md_size) == 0;	ctx->buf_off+= md->digest->md_size;	if(ret == 1)		{		ctx->sigio= 0;		if(ctx->buf_len != ctx->buf_off)			{			memmove(ctx->buf, &(ctx->buf[ctx->buf_off]), ctx->buf_len- ctx->buf_off);			}		ctx->buf_len-= ctx->buf_off;		ctx->buf_off= 0;		}	else		{		ctx->cont= 0;		}	}