VirtualBox

Ignore:
Timestamp:
Aug 20, 2008 8:48:52 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
35074
Message:

iprt: Implemented the /dev/urandom base random generator as a RTRAND opaque. Made the simple RTRand API just serve as a wrapper using the RTRandAdv API with a global RTRAND handle.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/testcase/tstRand.cpp

    r11347 r11523  
    317317
    318318    /*
     319     * Test saving and restoring the state.
     320     */
     321    RTPrintf("tstRand:   TESTING RTRandAdvSave/RestoreSave\n");
     322    char szState[256];
     323    size_t cbState = sizeof(szState);
     324    int rc = RTRandAdvSaveState(hRand, szState, &cbState);
     325    if (rc != VERR_NOT_SUPPORTED)
     326    {
     327        CHECK_EXPR_MSG(rc == VINF_SUCCESS,  ("RTRandAdvSaveState(%p,,256) -> %Rrc (%d)\n", (uintptr_t)hRand, rc, rc));
     328        uint32_t const u32A1 = RTRandAdvU32(hRand);
     329        uint32_t const u32B1 = RTRandAdvU32(hRand);
     330        RTPrintf("tstRand:   state:\"%s\"  A=%RX32 B=%RX32\n", szState, u32A1, u32B1);
     331
     332        rc = RTRandAdvRestoreState(hRand, szState);
     333        CHECK_EXPR_MSG(rc == VINF_SUCCESS,  ("RTRandAdvRestoreState(%p,\"%s\") -> %Rrc (%d)\n", (uintptr_t)hRand, szState, rc, rc));
     334        uint32_t const u32A2 = RTRandAdvU32(hRand);
     335        uint32_t const u32B2 = RTRandAdvU32(hRand);
     336        CHECK_EXPR_MSG(u32A1 == u32A2, ("u32A1=%RX32 u32A2=%RX32\n", u32A1, u32A2));
     337        CHECK_EXPR_MSG(u32B1 == u32B2, ("u32B1=%RX32 u32B2=%RX32\n", u32B1, u32B2));
     338    }
     339    else
     340    {
     341        szState[0] = '\0';
     342        rc = RTRandAdvRestoreState(hRand, szState);
     343        CHECK_EXPR_MSG(rc == VERR_NOT_SUPPORTED,  ("RTRandAdvRestoreState(%p,\"\") -> %Rrc (%d)\n", (uintptr_t)hRand, rc, rc));
     344    }
     345
     346
     347    /*
    319348     * Destroy it.
    320349     */
    321     int rc = RTRandAdvDestroy(hRand);
     350    rc = RTRandAdvDestroy(hRand);
    322351    CHECK_EXPR_MSG(rc == VINF_SUCCESS,  ("RTRandAdvDestroy(%p) -> %Rrc (%d)\n", (uintptr_t)hRand, rc, rc));
    323352
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette