rfc8366.txt   rfc8366.txt 
skipping to change at page 9, line 30 skipping to change at page 9, line 30
} }
5.3. YANG Module 5.3. YANG Module
Following is a YANG [RFC7950] module formally describing the Following is a YANG [RFC7950] module formally describing the
voucher's JSON document structure. voucher's JSON document structure.
<CODE BEGINS> file "ietf-voucher@2018-04-06.yang" <CODE BEGINS> file "ietf-voucher@2018-04-06.yang"
module ietf-voucher { module ietf-voucher {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-voucher";
namespace
"urn:ietf:params:xml:ns:yang:ietf-voucher";
prefix vch; prefix vch;
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference "RFC 6991: Common YANG Data Types"; reference "RFC 6991: Common YANG Data Types";
} }
import ietf-restconf { import ietf-restconf {
prefix rc; prefix rc;
description description
"This import statement is only present to access "This import statement is only present to access
the yang-data extension defined in RFC 8040."; the yang-data extension defined in RFC 8040.";
reference "RFC 8040: RESTCONF Protocol"; reference "RFC 8040: RESTCONF Protocol";
} }
organization
"IETF ANIMA Working Group";
organization
"IETF ANIMA Working Group";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/anima/> "WG Web: <https://datatracker.ietf.org/wg/anima/>
WG List: <mailto:anima@ietf.org> WG List: <mailto:anima@ietf.org>
Author: Kent Watsen Author: Kent Watsen
<mailto:kwatsen@juniper.net> <mailto:kwatsen@juniper.net>
Author: Max Pritikin
<mailto:pritikin@cisco.com>
Author: Michael Richardson
<mailto:mcr+ietf@sandelman.ca>
Author: Toerless Eckert
<mailto:tte+ietf@cs.fau.de>";
Author: Max Pritikin
<mailto:pritikin@cisco.com>
Author: Michael Richardson
<mailto:mcr+ietf@sandelman.ca>
Author: Toerless Eckert
<mailto:tte+ietf@cs.fau.de>";
description description
"This module defines the format for a voucher, which is produced by "This module defines the format for a voucher, which is produced by
a pledge's manufacturer or delegate (MASA) to securely assign a a pledge's manufacturer or delegate (MASA) to securely assign a
pledge to an 'owner', so that the pledge may establish a secure pledge to an 'owner', so that the pledge may establish a secure
connection to the owner's network infrastructure. connection to the owner's network infrastructure.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as 'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they
appear in all capitals, as shown here. appear in all capitals, as shown here.
Copyright (c) 2018 IETF Trust and the persons identified as Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, is permitted pursuant to, and subject to the license modification, is permitted pursuant to, and subject to the license
terms contained in, the Simplified BSD License set forth in Section terms contained in, the Simplified BSD License set forth in Section
4.c of the IETF Trust's Legal Provisions Relating to IETF Documents 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 8366; see the RFC This version of this YANG module is part of RFC 8366; see the RFC
itself for full legal notices."; itself for full legal notices.";
revision 2018-04-06 { revision 2018-04-06 {
description description
"Initial version"; "Initial version";
reference reference "RFC 8366: Voucher Profile for Bootstrapping Protocols";
"RFC 8366: Voucher Profile for Bootstrapping Protocols";
} }
// Top-level statement // Top-level statement
rc:yang-data "voucher-artifact" { rc:yang-data voucher-artifact {
uses voucher-artifact-grouping; uses voucher-artifact-grouping;
} }
// Grouping defined for future augmentations // Grouping defined for future augmentations
grouping voucher-artifact-grouping { grouping voucher-artifact-grouping {
description description
"Grouping to allow reuse/extensions in future work."; "Grouping to allow reuse/extensions in future work.";
container voucher { container voucher {
description description
"A voucher assigns a pledge to an owner (pinned-domain-cert)."; "A voucher assigns a pledge to an owner (pinned-domain-cert).";
leaf created-on { leaf created-on {
type yang:date-and-time; type yang:date-and-time;
mandatory true; mandatory true;
description description
"A value indicating the date this voucher was created. This "A value indicating the date this voucher was created. This
node is primarily for human consumption and auditing. Future node is primarily for human consumption and auditing. Future
work MAY create verification requirements based on this work MAY create verification requirements based on this
node."; node.";
} }
leaf expires-on { leaf expires-on {
type yang:date-and-time; type yang:date-and-time;
must 'not(../nonce)'; must 'not(../nonce)';
description description
"A value indicating when this voucher expires. The node is "A value indicating when this voucher expires. The node is
optional as not all pledges support expirations, such as optional as not all pledges support expirations, such as
pledges lacking a reliable clock. pledges lacking a reliable clock.
If this field exists, then the pledges MUST ensure that If this field exists, then the pledges MUST ensure that
the expires-on time has not yet passed. A pledge without the expires-on time has not yet passed. A pledge without
skipping to change at page 11, line 42 skipping to change at page 11, line 29
"A value indicating when this voucher expires. The node is "A value indicating when this voucher expires. The node is
optional as not all pledges support expirations, such as optional as not all pledges support expirations, such as
pledges lacking a reliable clock. pledges lacking a reliable clock.
If this field exists, then the pledges MUST ensure that If this field exists, then the pledges MUST ensure that
the expires-on time has not yet passed. A pledge without the expires-on time has not yet passed. A pledge without
an accurate clock cannot meet this requirement. an accurate clock cannot meet this requirement.
The expires-on value MUST NOT exceed the expiration date The expires-on value MUST NOT exceed the expiration date
of any of the listed 'pinned-domain-cert' certificates."; of any of the listed 'pinned-domain-cert' certificates.";
} }
leaf assertion { leaf assertion {
type enumeration { type enumeration {
enum verified { enum verified {
description description
"Indicates that the ownership has been positively "Indicates that the ownership has been positively
verified by the MASA (e.g., through sales channel verified by the MASA (e.g., through sales channel
integration)."; integration).";
} }
enum logged { enum logged {
description description
"Indicates that the voucher has been issued after "Indicates that the voucher has been issued after
minimal verification of ownership or control. The minimal verification of ownership or control. The
issuance has been logged for detection of issuance has been logged for detection of
potential security issues (e.g., recipients of potential security issues (e.g., recipients of
vouchers might verify for themselves that unexpected vouchers might verify for themselves that unexpected
vouchers are not in the log). This is similar to unsecured vouchers are not in the log). This is similar to
trust-on-first-use principles but with the logging unsecured trust-on-first-use principles but with
providing a basis for detecting unexpected events."; the logging providing a basis for detecting unexpected
events.";
} }
enum proximity { enum proximity {
description description
"Indicates that the voucher has been issued after "Indicates that the voucher has been issued after
the MASA verified a proximity proof provided by the the MASA verified a proximity proof provided by the
device and target domain. The issuance has been logged device and target domain. The issuance has been logged
for detection of potential security issues. This is for detection of potential security issues. This is
stronger than just logging, because it requires some stronger than just logging, because it requires some
verification that the pledge and owner are verification that the pledge and owner are
in communication but is still dependent on analysis of in communication but is still dependent on analysis of
the logs to detect unexpected events."; the logs to detect unexpected events.";
} }
} }
mandatory true; mandatory true;
description description
"The assertion is a statement from the MASA regarding how "The assertion is a statement from the MASA regarding how
the owner was verified. This statement enables pledges the owner was verified. This statement enables pledges
to support more detailed policy checks. Pledges MUST to support more detailed policy checks. Pledges MUST
ensure that the assertion provided is acceptable, per ensure that the assertion provided is acceptable, per
local policy, before processing the voucher."; local policy, before processing the voucher.";
} }
skipping to change at page 20, line 8 skipping to change at page 20, line 8
Published specification: RFC 8366 Published specification: RFC 8366
Applications that use this media type: ANIMA, 6tisch, and NETCONF Applications that use this media type: ANIMA, 6tisch, and NETCONF
zero-touch imprinting systems. zero-touch imprinting systems.
Fragment identifier considerations: none Fragment identifier considerations: none
Additional information: Additional information:
Deprecated alias names for this type: none Deprecated alias names for this type: none
Magic number(s): None Magic number(s): None
File extension(s): .vcj File extension(s): .vcj
Macintosh file type code(s): none Macintosh file type code(s): none
Person and email address to contact for further information: Person and email address to contact for further information:
IETF ANIMA WG IETF ANIMA WG
Intended usage: LIMITED Intended usage: LIMITED
 End of changes. 23 change blocks. 
59 lines changed or deleted 51 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/