39: def initialize
40: hProvStr = " " * 4
41: if CryptAcquireContext.call(hProvStr, nil, nil, PROV_RSA_FULL,
42: CRYPT_VERIFYCONTEXT) == 0
43: raise SystemCallError, "CryptAcquireContext failed: #{lastErrorMessage}"
44: end
45: hProv, = hProvStr.unpack('L')
46: @bytes = " " * 16
47: if CryptGenRandom.call(hProv, 16, @bytes) == 0
48: raise SystemCallError, "CryptGenRandom failed: #{lastErrorMessage}"
49: end
50: if CryptReleaseContext.call(hProv, 0) == 0
51: raise SystemCallError, "CryptReleaseContext failed: #{lastErrorMessage}"
52: end
53: end