blob: dbcd86b361e3bb3d455eef9fe372587bfd4402c4 [file] [log] [blame]
erikchena5085cda2015-09-15 17:26:271// Copyright 2015 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ipc/brokerable_attachment.h"
6
7#include "crypto/random.h"
8
9namespace IPC {
10
erikchen28299a12015-09-24 00:10:2711// static
12BrokerableAttachment::AttachmentId
13BrokerableAttachment::AttachmentId::CreateIdWithRandomNonce() {
14 AttachmentId id;
erikchena5085cda2015-09-15 17:26:2715 // In order to prevent mutually untrusted processes from stealing resources
16 // from one another, the nonce must be secret. This generates a 128-bit,
17 // cryptographicaly-strong random number.
erikchen28299a12015-09-24 00:10:2718 crypto::RandBytes(id.nonce, BrokerableAttachment::kNonceSize);
19 return id;
erikchena5085cda2015-09-15 17:26:2720}
21
22} // namespace IPC