| Index: runtime/bin/crypto_win.cc
|
| diff --git a/runtime/bin/crypto_win.cc b/runtime/bin/crypto_win.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..640efb2383c684cf4b421a95c7e28290e6f7b486
|
| --- /dev/null
|
| +++ b/runtime/bin/crypto_win.cc
|
| @@ -0,0 +1,22 @@
|
| +// 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;
|
| +}
|
|
|