示例#1
0
static void prime_product(large_digit &prime)
{
    prime.salt(RSA_NBIT / 2);
    prime &= RSA_MASK;
    prime |= RSA_GOOD;

    while (!rabin(prime)) {
#if 0
        char buf[1024];
        printf("failure, retry: %s!\n", prime.write_digit(buf, 100));
#endif
        prime.salt(RSA_NBIT / 2);
        prime &= RSA_MASK;
        prime |= RSA_GOOD;
    }

    return;
}
示例#2
0
bool GenCarChecksum(const char *pszName, CLSModule *pModule)
{
    FILE *pFile;
    int len;
    char *pBuf;
    unsigned int checksum;

    pFile = fopen(pszName, "r");
    if (!pFile) {
        return false;
    }

    fseek(pFile, 0, SEEK_END);
    len=ftell(pFile);
    if (len <= 0) {
        return false;
    }

    pBuf = (char*)malloc(len + 1);
    if (!pBuf) {
        return false;
    }
    fseek(pFile, 0, SEEK_SET);
    fread(pBuf, sizeof(char), len + 1, pFile);
    if (!feof(pFile)) {
        free(pBuf);
        return false;
    }

    fclose(pFile);

    checksum = rabin(pBuf, len);
    pModule->mChecksum = checksum;

    free(pBuf);

    return true;
}