Пример #1
0
bool
random_device::hasRDRAND()
{
    if (!hasIntelCpu())
        return false;

    CPUIDinfo info;
    cpuid_info(&info, 1, 0);
    static const constexpr unsigned int RDRAND_FLAG = (1 << 30);
    if ((info.ECX & RDRAND_FLAG) == RDRAND_FLAG)
        return true;
    return false;
}
Пример #2
0
bool
random_device::hasRdseed()
{
    if (!hasIntelCpu())
        return false;

    CPUIDinfo info;
    info.get(7, 0);
    static const constexpr unsigned int RDSEED_FLAG = (1 << 18);
    if ((info.ECX & RDSEED_FLAG) == RDSEED_FLAG)
        return true;
    return false;
}