Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Side by Side Diff: src/shared/platform/linux/nacl_secure_random.c

Issue 669056: Support running NaCl in Chromium's Linux SUID sandbox (Closed)
Patch Set: Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2008 The Native Client Authors. All rights reserved. 2 * Copyright 2008 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can 3 * Use of this source code is governed by a BSD-style license that can
4 * be found in the LICENSE file. 4 * be found in the LICENSE file.
5 */ 5 */
6 6
7 /* 7 /*
8 * NaCl Service Runtime. Secure RNG implementation. 8 * NaCl Service Runtime. Secure RNG implementation.
9 */ 9 */
10 10
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 } 117 }
118 118
119 #else 119 #else
120 120
121 # include <sys/types.h> 121 # include <sys/types.h>
122 # include <sys/stat.h> 122 # include <sys/stat.h>
123 # include <fcntl.h> 123 # include <fcntl.h>
124 124
125 static int rng_d = -1; /* open descriptor for /dev/urandom */ 125 static int rng_d = -1; /* open descriptor for /dev/urandom */
126 126
127 # ifdef CHROMIUM_BUILD
128
129 # include "base/rand_util_c.h"
130
131 void NaClSecureRngModuleInit(void) {
132 rng_d = GetUrandomFD();
133 }
134
135 void NaClSecureRngModuleFini(void) {
136 }
137
138 # else
139
127 void NaClSecureRngModuleInit(void) { 140 void NaClSecureRngModuleInit(void) {
128 rng_d = open(NACL_SECURE_RANDOM_SYSTEM_RANDOM_SOURCE, O_RDONLY, 0); 141 rng_d = open(NACL_SECURE_RANDOM_SYSTEM_RANDOM_SOURCE, O_RDONLY, 0);
129 if (-1 == rng_d) { 142 if (-1 == rng_d) {
130 NaClLog(LOG_FATAL, "Cannot open system random source %s\n", 143 NaClLog(LOG_FATAL, "Cannot open system random source %s\n",
131 NACL_SECURE_RANDOM_SYSTEM_RANDOM_SOURCE); 144 NACL_SECURE_RANDOM_SYSTEM_RANDOM_SOURCE);
132 } 145 }
133 } 146 }
134 147
135 void NaClSecureRngModuleFini(void) { 148 void NaClSecureRngModuleFini(void) {
136 (void) close(rng_d); 149 (void) close(rng_d);
137 } 150 }
138 151
152 # endif /* CHROMIUM_BUILD */
153
139 int NaClSecureRngCtor(struct NaClSecureRng *self) { 154 int NaClSecureRngCtor(struct NaClSecureRng *self) {
140 self->base.vtbl = &kNaClSecureRngVtbl; 155 self->base.vtbl = &kNaClSecureRngVtbl;
141 self->nvalid = 0; 156 self->nvalid = 0;
142 return 1; 157 return 1;
143 } 158 }
144 159
145 int NaClSecureRngTestingCtor(struct NaClSecureRng *self, 160 int NaClSecureRngTestingCtor(struct NaClSecureRng *self,
146 uint8_t *seed_material, 161 uint8_t *seed_material,
147 size_t seed_bytes) { 162 size_t seed_bytes) {
148 return 0; 163 return 0;
(...skipping 29 matching lines...) Expand all
178 193
179 #endif 194 #endif
180 195
181 static struct NaClSecureRngVtbl const kNaClSecureRngVtbl = { 196 static struct NaClSecureRngVtbl const kNaClSecureRngVtbl = {
182 NaClSecureRngDtor, 197 NaClSecureRngDtor,
183 NaClSecureRngGenByte, 198 NaClSecureRngGenByte,
184 NaClSecureRngDefaultGenUint32, 199 NaClSecureRngDefaultGenUint32,
185 NaClSecureRngDefaultGenBytes, 200 NaClSecureRngDefaultGenBytes,
186 NaClSecureRngDefaultUniform, 201 NaClSecureRngDefaultUniform,
187 }; 202 };
OLDNEW
« src/shared/imc/nacl_imc_unistd.cc ('K') | « src/shared/imc/nacl_imc_unistd.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698