| < draft-acee-rtg-yang-key-chain-02.txt | draft-acee-rtg-yang-key-chain-03.txt > | |||
|---|---|---|---|---|
| Network Working Group A. Lindem, Ed. | Network Working Group A. Lindem, Ed. | |||
| Internet-Draft Y. Qu | Internet-Draft Y. Qu | |||
| Intended status: Standards Track D. Yeung | Intended status: Standards Track D. Yeung | |||
| Expires: September 4, 2015 Cisco Systems | Expires: September 7, 2015 Cisco Systems | |||
| I. Chen | I. Chen | |||
| Ericsson | Ericsson | |||
| J. Zhang | J. Zhang | |||
| Juniper Networks | Juniper Networks | |||
| Y. Yang | Y. Yang | |||
| Cisco Systems | Cisco Systems | |||
| March 3, 2015 | March 6, 2015 | |||
| Key Chain YANG Data Model | Key Chain YANG Data Model | |||
| draft-acee-rtg-yang-key-chain-02.txt | draft-acee-rtg-yang-key-chain-03.txt | |||
| Abstract | Abstract | |||
| This document describes the key chain YANG data model. A key chain | This document describes the key chain YANG data model. A key chain | |||
| is a list of elements each containing a key, send lifetime, accept | is a list of elements each containing a key, send lifetime, accept | |||
| lifetime, and algorithm. By properly overlapping the send and accept | lifetime, and algorithm. By properly overlapping the send and accept | |||
| lifetimes of multiple key chain elements, keys and algorithms may be | lifetimes of multiple key chain elements, keys and algorithms may be | |||
| gracefully updated. By representing them in a YANG data model, key | gracefully updated. By representing them in a YANG data model, key | |||
| distribution can be automated. Key chains are commonly used for | distribution can be automated. Key chains are commonly used for | |||
| routing protocol authentication and other applications. In some | routing protocol authentication and other applications. In some | |||
| skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 46 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 4, 2015. | This Internet-Draft will expire on September 7, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 27 ¶ | skipping to change at page 2, line 27 ¶ | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Notation . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Notation . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Graceful Key Rollover using Key Chains . . . . . . . . . 3 | 2.1. Graceful Key Rollover using Key Chains . . . . . . . . . 3 | |||
| 3. Design of the Key Chain Model . . . . . . . . . . . . . . . . 4 | 3. Design of the Key Chain Model . . . . . . . . . . . . . . . . 4 | |||
| 4. Key Chain YANG Model . . . . . . . . . . . . . . . . . . . . 10 | 4. Key Chain YANG Model . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 12 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 16 | 7.2. Informative References . . . . . . . . . . . . . . . . . 13 | |||
| Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 16 | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 13 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| This document describes the key chain YANG data model. A key chain | This document describes the key chain YANG data model. A key chain | |||
| is a list of elements each containing a key, send lifetime, accept | is a list of elements each containing a key, send lifetime, accept | |||
| lifetime, and algorithm. By properly overlapping the send and accept | lifetime, and algorithm. By properly overlapping the send and accept | |||
| lifetimes of multiple key chain elements, keys and algorithms may be | lifetimes of multiple key chain elements, keys and algorithms may be | |||
| gracefully updated. By representing them in a YANG data model, key | gracefully updated. By representing them in a YANG data model, key | |||
| distribution can be automated. Key chains are commonly used for | distribution can be automated. Key chains are commonly used for | |||
| routing protocol authentication and other applications. In some | routing protocol authentication and other applications. In some | |||
| skipping to change at page 4, line 35 ¶ | skipping to change at page 4, line 35 ¶ | |||
| unspecified, the key is always considered valid. | unspecified, the key is always considered valid. | |||
| Note that asymmetric keys, i.e., a different key value used for | Note that asymmetric keys, i.e., a different key value used for | |||
| transmission versus acceptance, may be supported with multiple key | transmission versus acceptance, may be supported with multiple key | |||
| chain elements where the accept-lifetime or send-lifetime is not | chain elements where the accept-lifetime or send-lifetime is not | |||
| valid (e.g., has an end-time equal to the start-time). | valid (e.g., has an end-time equal to the start-time). | |||
| Due to the differences in key chain implementations across various | Due to the differences in key chain implementations across various | |||
| vendors, some of the data elements are optional. Additionally, the | vendors, some of the data elements are optional. Additionally, the | |||
| key-chain is made a grouping so that an implementation could support | key-chain is made a grouping so that an implementation could support | |||
| scoping other than at the global level. | scoping other than at the global level. Finally, the crypto- | |||
| algorithm-types grouping is provided for reuse when configuring | ||||
| legacy authentication and encryption not using key-chains. | ||||
| A key-chain is identified by a unique name within the scope of the | A key-chain is identified by a unique name within the scope of the | |||
| network device. The "key-chain-ref" typedef SHOULD be used by other | network device. The "key-chain-ref" typedef SHOULD be used by other | |||
| YANG modules when they need to reference a configured key-chain. | YANG modules when they need to reference a configured key-chain. | |||
| module: ietf-key-chain | ||||
| +--rw key-chains* [name] | ||||
| +--rw name string | ||||
| +--rw accept-tolerance {accept-tolerance}? | ||||
| | +--rw duration? uint32 | ||||
| +--rw key* [key-id] | ||||
| +--rw key-id uint64 | ||||
| +--rw key-string | ||||
| | +--rw (key-string-style)? | ||||
| | +--:(keystring) | ||||
| | | +--rw keystring? string | ||||
| | +--:(hexadecimal) {hex-key-string}? | ||||
| | +--rw hexadecimal-string? yang:hex-string | ||||
| +--rw lifetime | ||||
| | +--rw (lifetime)? | ||||
| | +--:(send-and-accept-lifetime) | ||||
| | | +--rw send-accept-lifetime | ||||
| | | +--rw (lifetime)? | ||||
| | | +--:(always) | ||||
| | | | +--rw always? empty | ||||
| | | +--:(start-end-time) | ||||
| | | +--rw start-date-time? | ||||
| | | | yang:date-and-time | ||||
| | | +--rw (end-time)? | ||||
| | | +--:(infinite) | ||||
| | | | +--rw no-end-time? empty | ||||
| | | +--:(duration) | ||||
| | | | +--rw duration? uint32 | ||||
| | | +--:(end-date-time) | ||||
| | | +--rw end-date-time? | ||||
| | | yang:date-and-time | ||||
| | +--:(independent-send-accept-lifetime) | ||||
| | | {independent-send-accept-lifetime}? | ||||
| | +--rw send-lifetime | ||||
| | | +--rw (lifetime)? | ||||
| | | +--:(always) | ||||
| | | | +--rw always? empty | ||||
| | | +--:(start-end-time) | ||||
| | | +--rw start-date-time? | ||||
| | | | yang:date-and-time | ||||
| | | +--rw (end-time)? | ||||
| | | +--:(infinite) | ||||
| | | | +--rw no-end-time? empty | ||||
| | | +--:(duration) | ||||
| | | | +--rw duration? uint32 | ||||
| | | +--:(end-date-time) | ||||
| | | +--rw end-date-time? | ||||
| | | yang:date-and-time | ||||
| | +--rw accept-lifetime | ||||
| | +--rw (lifetime)? | ||||
| | +--:(always) | ||||
| | | +--rw always? empty | ||||
| | +--:(start-end-time) | ||||
| | +--rw start-date-time? yang:date-and-time | ||||
| | +--rw (end-time)? | ||||
| | +--:(infinite) | ||||
| | | +--rw no-end-time? empty | ||||
| | +--:(duration) | ||||
| | | +--rw duration? uint32 | ||||
| | +--:(end-date-time) | ||||
| | +--rw end-date-time? | ||||
| | yang:date-and-time | ||||
| +--rw crypto-algorithm | ||||
| +--rw (algorithm)? | ||||
| +--:(hmac-sha1-12) | ||||
| | +--rw hmac-sha1-12? empty | ||||
| +--:(hmac-sha1-20) | ||||
| | +--rw hmac-sha1-20? empty | ||||
| +--:(md5) | ||||
| | +--rw md5? empty | ||||
| +--:(sha-1) | ||||
| | +--rw sha-1? empty | ||||
| +--:(hmac-sha-1) | ||||
| | +--rw hmac-sha-1? empty | ||||
| +--:(hmac-sha-256) | ||||
| | +--rw hmac-sha-256? empty | ||||
| +--:(hmac-sha-384) | ||||
| | +--rw hmac-sha-384? empty | ||||
| +--:(hmac-sha-512) | ||||
| +--rw hmac-sha-512? empty | ||||
| 4. Key Chain YANG Model | ||||
| module ietf-key-chain { | module ietf-key-chain { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-key-chain"; | namespace "urn:ietf:params:xml:ns:yang:ietf-key-chain"; | |||
| // replace with IANA namespace when assigned | // replace with IANA namespace when assigned | |||
| prefix "key-chain"; | prefix "key-chain"; | |||
| import ietf-yang-types { | import ietf-yang-types { | |||
| prefix "yang"; | prefix "yang"; | |||
| } | } | |||
| organization | organization | |||
| skipping to change at page 6, line 49 ¶ | skipping to change at page 8, line 37 ¶ | |||
| leaf end-date-time { | leaf end-date-time { | |||
| type yang:date-and-time; | type yang:date-and-time; | |||
| description "End time."; | description "End time."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping crypto-algorithm-types { | ||||
| description "Cryptographic algorithm types."; | ||||
| choice algorithm { | ||||
| description | ||||
| "Options for crytographic algorithm specification."; | ||||
| case hmac-sha1-12 { | ||||
| leaf hmac-sha1-12 { | ||||
| type empty; | ||||
| description "The HMAC-SHA1-12 algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha1-20 { | ||||
| leaf hmac-sha1-20 { | ||||
| type empty; | ||||
| description "The HMAC-SHA1-20 algorithm."; | ||||
| } | ||||
| } | ||||
| case md5 { | ||||
| leaf md5 { | ||||
| type empty; | ||||
| description "The MD5 algorithm."; | ||||
| } | ||||
| } | ||||
| case sha-1 { | ||||
| leaf sha-1 { | ||||
| type empty; | ||||
| description "The SHA-1 algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-1 { | ||||
| leaf hmac-sha-1 { | ||||
| type empty; | ||||
| description "HMAC-SHA-1 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-256 { | ||||
| leaf hmac-sha-256 { | ||||
| type empty; | ||||
| description "HMAC-SHA-256 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-384 { | ||||
| leaf hmac-sha-384 { | ||||
| type empty; | ||||
| description "HMAC-SHA-384 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-512 { | ||||
| leaf hmac-sha-512 { | ||||
| type empty; | ||||
| description "HMAC-SHA-512 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping key-chain { | grouping key-chain { | |||
| description | description | |||
| "Grouping for one key-chain."; | "key-chain specification grouping."; | |||
| leaf name { | leaf name { | |||
| type string; | type string; | |||
| description "Name of the key-chain."; | description "Name of the key-chain."; | |||
| } | } | |||
| container accept-tolerance { | container accept-tolerance { | |||
| if-feature accept-tolerance; | if-feature accept-tolerance; | |||
| description | description | |||
| "Tolerance for key lifetime acceptance (seconds)."; | "Tolerance for key lifetime acceptance (seconds)."; | |||
| leaf duration { | leaf duration { | |||
| type uint32; | type uint32; | |||
| units seconds; | units seconds; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Tolerance range, in seconds."; | "Tolerance range, in seconds."; | |||
| skipping to change at page 8, line 37 ¶ | skipping to change at page 11, line 32 ¶ | |||
| } | } | |||
| container accept-lifetime { | container accept-lifetime { | |||
| uses lifetime; | uses lifetime; | |||
| description | description | |||
| "Separate lifetime specification for accept | "Separate lifetime specification for accept | |||
| lifetime."; | lifetime."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container crypto-algorithm { | ||||
| choice algorithm { | ||||
| description | ||||
| "Options for crytographic algorithm specification."; | ||||
| case hmac-sha1-12 { | ||||
| leaf hmac-sha1-12 { | ||||
| type empty; | ||||
| description "The HMAC-SHA1-12 algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha1-20 { | ||||
| leaf hmac-sha1-20 { | ||||
| type empty; | ||||
| description "The HMAC-SHA1-20 algorithm."; | ||||
| } | ||||
| } | ||||
| case md5 { | ||||
| leaf md5 { | ||||
| type empty; | ||||
| description "The MD5 algorithm."; | ||||
| } | ||||
| } | ||||
| case sha-1 { | ||||
| leaf sha-1 { | ||||
| type empty; | ||||
| description "The SHA-1 algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-1 { | ||||
| leaf hmac-sha-1 { | ||||
| type empty; | ||||
| description "HMAC-SHA-1 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-256 { | ||||
| leaf hmac-sha-256 { | ||||
| type empty; | ||||
| description "HMAC-SHA-256 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-384 { | ||||
| leaf hmac-sha-384 { | ||||
| type empty; | ||||
| description "HMAC-SHA-384 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-512 { | ||||
| leaf hmac-sha-512 { | ||||
| type empty; | ||||
| description "HMAC-SHA-512 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| } | ||||
| description "The crypto algorithm used."; | ||||
| } | ||||
| } | ||||
| } | ||||
| list key-chains { | ||||
| key "name"; | ||||
| description | ||||
| "A key-chain is a sequence of keys that are collectively | ||||
| managed for authentication."; | ||||
| uses key-chain; | ||||
| } | ||||
| } | ||||
| 4. Key Chain YANG Model | ||||
| module ietf-key-chain { | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-key-chain"; | ||||
| // replace with IANA namespace when assigned | ||||
| prefix key-chain; | ||||
| import ietf-yang-types { | ||||
| prefix "yang"; | ||||
| } | ||||
| organization | ||||
| "Cisco Systems | ||||
| 170 West Tasman Drive | ||||
| San Jose, CA 95134-1706 | ||||
| USA"; | ||||
| contact | ||||
| "Acee Lindem - acee@cisco.com"; | ||||
| description | ||||
| "This YANG module defines the generic configuration | ||||
| data for key-chain. It is intended that the module | ||||
| will be extended by vendors to define vendor-specific | ||||
| key-chain configuration parameters. | ||||
| "; | ||||
| revision 2015-02-24 { | ||||
| description | ||||
| "Initial revision."; | ||||
| reference | ||||
| "RFC XXXX: A YANG Data Model for key-chain"; | ||||
| } | ||||
| feature hex-key-string { | ||||
| description | ||||
| "Support hexadecimal key string."; | ||||
| } | ||||
| feature accept-tolerance { | ||||
| description | ||||
| "To specify the tolerance or acceptance limit."; | ||||
| } | ||||
| feature independent-send-accept-lifetime { | ||||
| description | ||||
| "Support for independent send and accept key lifetimes."; | ||||
| } | ||||
| grouping lifetime { | ||||
| description | ||||
| "Key lifetime specification."; | ||||
| choice lifetime { | ||||
| default always; | ||||
| case always { | ||||
| leaf always { | ||||
| type empty; | ||||
| } | ||||
| description | ||||
| "Key is always valid."; | ||||
| } | ||||
| case start-end-time { | ||||
| leaf start-date-time { | ||||
| type yang:date-and-time; | ||||
| description "Start time."; | ||||
| } | ||||
| choice end-time { | ||||
| default infinite; | ||||
| description | ||||
| "End-time setting."; | ||||
| case infinite { | ||||
| leaf no-end-time { | ||||
| type empty; | ||||
| } | ||||
| description | ||||
| "Never expires."; | ||||
| } | ||||
| case duration { | ||||
| leaf duration { | ||||
| type uint32 { | ||||
| range "1..2147483646"; | ||||
| } | ||||
| units seconds; | ||||
| description "Key lifetime duration, in seconds"; | ||||
| } | ||||
| } | ||||
| case end-date-time { | ||||
| leaf end-date-time { | ||||
| type yang:date-and-time; | ||||
| description "End time."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping key-chain { | ||||
| description | ||||
| "Grouping for one key-chain."; | ||||
| leaf name { | ||||
| type string; | ||||
| description "Name of the key-chain."; | ||||
| } | ||||
| container accept-tolerance { | ||||
| if-feature accept-tolerance; | ||||
| leaf duration { | ||||
| type uint32; | ||||
| units seconds; | ||||
| default "0"; | ||||
| description | ||||
| "Tolerance range, in seconds."; | ||||
| } | ||||
| } | ||||
| list key { | ||||
| key "key-id"; | ||||
| description "One key."; | ||||
| leaf key-id { | ||||
| type uint64; | ||||
| description "Key id."; | ||||
| } | ||||
| container key-string { | ||||
| description "The key string."; | ||||
| choice key-string-style { | ||||
| description | ||||
| "Key string styles"; | ||||
| case keystring { | ||||
| leaf keystring { | ||||
| type string; | ||||
| } | ||||
| } | ||||
| case hexadecimal { | ||||
| if-feature hex-key-string; | ||||
| leaf hexadecimal-string { | ||||
| type yang:hex-string; | ||||
| description | ||||
| "Hexadecimal string."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| container lifetime { | ||||
| description "Specify a key's lifetime."; | ||||
| choice lifetime { | ||||
| case send-and-accept-lifetime { | ||||
| description | ||||
| "Send and accept key have the same lifetime."; | ||||
| container send-accept-lifetime { | ||||
| uses lifetime; | ||||
| } | ||||
| } | ||||
| case independent-send-accept-lifetime { | ||||
| if-feature independent-send-accept-lifetime; | ||||
| description | ||||
| "Independent send and accept key lifetimes."; | ||||
| container send-lifetime { | ||||
| uses lifetime; | ||||
| } | ||||
| container accept-lifetime { | ||||
| uses lifetime; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| container crypto-algorithm { | container crypto-algorithm { | |||
| choice algorithm { | uses crypto-algorithm-types; | |||
| case hmac-sha1-12 { | description "Cryptographic algorithm associated with key."; | |||
| leaf hmac-sha1-12 { | ||||
| type empty; | ||||
| description "The HMAC-SHA1-12 algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha1-20 { | ||||
| leaf hmac-sha1-20 { | ||||
| type empty; | ||||
| description "The HMAC-SHA1-20 algorithm."; | ||||
| } | ||||
| } | ||||
| case md5 { | ||||
| leaf md5 { | ||||
| type empty; | ||||
| description "The MD5 algorithm."; | ||||
| } | ||||
| } | ||||
| case sha-1 { | ||||
| leaf sha-1 { | ||||
| type empty; | ||||
| description "The SHA-1 algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-1 { | ||||
| leaf hmac-sha-1 { | ||||
| type empty; | ||||
| description "HMAC-SHA-1 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-256 { | ||||
| leaf hmac-sha-256 { | ||||
| type empty; | ||||
| description "HMAC-SHA-256 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-384 { | ||||
| leaf hmac-sha-384 { | ||||
| type empty; | ||||
| description "HMAC-SHA-384 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| case hmac-sha-512 { | ||||
| leaf hmac-sha-512 { | ||||
| type empty; | ||||
| description "HMAC-SHA-512 authentication algorithm."; | ||||
| } | ||||
| } | ||||
| } | ||||
| description "The crypto algorithm used."; | ||||
| } | } | |||
| } | } | |||
| } | } | |||
| list key-chains { | list key-chains { | |||
| key "name"; | key "name"; | |||
| description | description | |||
| "A key-chain is a sequence of keys that are collectively | "A key-chain is a sequence of keys that are collectively | |||
| managed for authentication."; | managed for authentication."; | |||
| uses key-chain; | uses key-chain; | |||
| End of changes. 12 change blocks. | ||||
| 304 lines changed or deleted | 158 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||