Files
sdk/runtime/bin/crypto_linux.cc
T
ajohnsen@google.com 0ef4ef2f84 Add sessions to HttpServer.
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
2012-10-22 13:08:42 +00:00

19 lines
560 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.
#include <errno.h>
#include <fcntl.h>
#include "bin/fdutils.h"
#include "bin/crypto.h"
bool Crypto::GetRandomBytes(intptr_t count, uint8_t* buffer) {
intptr_t fd = TEMP_FAILURE_RETRY(open("/dev/urandom", O_RDONLY));
if (fd < 0) return false;
intptr_t bytes_read = read(fd, buffer, count);
close(fd);
return bytes_read == count;
}