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); }
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; }