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

Unified Diff: src/trusted/desc/nacl_desc_rng.c

Issue 550523002: Remove the old "SecureRandom" service, formerly used by get_random_bytes() (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/trusted/desc/nacl_desc_rng.h ('k') | src/trusted/desc/nacl_desc_wrapper.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/trusted/desc/nacl_desc_rng.c
diff --git a/src/trusted/desc/nacl_desc_rng.c b/src/trusted/desc/nacl_desc_rng.c
deleted file mode 100644
index 46db13201b1526558fede357d15bcc38607d2bcf..0000000000000000000000000000000000000000
--- a/src/trusted/desc/nacl_desc_rng.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 2012 The Native Client Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/*
- * A NaClDesc subclass that exposes the platform secure RNG
- * implementation.
- */
-
-#include <string.h>
-
-#include "native_client/src/trusted/desc/nacl_desc_rng.h"
-
-#include "native_client/src/shared/platform/nacl_secure_random.h"
-#include "native_client/src/shared/platform/nacl_secure_random_base.h"
-#include "native_client/src/trusted/desc/nacl_desc_base.h"
-
-#include "native_client/src/trusted/service_runtime/include/sys/stat.h"
-#include "native_client/src/trusted/service_runtime/include/sys/errno.h"
-
-static struct NaClDescVtbl const kNaClDescRngVtbl; /* fwd */
-
-static int NaClDescRngSubclassCtor(struct NaClDescRng *self) {
- if (!NaClSecureRngCtor(&self->rng)) {
- goto rng_ctor_fail;
- }
- NACL_VTBL(NaClRefCount, self) =
- (struct NaClRefCountVtbl *) &kNaClDescRngVtbl;
- return 1;
-
- /* failure cleanup */
- rng_ctor_fail:
- (*NACL_VTBL(NaClRefCount, self)->Dtor)((struct NaClRefCount *) self);
- return 0;
-}
-
-int NaClDescRngCtor(struct NaClDescRng *self) {
- int rv;
- if (!NaClDescCtor((struct NaClDesc *) self)) {
- return 0;
- }
- rv = NaClDescRngSubclassCtor(self);
- if (!rv) {
- (*NACL_VTBL(NaClRefCount, self)->Dtor)((struct NaClRefCount *) self);
- }
- return rv;
-}
-
-static void NaClDescRngDtor(struct NaClRefCount *vself) {
- struct NaClDescRng *self = (struct NaClDescRng *) vself;
-
- (*NACL_VTBL(NaClSecureRngIf, &self->rng)->Dtor)(
- (struct NaClSecureRngIf *) &self->rng);
- NACL_VTBL(NaClDesc, self) = &kNaClDescVtbl;
- (*NACL_VTBL(NaClRefCount, self)->Dtor)((struct NaClRefCount *) self);
-}
-
-static ssize_t NaClDescRngRead(struct NaClDesc *vself,
- void *buf,
- size_t len) {
- struct NaClDescRng *self = (struct NaClDescRng *) vself;
-
- (*NACL_VTBL(NaClSecureRngIf, &self->rng)->GenBytes)(
- (struct NaClSecureRngIf *) &self->rng, buf, len);
- return len;
-}
-
-static ssize_t NaClDescRngWrite(struct NaClDesc *vself,
- void const *buf,
- size_t len) {
- UNREFERENCED_PARAMETER(vself);
- UNREFERENCED_PARAMETER(buf);
-
- /*
- * Eventually we may want to have secure pseudorandom number
- * generators that permit mixing user-supplied data -- presumably
- * low entropy, from timing of events or something like that -- into
- * the generator state. This must be done carefully, of course,
- * since we would not want the user-supplied data to destroy the
- * internal generator's entropy.
- */
- return len;
-}
-
-static int NaClDescRngFstat(struct NaClDesc *vself,
- struct nacl_abi_stat *statbuf) {
- UNREFERENCED_PARAMETER(vself);
-
- memset(statbuf, 0, sizeof *statbuf);
- statbuf->nacl_abi_st_dev = 0;
-#if defined(NACL_MASK_INODES)
- statbuf->nacl_abi_st_ino = NACL_FAKE_INODE_NUM;
-#else
- statbuf->nacl_abi_st_ino = 0;
-#endif
- statbuf->nacl_abi_st_mode = NACL_ABI_S_IRUSR | NACL_ABI_S_IFCHR;
- statbuf->nacl_abi_st_nlink = 1;
- statbuf->nacl_abi_st_uid = -1;
- statbuf->nacl_abi_st_gid = -1;
- statbuf->nacl_abi_st_rdev = 0;
- statbuf->nacl_abi_st_size = 0;
- statbuf->nacl_abi_st_blksize = 0;
- statbuf->nacl_abi_st_blocks = 0;
- statbuf->nacl_abi_st_atime = 0;
- statbuf->nacl_abi_st_atimensec = 0;
- statbuf->nacl_abi_st_mtime = 0;
- statbuf->nacl_abi_st_mtimensec = 0;
- statbuf->nacl_abi_st_ctime = 0;
- statbuf->nacl_abi_st_ctimensec = 0;
-
- return 0;
-}
-
-/*
- * We allow descriptor "transfer", where in reality we create a
- * separate rng locally at the recipient end. This is arguably
- * semantically different since there is no shared access to the same
- * generator; on the other hand, it should be polynomial-time
- * indistinguishable since the output is supposed to be
- * cryptographically secure.
- */
-static int NaClDescRngExternalizeSize(struct NaClDesc *vself,
- size_t *nbytes,
- size_t *nhandles) {
- return NaClDescExternalizeSize(vself, nbytes, nhandles);
-}
-
-static int NaClDescRngExternalize(struct NaClDesc *vself,
- struct NaClDescXferState *xfer) {
- return NaClDescExternalize(vself, xfer);
-}
-
-static struct NaClDescVtbl const kNaClDescRngVtbl = {
- {
- NaClDescRngDtor,
- },
- NaClDescMapNotImplemented,
- NACL_DESC_UNMAP_NOT_IMPLEMENTED
- NaClDescRngRead,
- NaClDescRngWrite,
- NaClDescSeekNotImplemented,
- NaClDescPReadNotImplemented,
- NaClDescPWriteNotImplemented,
- NaClDescRngFstat,
- NaClDescGetdentsNotImplemented,
- NaClDescRngExternalizeSize,
- NaClDescRngExternalize,
- NaClDescLockNotImplemented,
- NaClDescTryLockNotImplemented,
- NaClDescUnlockNotImplemented,
- NaClDescWaitNotImplemented,
- NaClDescTimedWaitAbsNotImplemented,
- NaClDescSignalNotImplemented,
- NaClDescBroadcastNotImplemented,
- NaClDescSendMsgNotImplemented,
- NaClDescRecvMsgNotImplemented,
- NaClDescLowLevelSendMsgNotImplemented,
- NaClDescLowLevelRecvMsgNotImplemented,
- NaClDescConnectAddrNotImplemented,
- NaClDescAcceptConnNotImplemented,
- NaClDescPostNotImplemented,
- NaClDescSemWaitNotImplemented,
- NaClDescGetValueNotImplemented,
- NaClDescSetMetadata,
- NaClDescGetMetadata,
- NaClDescSetFlags,
- NaClDescGetFlags,
- NaClDescIsattyNotImplemented,
- NACL_DESC_DEVICE_RNG,
-};
-
-int NaClDescRngInternalize(struct NaClDesc **out_desc,
- struct NaClDescXferState *xfer,
- struct NaClDescQuotaInterface *quota_interface) {
- int rv;
- struct NaClDescRng *rng = malloc(sizeof *rng);
-
- UNREFERENCED_PARAMETER(xfer);
- UNREFERENCED_PARAMETER(quota_interface);
- if (NULL == rng) {
- rv = -NACL_ABI_ENOMEM;
- goto cleanup;
- }
- if (!NaClDescInternalizeCtor((struct NaClDesc *) rng, xfer)) {
- free(rng);
- rng = NULL;
- rv = -NACL_ABI_ENOMEM;
- goto cleanup;
- }
- if (!NaClDescRngSubclassCtor(rng)) {
- rv = -NACL_ABI_EIO;
- goto cleanup;
- }
- *out_desc = (struct NaClDesc *) rng;
- rv = 0; /* yay! */
- cleanup:
- if (rv < 0) {
- NaClDescSafeUnref((struct NaClDesc *) rng);
- }
- return rv;
-}
« no previous file with comments | « src/trusted/desc/nacl_desc_rng.h ('k') | src/trusted/desc/nacl_desc_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698