0ef4ef2f84
A session is started when HttpRequest.getSession() is called. The session will then be added to the session manager. The session manager then controls timeouts. The session id is create by using the a crypto-random sequence of 16 bytes. These are extracted by using /dev/urandom on posix and CryptGenRandom on windows. BUG= Review URL: https://codereview.chromium.org//11175030 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13870 260f80e4-7a28-3924-810f-c04153c831b5
23 lines
571 B
C++
23 lines
571 B
C++
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
#define _CRT_RAND_S
|
|
#include "bin/crypto.h"
|
|
|
|
|
|
bool Crypto::GetRandomBytes(intptr_t count, uint8_t* buffer) {
|
|
uint32_t num;
|
|
intptr_t read = 0;
|
|
while (read < count) {
|
|
if (rand_s(&num) != 0) {
|
|
return false;
|
|
}
|
|
for (int i = 0; i < 4 && read < count; i++) {
|
|
buffer[read] = num >> (i * 8);
|
|
read++;
|
|
}
|
|
}
|
|
return true;
|
|
}
|