Beispiel #1
0
int main(int argc, char **argv)
{
	volatile int *base=0;
#ifdef DEBUG
	base=(volatile int *)malloc(64*1024*1024);	// Standalone, buildable on Linux for testing
#else
	HW_PER(PER_UART_CLKDIV)=1250000/1152;	// Running on the ZPU
#endif

	while(1)
	{
		if(sanitycheck(base,CACHESIZE))
			printf("First stage sanity check passed.\n");
		if(bytecheck(base,CACHESIZE))
			printf("Byte (dqm) check passed\n");
		if(addresscheck(base,CACHESIZE))
			printf("Address check passed.\n");
		if(lfsrcheck(base))
			printf("LFSR check passed.\n");
	}
	return(0);
}
Beispiel #2
0
int main(int argc, char **argv)
{
	volatile int *base=0;

	while(1)
	{
		int size=8;
		if(simplecheck(base,CACHESIZE))
			printf("Simple check passed.\n");
		if(sanitycheck(base,CACHESIZE))
			printf("First stage sanity check passed.\n");
		if(bytecheck(base,CACHESIZE))
			printf("Byte (dqm) check passed\n");
//		if(aligncheck(base,CACHESIZE))
//			printf("Alignment check passed\n");
		if(size=addresscheck(base,CACHESIZE))
			printf("Address check passed.\n");
		if(linearcheck(base,size))
			printf("Linear check passed.\n\n");
		if(lfsrcheck(base,size))
			printf("LFSR check passed.\n\n");
	}
	return(0);
}
/* This is a constant time verify */
int ccrsa_emsa_pkcs1v15_verify(size_t emlen, uint8_t *em,
                               size_t dgstlen, const uint8_t *dgst,
                               const uint8_t *oid)
{
    size_t tlen;
    size_t oidlen=oid[1];
    uint8_t r=0;

#define bytecheck(v) r|=(*em++)^(v)
#define memcheck(s, len) r|=cc_cmp_safe((len),em, (s)); em+=(len)

    assert(oid[0]==0x06);

    tlen=2+2+oidlen+2+2+dgstlen+2;

    if(emlen<tlen+11)
        return -1;

    size_t pslen = emlen-3-tlen;

    bytecheck(0x00);
    bytecheck(0x01);
    while(pslen--)
        bytecheck(0xff);
    bytecheck(0x00);
    bytecheck(0x30);
    bytecheck(tlen-2);
    bytecheck(0x30);
    bytecheck(oidlen+4);
    memcheck(oid, oidlen+2);
    bytecheck(0x05);
    bytecheck(0x00);
    bytecheck(0x04);
    bytecheck(dgstlen);
    memcheck(dgst, dgstlen);

    return r;
}