// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.lowpan;

/// Describes a LoWPAN credential.
///
/// Currently only supports a symmetric master key,
/// but may be extended in the future to support other
/// types of credentials, such as passwords, PAKE
/// secrets, or a reference to a certificate/private-key
/// pair.
flexible union Credential {
    /// Describes a symmetric key credential.
    ///
    /// The size of the symmetric key is defined by the
    /// underlying network technology. For Thread this
    /// is a 16-byte value.
    ///
    /// Note that this value is not a password.
    1: bytes:32 master_key;
};
