draft-ietf-netconf-netconf-client-server-16.txt | draft-ietf-netconf-netconf-client-server-17.txt | |||
---|---|---|---|---|
NETCONF Working Group K. Watsen | NETCONF Working Group K. Watsen | |||
Internet-Draft Watsen Networks | Internet-Draft Watsen Networks | |||
Intended status: Standards Track November 1, 2019 | Intended status: Standards Track November 20, 2019 | |||
Expires: May 4, 2020 | Expires: May 23, 2020 | |||
NETCONF Client and Server Models | NETCONF Client and Server Models | |||
draft-ietf-netconf-netconf-client-server-16 | draft-ietf-netconf-netconf-client-server-17 | |||
Abstract | Abstract | |||
This document defines two YANG modules, one module to configure a | This document defines two YANG modules, one module to configure a | |||
NETCONF client and the other module to configure a NETCONF server. | NETCONF client and the other module to configure a NETCONF server. | |||
Both modules support both the SSH and TLS transport protocols, and | Both modules support both the SSH and TLS transport protocols, and | |||
support both standard NETCONF and NETCONF Call Home connections. | support both standard NETCONF and NETCONF Call Home connections. | |||
Editorial Note (To be removed by RFC Editor) | Editorial Note (To be removed by RFC Editor) | |||
skipping to change at page 2, line 11 ¶ | skipping to change at page 2, line 11 ¶ | |||
o "YYYY" --> the assigned RFC value for I-D.ietf-netconf-ssh-client- | o "YYYY" --> the assigned RFC value for I-D.ietf-netconf-ssh-client- | |||
server | server | |||
o "ZZZZ" --> the assigned RFC value for I-D.ietf-netconf-tls-client- | o "ZZZZ" --> the assigned RFC value for I-D.ietf-netconf-tls-client- | |||
server | server | |||
Artwork in this document contains placeholder values for the date of | Artwork in this document contains placeholder values for the date of | |||
publication of this draft. Please apply the following replacement: | publication of this draft. Please apply the following replacement: | |||
o "2019-11-02" --> the publication date of this draft | o "2019-11-20" --> the publication date of this draft | |||
The following Appendix section is to be removed prior to publication: | The following Appendix section is to be removed prior to publication: | |||
o Appendix B. Change Log | o Appendix B. Change Log | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 May 4, 2020. | This Internet-Draft will expire on May 23, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://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 3, line 16 ¶ | skipping to change at page 3, line 16 ¶ | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. The NETCONF Client Model . . . . . . . . . . . . . . . . . . 4 | 3. The NETCONF Client Model . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 9 | 3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
4. The NETCONF Server Model . . . . . . . . . . . . . . . . . . 20 | 4. The NETCONF Server Model . . . . . . . . . . . . . . . . . . 20 | |||
4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 20 | 4.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 20 | |||
4.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 22 | 4.2. Example Usage . . . . . . . . . . . . . . . . . . . . . . 22 | |||
4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 28 | 4.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 40 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 41 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 41 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 | |||
6.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 41 | 6.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 42 | |||
6.2. The YANG Module Names Registry . . . . . . . . . . . . . 41 | 6.2. The YANG Module Names Registry . . . . . . . . . . . . . 42 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 42 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 42 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 42 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 43 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 43 | 7.2. Informative References . . . . . . . . . . . . . . . . . 44 | |||
Appendix A. Expanded Tree Diagrams . . . . . . . . . . . . . . . 45 | Appendix A. Expanded Tree Diagrams . . . . . . . . . . . . . . . 45 | |||
A.1. Expanded Tree Diagram for 'ietf-netconf-client' . . . . . 45 | A.1. Expanded Tree Diagram for 'ietf-netconf-client' . . . . . 45 | |||
A.2. Expanded Tree Diagram for 'ietf-netconf-server' . . . . . 60 | A.2. Expanded Tree Diagram for 'ietf-netconf-server' . . . . . 66 | |||
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 78 | Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 89 | |||
B.1. 00 to 01 . . . . . . . . . . . . . . . . . . . . . . . . 78 | B.1. 00 to 01 . . . . . . . . . . . . . . . . . . . . . . . . 89 | |||
B.2. 01 to 02 . . . . . . . . . . . . . . . . . . . . . . . . 79 | B.2. 01 to 02 . . . . . . . . . . . . . . . . . . . . . . . . 89 | |||
B.3. 02 to 03 . . . . . . . . . . . . . . . . . . . . . . . . 79 | B.3. 02 to 03 . . . . . . . . . . . . . . . . . . . . . . . . 89 | |||
B.4. 03 to 04 . . . . . . . . . . . . . . . . . . . . . . . . 79 | B.4. 03 to 04 . . . . . . . . . . . . . . . . . . . . . . . . 89 | |||
B.5. 04 to 05 . . . . . . . . . . . . . . . . . . . . . . . . 79 | B.5. 04 to 05 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
B.6. 05 to 06 . . . . . . . . . . . . . . . . . . . . . . . . 79 | B.6. 05 to 06 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
B.7. 06 to 07 . . . . . . . . . . . . . . . . . . . . . . . . 80 | B.7. 06 to 07 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
B.8. 07 to 08 . . . . . . . . . . . . . . . . . . . . . . . . 80 | B.8. 07 to 08 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
B.9. 08 to 09 . . . . . . . . . . . . . . . . . . . . . . . . 80 | B.9. 08 to 09 . . . . . . . . . . . . . . . . . . . . . . . . 90 | |||
B.10. 09 to 10 . . . . . . . . . . . . . . . . . . . . . . . . 80 | B.10. 09 to 10 . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
B.11. 10 to 11 . . . . . . . . . . . . . . . . . . . . . . . . 80 | B.11. 10 to 11 . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
B.12. 11 to 12 . . . . . . . . . . . . . . . . . . . . . . . . 81 | B.12. 11 to 12 . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
B.13. 12 to 13 . . . . . . . . . . . . . . . . . . . . . . . . 81 | B.13. 12 to 13 . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
B.14. 13 to 14 . . . . . . . . . . . . . . . . . . . . . . . . 81 | B.14. 13 to 14 . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
B.15. 14 to 15 . . . . . . . . . . . . . . . . . . . . . . . . 81 | B.15. 14 to 15 . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
B.16. 15 to 16 . . . . . . . . . . . . . . . . . . . . . . . . 82 | B.16. 15 to 16 . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 82 | B.17. 16 to 17 . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 82 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 92 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 93 | ||||
1. Introduction | 1. Introduction | |||
This document defines two YANG [RFC7950] modules, one module to | This document defines two YANG [RFC7950] modules, one module to | |||
configure a NETCONF [RFC6241] client and the other module to | configure a NETCONF [RFC6241] client and the other module to | |||
configure a NETCONF server. Both modules support both NETCONF over | configure a NETCONF server. Both modules support both NETCONF over | |||
SSH [RFC6242] and NETCONF over TLS [RFC7589] and NETCONF Call Home | SSH [RFC6242] and NETCONF over TLS [RFC7589] and NETCONF Call Home | |||
connections [RFC8071]. | connections [RFC8071]. | |||
2. Terminology | 2. Terminology | |||
skipping to change at page 6, line 19 ¶ | skipping to change at page 6, line 19 ¶ | |||
as well as listening for call-home connections, again using both the | as well as listening for call-home connections, again using both the | |||
SSH and TLS transport protocols. | SSH and TLS transport protocols. | |||
This example is consistent with the examples presented in Section 2 | This example is consistent with the examples presented in Section 2 | |||
of [I-D.ietf-netconf-trust-anchors] and Section 3.2 of | of [I-D.ietf-netconf-trust-anchors] and Section 3.2 of | |||
[I-D.ietf-netconf-keystore]. | [I-D.ietf-netconf-keystore]. | |||
========== NOTE: '\' line wrapping per BCP XXX (RFC XXXX) =========== | ========== NOTE: '\' line wrapping per BCP XXX (RFC XXXX) =========== | |||
<netconf-client | <netconf-client | |||
xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-client"> | xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-client" | |||
xmlns:ct="urn:ietf:params:xml:ns:yang:ietf-crypto-types"> | ||||
<!-- NETCONF servers to initiate connections to --> | <!-- NETCONF servers to initiate connections to --> | |||
<initiate> | <initiate> | |||
<netconf-server> | <netconf-server> | |||
<name>corp-fw1</name> | <name>corp-fw1</name> | |||
<endpoints> | <endpoints> | |||
<endpoint> | <endpoint> | |||
<name>corp-fw1.example.com</name> | <name>corp-fw1.example.com</name> | |||
<ssh> | <ssh> | |||
<tcp-client-parameters> | <tcp-client-parameters> | |||
skipping to change at page 6, line 43 ¶ | skipping to change at page 6, line 44 ¶ | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<ssh-client-parameters> | <ssh-client-parameters> | |||
<client-identity> | <client-identity> | |||
<username>foobar</username> | <username>foobar</username> | |||
<public-key> | <public-key> | |||
<local-definition> | <local-definition> | |||
<algorithm>rsa2048</algorithm> | <algorithm>rsa2048</algorithm> | |||
<private-key>base64encodedvalue==</private-key> | <public-key-format>ct:ssh-public-key-format</pub\ | |||
lic-key-format> | ||||
<public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format</p\ | ||||
rivate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | </local-definition> | |||
</public-key> | </public-key> | |||
</client-identity> | </client-identity> | |||
<server-authentication> | <server-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>explicitly-trusted-server-ca\ | <truststore-reference>explicitly-trusted-server-ca\ | |||
-certs</truststore-reference> | -certs</truststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<server-certs> | <server-certs> | |||
<truststore-reference>explicitly-trusted-server-ce\ | <truststore-reference>explicitly-trusted-server-ce\ | |||
skipping to change at page 7, line 32 ¶ | skipping to change at page 7, line 37 ¶ | |||
<tcp-client-parameters> | <tcp-client-parameters> | |||
<remote-address>corp-fw2.example.com</remote-address> | <remote-address>corp-fw2.example.com</remote-address> | |||
<keepalives> | <keepalives> | |||
<idle-time>15</idle-time> | <idle-time>15</idle-time> | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<tls-client-parameters> | <tls-client-parameters> | |||
<client-identity> | <client-identity> | |||
<local-definition> | <certificate> | |||
<algorithm>rsa2048</algorithm> | <local-definition> | |||
<private-key>base64encodedvalue==</private-key> | <algorithm>rsa2048</algorithm> | |||
<public-key>base64encodedvalue==</public-key> | <public-key-format>ct:subject-public-key-info-fo\ | |||
<cert>base64encodedvalue==</cert> | rmat</public-key-format> | |||
</local-definition> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format</p\ | ||||
rivate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | ||||
</client-identity> | </client-identity> | |||
<server-authentication> | <server-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>explicitly-trusted-server-ca\ | <truststore-reference>explicitly-trusted-server-ca\ | |||
-certs</truststore-reference> | -certs</truststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<server-certs> | <server-certs> | |||
<truststore-reference>explicitly-trusted-server-ce\ | <truststore-reference>explicitly-trusted-server-ce\ | |||
rts</truststore-reference> | rts</truststore-reference> | |||
</server-certs> | </server-certs> | |||
skipping to change at page 8, line 36 ¶ | skipping to change at page 8, line 46 ¶ | |||
<ssh> | <ssh> | |||
<tcp-server-parameters> | <tcp-server-parameters> | |||
<local-address>192.0.2.7</local-address> | <local-address>192.0.2.7</local-address> | |||
</tcp-server-parameters> | </tcp-server-parameters> | |||
<ssh-client-parameters> | <ssh-client-parameters> | |||
<client-identity> | <client-identity> | |||
<username>foobar</username> | <username>foobar</username> | |||
<public-key> | <public-key> | |||
<local-definition> | <local-definition> | |||
<algorithm>rsa2048</algorithm> | <algorithm>rsa2048</algorithm> | |||
<private-key>base64encodedvalue==</private-key> | <public-key-format>ct:ssh-public-key-format</public-\ | |||
key-format> | ||||
<public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format</priva\ | ||||
te-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | </local-definition> | |||
</public-key> | </public-key> | |||
</client-identity> | </client-identity> | |||
<server-authentication> | <server-authentication> | |||
<ca-certs> | <ca-certs> | |||
<truststore-reference>explicitly-trusted-server-ca-cer\ | <truststore-reference>explicitly-trusted-server-ca-cer\ | |||
ts</truststore-reference> | ts</truststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<server-certs> | <server-certs> | |||
<truststore-reference>explicitly-trusted-server-certs<\ | <truststore-reference>explicitly-trusted-server-certs<\ | |||
skipping to change at page 9, line 22 ¶ | skipping to change at page 9, line 38 ¶ | |||
</listen> | </listen> | |||
</netconf-client> | </netconf-client> | |||
3.3. YANG Module | 3.3. YANG Module | |||
This YANG module has normative references to [RFC6242], [RFC6991], | This YANG module has normative references to [RFC6242], [RFC6991], | |||
[RFC7589], [RFC8071], [I-D.kwatsen-netconf-tcp-client-server], | [RFC7589], [RFC8071], [I-D.kwatsen-netconf-tcp-client-server], | |||
[I-D.ietf-netconf-ssh-client-server], and | [I-D.ietf-netconf-ssh-client-server], and | |||
[I-D.ietf-netconf-tls-client-server]. | [I-D.ietf-netconf-tls-client-server]. | |||
<CODE BEGINS> file "ietf-netconf-client@2019-11-02.yang" | <CODE BEGINS> file "ietf-netconf-client@2019-11-20.yang" | |||
module ietf-netconf-client { | module ietf-netconf-client { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-client"; | namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-client"; | |||
prefix ncc; | prefix ncc; | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
reference | reference | |||
"RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
} | } | |||
import ietf-tcp-client { | import ietf-tcp-client { | |||
prefix tcpc; | prefix tcpc; | |||
reference | reference | |||
"RFC AAAA: YANG Groupings for TCP Clients and TCP Servers"; | "RFC BBBB: YANG Groupings for TCP Clients and TCP Servers"; | |||
} | } | |||
import ietf-tcp-server { | import ietf-tcp-server { | |||
prefix tcps; | prefix tcps; | |||
reference | reference | |||
"RFC AAAA: YANG Groupings for TCP Clients and TCP Servers"; | "RFC BBBB: YANG Groupings for TCP Clients and TCP Servers"; | |||
} | } | |||
import ietf-ssh-client { | import ietf-ssh-client { | |||
prefix sshc; | prefix sshc; | |||
revision-date 2019-11-02; // stable grouping definitions | revision-date 2019-11-20; // stable grouping definitions | |||
reference | reference | |||
"RFC BBBB: YANG Groupings for SSH Clients and SSH Servers"; | "RFC CCCC: YANG Groupings for SSH Clients and SSH Servers"; | |||
} | } | |||
import ietf-tls-client { | import ietf-tls-client { | |||
prefix tlsc; | prefix tlsc; | |||
revision-date 2019-11-02; // stable grouping definitions | revision-date 2019-11-20; // stable grouping definitions | |||
reference | reference | |||
"RFC CCCC: YANG Groupings for TLS Clients and TLS Servers"; | "RFC DDDD: YANG Groupings for TLS Clients and TLS Servers"; | |||
} | } | |||
organization | organization | |||
"IETF NETCONF (Network Configuration) Working Group"; | "IETF NETCONF (Network Configuration) Working Group"; | |||
contact | contact | |||
"WG Web: <http://datatracker.ietf.org/wg/netconf/> | "WG Web: <http://datatracker.ietf.org/wg/netconf/> | |||
WG List: <mailto:netconf@ietf.org> | WG List: <mailto:netconf@ietf.org> | |||
Author: Kent Watsen <mailto:kent+ietf@watsen.net> | Author: Kent Watsen <mailto:kent+ietf@watsen.net> | |||
Author: Gary Wu <mailto:garywu@cisco.com>"; | Author: Gary Wu <mailto:garywu@cisco.com>"; | |||
skipping to change at page 10, line 45 ¶ | skipping to change at page 11, line 14 ¶ | |||
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC | (https://www.rfc-editor.org/info/rfcXXXX); see the RFC | |||
itself for full legal notices.; | itself for full legal notices.; | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | |||
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | |||
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | |||
are to be interpreted as described in BCP 14 (RFC 2119) | are to be interpreted as described in BCP 14 (RFC 2119) | |||
(RFC 8174) when, and only when, they appear in all | (RFC 8174) when, and only when, they appear in all | |||
capitals, as shown here."; | capitals, as shown here."; | |||
revision 2019-11-02 { | revision 2019-11-20 { | |||
description | description | |||
"Initial version"; | "Initial version"; | |||
reference | reference | |||
"RFC XXXX: NETCONF Client and Server Models"; | "RFC XXXX: NETCONF Client and Server Models"; | |||
} | } | |||
// Features | // Features | |||
feature ssh-initiate { | feature ssh-initiate { | |||
description | description | |||
"The 'ssh-initiate' feature indicates that the NETCONF client | "The 'ssh-initiate' feature indicates that the NETCONF client | |||
supports initiating SSH connections to NETCONF servers."; | supports initiating SSH connections to NETCONF servers."; | |||
reference | reference | |||
"RFC 6242: | "RFC 6242: | |||
Using the NETCONF Protocol over Secure Shell (SSH)"; | Using the NETCONF Protocol over Secure Shell (SSH)"; | |||
} | } | |||
skipping to change at page 20, line 33 ¶ | skipping to change at page 21, line 4 ¶ | |||
module. | module. | |||
Please see Appendix A.2 for a tree diagram that illustrates what the | Please see Appendix A.2 for a tree diagram that illustrates what the | |||
module looks like with all the "grouping" statements expanded. | module looks like with all the "grouping" statements expanded. | |||
module: ietf-netconf-server | module: ietf-netconf-server | |||
+--rw netconf-server | +--rw netconf-server | |||
+---u netconf-server-app-grouping | +---u netconf-server-app-grouping | |||
grouping netconf-server-grouping | grouping netconf-server-grouping | |||
+-- client-identification | +-- client-identity-mappings | |||
+-- cert-maps | {tls-listen or tls-call-home or sshcmn:ssh-x509-certs}? | |||
+---u x509c2n:cert-to-name | +---u x509c2n:cert-to-name | |||
grouping netconf-server-listen-stack-grouping | grouping netconf-server-listen-stack-grouping | |||
+-- (transport) | +-- (transport) | |||
+--:(ssh) {ssh-listen}? | +--:(ssh) {ssh-listen}? | |||
| +-- ssh | | +-- ssh | |||
| +-- tcp-server-parameters | | +-- tcp-server-parameters | |||
| | +---u tcps:tcp-server-grouping | | | +---u tcps:tcp-server-grouping | |||
| +-- ssh-server-parameters | | +-- ssh-server-parameters | |||
| | +---u sshs:ssh-server-grouping | | | +---u sshs:ssh-server-grouping | |||
| +-- netconf-server-parameters | | +-- netconf-server-parameters | |||
| +---u ncs:netconf-server-grouping | | +---u ncs:netconf-server-grouping | |||
skipping to change at page 22, line 20 ¶ | skipping to change at page 22, line 36 ¶ | |||
clients, one using SSH and the other using TLS. | clients, one using SSH and the other using TLS. | |||
This example is consistent with the examples presented in Section 2 | This example is consistent with the examples presented in Section 2 | |||
of [I-D.ietf-netconf-trust-anchors] and Section 3.2 of | of [I-D.ietf-netconf-trust-anchors] and Section 3.2 of | |||
[I-D.ietf-netconf-keystore]. | [I-D.ietf-netconf-keystore]. | |||
========== NOTE: '\' line wrapping per BCP XXX (RFC XXXX) =========== | ========== NOTE: '\' line wrapping per BCP XXX (RFC XXXX) =========== | |||
<netconf-server | <netconf-server | |||
xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-server" | xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-server" | |||
xmlns:ct="urn:ietf:params:xml:ns:yang:ietf-crypto-types" | ||||
xmlns:x509c2n="urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name"> | xmlns:x509c2n="urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name"> | |||
<!-- endpoints to listen for NETCONF connections on --> | <!-- endpoints to listen for NETCONF connections on --> | |||
<listen> | <listen> | |||
<endpoint> <!-- listening for SSH connections --> | <endpoint> <!-- listening for SSH connections --> | |||
<name>netconf/ssh</name> | <name>netconf/ssh</name> | |||
<ssh> | <ssh> | |||
<tcp-server-parameters> | <tcp-server-parameters> | |||
<local-address>192.0.2.7</local-address> | <local-address>192.0.2.7</local-address> | |||
</tcp-server-parameters> | </tcp-server-parameters> | |||
<ssh-server-parameters> | <ssh-server-parameters> | |||
<server-identity> | <server-identity> | |||
<host-key> | <host-key> | |||
<name>deployment-specific-certificate</name> | <name>deployment-specific-certificate</name> | |||
<public-key> | <public-key> | |||
<local-definition> | <local-definition> | |||
<algorithm>rsa2048</algorithm> | <algorithm>rsa2048</algorithm> | |||
<private-key>base64encodedvalue==</private-key> | <public-key-format>ct:ssh-public-key-format</publi\ | |||
c-key-format> | ||||
<public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format</pri\ | ||||
vate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | </local-definition> | |||
</public-key> | </public-key> | |||
</host-key> | </host-key> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<supported-authentication-methods> | <supported-authentication-methods> | |||
<publickey/> | <publickey/> | |||
</supported-authentication-methods> | </supported-authentication-methods> | |||
<client-auth-defined-elsewhere/> | ||||
</client-authentication> | </client-authentication> | |||
</ssh-server-parameters> | </ssh-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<!-- nothing to configure --> | <!-- nothing to configure --> | |||
</netconf-server-parameters> | </netconf-server-parameters> | |||
</ssh> | </ssh> | |||
</endpoint> | </endpoint> | |||
<endpoint> <!-- listening for TLS sessions --> | <endpoint> <!-- listening for TLS sessions --> | |||
<name>netconf/tls</name> | <name>netconf/tls</name> | |||
<tls> | <tls> | |||
<tcp-server-parameters> | <tcp-server-parameters> | |||
<local-address>192.0.2.7</local-address> | <local-address>192.0.2.7</local-address> | |||
</tcp-server-parameters> | </tcp-server-parameters> | |||
<tls-server-parameters> | <tls-server-parameters> | |||
<server-identity> | <server-identity> | |||
skipping to change at page 23, line 15 ¶ | skipping to change at page 23, line 35 ¶ | |||
</ssh> | </ssh> | |||
</endpoint> | </endpoint> | |||
<endpoint> <!-- listening for TLS sessions --> | <endpoint> <!-- listening for TLS sessions --> | |||
<name>netconf/tls</name> | <name>netconf/tls</name> | |||
<tls> | <tls> | |||
<tcp-server-parameters> | <tcp-server-parameters> | |||
<local-address>192.0.2.7</local-address> | <local-address>192.0.2.7</local-address> | |||
</tcp-server-parameters> | </tcp-server-parameters> | |||
<tls-server-parameters> | <tls-server-parameters> | |||
<server-identity> | <server-identity> | |||
<local-definition> | <certificate> | |||
<algorithm>rsa2048</algorithm> | <local-definition> | |||
<private-key>base64encodedvalue==</private-key> | <algorithm>rsa2048</algorithm> | |||
<public-key>base64encodedvalue==</public-key> | <public-key-format>ct:subject-public-key-info-format\ | |||
<cert>base64encodedvalue==</cert> | </public-key-format> | |||
</local-definition> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format</priva\ | ||||
te-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | ||||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<required/> | ||||
<ca-certs> | <ca-certs> | |||
<truststore-reference>explicitly-trusted-client-ca-cer\ | <truststore-reference>explicitly-trusted-client-ca-cer\ | |||
ts</truststore-reference> | ts</truststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<client-certs> | <client-certs> | |||
<truststore-reference>explicitly-trusted-client-certs<\ | <truststore-reference>explicitly-trusted-client-certs<\ | |||
/truststore-reference> | /truststore-reference> | |||
</client-certs> | </client-certs> | |||
</client-authentication> | </client-authentication> | |||
</tls-server-parameters> | </tls-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<client-identification> | <client-identity-mappings> | |||
<cert-maps> | <cert-to-name> | |||
<cert-to-name> | <id>1</id> | |||
<id>1</id> | <fingerprint>11:0A:05:11:00</fingerprint> | |||
<fingerprint>11:0A:05:11:00</fingerprint> | <map-type>x509c2n:specified</map-type> | |||
<map-type>x509c2n:specified</map-type> | <name>scooby-doo</name> | |||
<name>scooby-doo</name> | </cert-to-name> | |||
</cert-to-name> | <cert-to-name> | |||
<cert-to-name> | <id>2</id> | |||
<id>2</id> | <map-type>x509c2n:san-any</map-type> | |||
<map-type>x509c2n:san-any</map-type> | </cert-to-name> | |||
</cert-to-name> | </client-identity-mappings> | |||
</cert-maps> | ||||
</client-identification> | ||||
</netconf-server-parameters> | </netconf-server-parameters> | |||
</tls> | </tls> | |||
</endpoint> | </endpoint> | |||
</listen> | </listen> | |||
<!-- calling home to SSH and TLS based NETCONF clients --> | <!-- calling home to SSH and TLS based NETCONF clients --> | |||
<call-home> | <call-home> | |||
<netconf-client> <!-- SSH-based client --> | <netconf-client> <!-- SSH-based client --> | |||
<name>config-mgr</name> | <name>config-mgr</name> | |||
<endpoints> | <endpoints> | |||
<endpoint> | <endpoint> | |||
<name>east-data-center</name> | <name>east-data-center</name> | |||
<ssh> | <ssh> | |||
<tcp-client-parameters> | <tcp-client-parameters> | |||
<remote-address>east.config-mgr.example.com</remote-ad\ | <remote-address>east.config-mgr.example.com</remote-ad\ | |||
skipping to change at page 24, line 23 ¶ | skipping to change at page 24, line 48 ¶ | |||
<remote-address>east.config-mgr.example.com</remote-ad\ | <remote-address>east.config-mgr.example.com</remote-ad\ | |||
dress> | dress> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<ssh-server-parameters> | <ssh-server-parameters> | |||
<server-identity> | <server-identity> | |||
<host-key> | <host-key> | |||
<name>deployment-specific-certificate</name> | <name>deployment-specific-certificate</name> | |||
<public-key> | <public-key> | |||
<local-definition> | <local-definition> | |||
<algorithm>rsa2048</algorithm> | <algorithm>rsa2048</algorithm> | |||
<private-key>base64encodedvalue==</private-key> | <public-key-format>ct:ssh-public-key-format</p\ | |||
ublic-key-format> | ||||
<public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format<\ | ||||
/private-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | </local-definition> | |||
</public-key> | </public-key> | |||
</host-key> | </host-key> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<supported-authentication-methods> | <supported-authentication-methods> | |||
<publickey/> | <publickey/> | |||
</supported-authentication-methods> | </supported-authentication-methods> | |||
<client-auth-defined-elsewhere/> | ||||
</client-authentication> | </client-authentication> | |||
</ssh-server-parameters> | </ssh-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<!-- nothing to configure --> | <!-- nothing to configure --> | |||
</netconf-server-parameters> | </netconf-server-parameters> | |||
</ssh> | </ssh> | |||
</endpoint> | </endpoint> | |||
<endpoint> | <endpoint> | |||
<name>west-data-center</name> | <name>west-data-center</name> | |||
<ssh> | <ssh> | |||
skipping to change at page 25, line 7 ¶ | skipping to change at page 25, line 36 ¶ | |||
<remote-address>west.config-mgr.example.com</remote-ad\ | <remote-address>west.config-mgr.example.com</remote-ad\ | |||
dress> | dress> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<ssh-server-parameters> | <ssh-server-parameters> | |||
<server-identity> | <server-identity> | |||
<host-key> | <host-key> | |||
<name>deployment-specific-certificate</name> | <name>deployment-specific-certificate</name> | |||
<public-key> | <public-key> | |||
<local-definition> | <local-definition> | |||
<algorithm>rsa2048</algorithm> | <algorithm>rsa2048</algorithm> | |||
<private-key>base64encodedvalue==</private-key> | <public-key-format>ct:ssh-public-key-format</p\ | |||
ublic-key-format> | ||||
<public-key>base64encodedvalue==</public-key> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format<\ | ||||
/private-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
</local-definition> | </local-definition> | |||
</public-key> | </public-key> | |||
</host-key> | </host-key> | |||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<supported-authentication-methods> | <supported-authentication-methods> | |||
<publickey/> | <publickey/> | |||
</supported-authentication-methods> | </supported-authentication-methods> | |||
<client-auth-defined-elsewhere/> | ||||
</client-authentication> | </client-authentication> | |||
</ssh-server-parameters> | </ssh-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<!-- nothing to configure --> | <!-- nothing to configure --> | |||
</netconf-server-parameters> | </netconf-server-parameters> | |||
</ssh> | </ssh> | |||
</endpoint> | </endpoint> | |||
</endpoints> | </endpoints> | |||
<connection-type> | <connection-type> | |||
<periodic> | <periodic> | |||
skipping to change at page 26, line 6 ¶ | skipping to change at page 26, line 37 ¶ | |||
<remote-address>east.analytics.example.com</remote-add\ | <remote-address>east.analytics.example.com</remote-add\ | |||
ress> | ress> | |||
<keepalives> | <keepalives> | |||
<idle-time>15</idle-time> | <idle-time>15</idle-time> | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<tls-server-parameters> | <tls-server-parameters> | |||
<server-identity> | <server-identity> | |||
<local-definition> | <certificate> | |||
<algorithm>rsa2048</algorithm> | <local-definition> | |||
<private-key>base64encodedvalue==</private-key> | <algorithm>rsa2048</algorithm> | |||
<public-key>base64encodedvalue==</public-key> | <public-key-format>ct:subject-public-key-info-fo\ | |||
<cert>base64encodedvalue==</cert> | rmat</public-key-format> | |||
</local-definition> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format</p\ | ||||
rivate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | ||||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<required/> | ||||
<ca-certs> | <ca-certs> | |||
<truststore-reference>explicitly-trusted-client-ca\ | <truststore-reference>explicitly-trusted-client-ca\ | |||
-certs</truststore-reference> | -certs</truststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<client-certs> | <client-certs> | |||
<truststore-reference>explicitly-trusted-client-ce\ | <truststore-reference>explicitly-trusted-client-ce\ | |||
rts</truststore-reference> | rts</truststore-reference> | |||
</client-certs> | </client-certs> | |||
</client-authentication> | </client-authentication> | |||
<keepalives> | <keepalives> | |||
<max-wait>30</max-wait> | <max-wait>30</max-wait> | |||
<max-attempts>3</max-attempts> | <max-attempts>3</max-attempts> | |||
</keepalives> | </keepalives> | |||
</tls-server-parameters> | </tls-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<client-identification> | <client-identity-mappings> | |||
<cert-maps> | <cert-to-name> | |||
<cert-to-name> | <id>1</id> | |||
<id>1</id> | <fingerprint>11:0A:05:11:00</fingerprint> | |||
<fingerprint>11:0A:05:11:00</fingerprint> | <map-type>x509c2n:specified</map-type> | |||
<map-type>x509c2n:specified</map-type> | <name>scooby-doo</name> | |||
<name>scooby-doo</name> | </cert-to-name> | |||
</cert-to-name> | <cert-to-name> | |||
<cert-to-name> | <id>2</id> | |||
<id>2</id> | <map-type>x509c2n:san-any</map-type> | |||
<map-type>x509c2n:san-any</map-type> | </cert-to-name> | |||
</cert-to-name> | </client-identity-mappings> | |||
</cert-maps> | ||||
</client-identification> | ||||
</netconf-server-parameters> | </netconf-server-parameters> | |||
</tls> | </tls> | |||
</endpoint> | </endpoint> | |||
<endpoint> | <endpoint> | |||
<name>west-data-center</name> | <name>west-data-center</name> | |||
<tls> | <tls> | |||
<tcp-client-parameters> | <tcp-client-parameters> | |||
<remote-address>west.analytics.example.com</remote-add\ | <remote-address>west.analytics.example.com</remote-add\ | |||
ress> | ress> | |||
<keepalives> | <keepalives> | |||
<idle-time>15</idle-time> | <idle-time>15</idle-time> | |||
<max-probes>3</max-probes> | <max-probes>3</max-probes> | |||
<probe-interval>30</probe-interval> | <probe-interval>30</probe-interval> | |||
</keepalives> | </keepalives> | |||
</tcp-client-parameters> | </tcp-client-parameters> | |||
<tls-server-parameters> | <tls-server-parameters> | |||
<server-identity> | <server-identity> | |||
<local-definition> | <certificate> | |||
<algorithm>rsa2048</algorithm> | <local-definition> | |||
<private-key>base64encodedvalue==</private-key> | <algorithm>rsa2048</algorithm> | |||
<public-key>base64encodedvalue==</public-key> | <public-key-format>ct:subject-public-key-info-fo\ | |||
<cert>base64encodedvalue==</cert> | rmat</public-key-format> | |||
</local-definition> | <public-key>base64encodedvalue==</public-key> | |||
<private-key-format>ct:rsa-private-key-format</p\ | ||||
rivate-key-format> | ||||
<private-key>base64encodedvalue==</private-key> | ||||
<cert>base64encodedvalue==</cert> | ||||
</local-definition> | ||||
</certificate> | ||||
</server-identity> | </server-identity> | |||
<client-authentication> | <client-authentication> | |||
<required/> | ||||
<ca-certs> | <ca-certs> | |||
<truststore-reference>explicitly-trusted-client-ca\ | <truststore-reference>explicitly-trusted-client-ca\ | |||
-certs</truststore-reference> | -certs</truststore-reference> | |||
</ca-certs> | </ca-certs> | |||
<client-certs> | <client-certs> | |||
<truststore-reference>explicitly-trusted-client-ce\ | <truststore-reference>explicitly-trusted-client-ce\ | |||
rts</truststore-reference> | rts</truststore-reference> | |||
</client-certs> | </client-certs> | |||
</client-authentication> | </client-authentication> | |||
<keepalives> | <keepalives> | |||
<max-wait>30</max-wait> | <max-wait>30</max-wait> | |||
<max-attempts>3</max-attempts> | <max-attempts>3</max-attempts> | |||
</keepalives> | </keepalives> | |||
</tls-server-parameters> | </tls-server-parameters> | |||
<netconf-server-parameters> | <netconf-server-parameters> | |||
<client-identification> | <client-identity-mappings> | |||
<cert-maps> | <cert-to-name> | |||
<cert-to-name> | <id>1</id> | |||
<id>1</id> | <fingerprint>11:0A:05:11:00</fingerprint> | |||
<fingerprint>11:0A:05:11:00</fingerprint> | <map-type>x509c2n:specified</map-type> | |||
<map-type>x509c2n:specified</map-type> | <name>scooby-doo</name> | |||
<name>scooby-doo</name> | </cert-to-name> | |||
</cert-to-name> | <cert-to-name> | |||
<cert-to-name> | <id>2</id> | |||
<id>2</id> | <map-type>x509c2n:san-any</map-type> | |||
<map-type>x509c2n:san-any</map-type> | </cert-to-name> | |||
</cert-to-name> | </client-identity-mappings> | |||
</cert-maps> | ||||
</client-identification> | ||||
</netconf-server-parameters> | </netconf-server-parameters> | |||
</tls> | </tls> | |||
</endpoint> | </endpoint> | |||
</endpoints> | </endpoints> | |||
<connection-type> | <connection-type> | |||
<persistent/> | <persistent/> | |||
</connection-type> | </connection-type> | |||
<reconnect-strategy> | <reconnect-strategy> | |||
<start-with>first-listed</start-with> | <start-with>first-listed</start-with> | |||
<max-attempts>3</max-attempts> | <max-attempts>3</max-attempts> | |||
</reconnect-strategy> | </reconnect-strategy> | |||
skipping to change at page 28, line 27 ¶ | skipping to change at page 29, line 16 ¶ | |||
</netconf-server> | </netconf-server> | |||
4.3. YANG Module | 4.3. YANG Module | |||
This YANG module has normative references to [RFC6242], [RFC6991], | This YANG module has normative references to [RFC6242], [RFC6991], | |||
[RFC7407], [RFC7589], [RFC8071], | [RFC7407], [RFC7589], [RFC8071], | |||
[I-D.kwatsen-netconf-tcp-client-server], | [I-D.kwatsen-netconf-tcp-client-server], | |||
[I-D.ietf-netconf-ssh-client-server], and | [I-D.ietf-netconf-ssh-client-server], and | |||
[I-D.ietf-netconf-tls-client-server]. | [I-D.ietf-netconf-tls-client-server]. | |||
<CODE BEGINS> file "ietf-netconf-server@2019-11-02.yang" | <CODE BEGINS> file "ietf-netconf-server@2019-11-20.yang" | |||
module ietf-netconf-server { | module ietf-netconf-server { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-server"; | namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-server"; | |||
prefix ncs; | prefix ncs; | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
reference | reference | |||
"RFC 6991: Common YANG Data Types"; | "RFC 6991: Common YANG Data Types"; | |||
skipping to change at page 28, line 49 ¶ | skipping to change at page 29, line 38 ¶ | |||
import ietf-x509-cert-to-name { | import ietf-x509-cert-to-name { | |||
prefix x509c2n; | prefix x509c2n; | |||
reference | reference | |||
"RFC 7407: A YANG Data Model for SNMP Configuration"; | "RFC 7407: A YANG Data Model for SNMP Configuration"; | |||
} | } | |||
import ietf-tcp-client { | import ietf-tcp-client { | |||
prefix tcpc; | prefix tcpc; | |||
reference | reference | |||
"RFC AAAA: YANG Groupings for TCP Clients and TCP Servers"; | "RFC BBBB: YANG Groupings for TCP Clients and TCP Servers"; | |||
} | } | |||
import ietf-tcp-server { | import ietf-tcp-server { | |||
prefix tcps; | prefix tcps; | |||
reference | reference | |||
"RFC AAAA: YANG Groupings for TCP Clients and TCP Servers"; | "RFC BBBB: YANG Groupings for TCP Clients and TCP Servers"; | |||
} | } | |||
import ietf-ssh-common { | ||||
prefix sshcmn; | ||||
revision-date 2019-11-20; // stable grouping definitions | ||||
reference | ||||
"RFC CCCC: YANG Groupings for SSH Clients and SSH Servers"; | ||||
} | ||||
import ietf-ssh-server { | import ietf-ssh-server { | |||
prefix sshs; | prefix sshs; | |||
revision-date 2019-11-02; // stable grouping definitions | revision-date 2019-11-20; // stable grouping definitions | |||
reference | reference | |||
"RFC BBBB: YANG Groupings for SSH Clients and SSH Servers"; | "RFC CCCC: YANG Groupings for SSH Clients and SSH Servers"; | |||
} | } | |||
import ietf-tls-server { | import ietf-tls-server { | |||
prefix tlss; | prefix tlss; | |||
revision-date 2019-11-02; // stable grouping definitions | revision-date 2019-11-20; // stable grouping definitions | |||
reference | reference | |||
"RFC CCCC: YANG Groupings for TLS Clients and TLS Servers"; | "RFC DDDD: YANG Groupings for TLS Clients and TLS Servers"; | |||
} | } | |||
organization | organization | |||
"IETF NETCONF (Network Configuration) Working Group"; | "IETF NETCONF (Network Configuration) Working Group"; | |||
contact | contact | |||
"WG Web: <http://datatracker.ietf.org/wg/netconf/> | "WG Web: <http://datatracker.ietf.org/wg/netconf/> | |||
WG List: <mailto:netconf@ietf.org> | WG List: <mailto:netconf@ietf.org> | |||
Author: Kent Watsen <mailto:kent+ietf@watsen.net> | Author: Kent Watsen <mailto:kent+ietf@watsen.net> | |||
Author: Gary Wu <mailto:garywu@cisco.com> | Author: Gary Wu <mailto:garywu@cisco.com> | |||
skipping to change at page 30, line 4 ¶ | skipping to change at page 30, line 46 ¶ | |||
Redistribution and use in source and binary forms, with | Redistribution and use in source and binary forms, with | |||
or without modification, is permitted pursuant to, and | or without modification, is permitted pursuant to, and | |||
subject to the license terms contained in, the Simplified | subject to the license terms contained in, the Simplified | |||
BSD License set forth in Section 4.c of the IETF Trust's | BSD License set forth in Section 4.c of the IETF Trust's | |||
Legal Provisions Relating to IETF Documents | 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 XXXX | This version of this YANG module is part of RFC XXXX | |||
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC | (https://www.rfc-editor.org/info/rfcXXXX); see the RFC | |||
itself for full legal notices.; | itself for full legal notices.; | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | |||
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | |||
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | |||
are to be interpreted as described in BCP 14 (RFC 2119) | are to be interpreted as described in BCP 14 (RFC 2119) | |||
(RFC 8174) when, and only when, they appear in all | (RFC 8174) when, and only when, they appear in all | |||
capitals, as shown here."; | capitals, as shown here."; | |||
revision 2019-11-02 { | revision 2019-11-20 { | |||
description | description | |||
"Initial version"; | "Initial version"; | |||
reference | reference | |||
"RFC XXXX: NETCONF Client and Server Models"; | "RFC XXXX: NETCONF Client and Server Models"; | |||
} | } | |||
// Features | // Features | |||
feature ssh-listen { | feature ssh-listen { | |||
description | description | |||
skipping to change at page 31, line 28 ¶ | skipping to change at page 32, line 24 ¶ | |||
Note that this grouping uses a fairly typical descendent | Note that this grouping uses a fairly typical descendent | |||
node name such that a stack of 'uses' statements will | node name such that a stack of 'uses' statements will | |||
have name conflicts. It is intended that the consuming | have name conflicts. It is intended that the consuming | |||
data model will resolve the issue by wrapping the 'uses' | data model will resolve the issue by wrapping the 'uses' | |||
statement in a container called, e.g., | statement in a container called, e.g., | |||
'netconf-server-parameters'. This model purposely does | 'netconf-server-parameters'. This model purposely does | |||
not do this itself so as to provide maximum flexibility | not do this itself so as to provide maximum flexibility | |||
to consuming models."; | to consuming models."; | |||
container client-identification { | container client-identity-mappings { | |||
if-feature | ||||
"tls-listen or tls-call-home or sshcmn:ssh-x509-certs"; | ||||
description | description | |||
"Specifies a mapping through which clients MAY be identified | "Specifies mappings through which NETCONF client X.509 | |||
(i.e., the NETCONF username) from a supplied certificate. | certificates are used to determine a NETCONF username. | |||
Note that a client MAY alternatively be identified via an | If no matching and valid cert-to-name list entry can be | |||
alternate authentication scheme."; | found, then the NETCONF server MUST close the connection, | |||
container cert-maps { | and MUST NOT accept NETCONF messages over it."; | |||
when "../../../../tls"; | reference | |||
uses x509c2n:cert-to-name { | "RFC 7407: A YANG Data Model for SNMP Configuration."; | |||
refine "cert-to-name/fingerprint" { | uses x509c2n:cert-to-name { | |||
mandatory false; | refine "cert-to-name/fingerprint" { | |||
description | mandatory false; | |||
"A 'fingerprint' value does not need to be specified | description | |||
when the 'cert-to-name' mapping is independent of | "A 'fingerprint' value does not need to be specified | |||
fingerprint matching. A 'cert-to-name' having no | when the 'cert-to-name' mapping is independent of | |||
fingerprint value will match any client certificate | fingerprint matching. A 'cert-to-name' having no | |||
and therefore should only be present at the end of | fingerprint value will match any client certificate | |||
the user-ordered 'cert-to-name' list."; | and therefore should only be present at the end of | |||
} | the user-ordered 'cert-to-name' list."; | |||
} | } | |||
description | ||||
"The cert-maps container is used by TLS-based NETCONF | ||||
servers (even if the TLS sessions are terminated | ||||
externally) to map the NETCONF client's presented | ||||
X.509 certificate to a NETCONF username. If no | ||||
matching and valid cert-to-name list entry can be | ||||
found, then the NETCONF server MUST close the | ||||
connection, and MUST NOT accept NETCONF messages | ||||
over it."; | ||||
reference | ||||
"RFC 7407: A YANG Data Model for SNMP Configuration."; | ||||
} | } | |||
} | } | |||
} | } | |||
grouping netconf-server-listen-stack-grouping { | grouping netconf-server-listen-stack-grouping { | |||
description | description | |||
"A reusable grouping for configuring a NETCONF server | "A reusable grouping for configuring a NETCONF server | |||
'listen' protocol stack for a single connection."; | 'listen' protocol stack for a single connection."; | |||
choice transport { | choice transport { | |||
mandatory true; | mandatory true; | |||
skipping to change at page 42, line 16 ¶ | skipping to change at page 43, line 4 ¶ | |||
namespace: urn:ietf:params:xml:ns:yang:ietf-netconf-client | namespace: urn:ietf:params:xml:ns:yang:ietf-netconf-client | |||
prefix: ncc | prefix: ncc | |||
reference: RFC XXXX | reference: RFC XXXX | |||
name: ietf-netconf-server | name: ietf-netconf-server | |||
namespace: urn:ietf:params:xml:ns:yang:ietf-netconf-server | namespace: urn:ietf:params:xml:ns:yang:ietf-netconf-server | |||
prefix: ncs | prefix: ncs | |||
reference: RFC XXXX | reference: RFC XXXX | |||
7. References | 7. References | |||
7.1. Normative References | 7.1. Normative References | |||
[I-D.ietf-netconf-keystore] | [I-D.ietf-netconf-keystore] | |||
Watsen, K., "A YANG Data Model for a Keystore", draft- | Watsen, K., "A YANG Data Model for a Keystore", draft- | |||
ietf-netconf-keystore-13 (work in progress), October 2019. | ietf-netconf-keystore-14 (work in progress), November | |||
2019. | ||||
[I-D.ietf-netconf-ssh-client-server] | [I-D.ietf-netconf-ssh-client-server] | |||
Watsen, K., Wu, G., and L. Xia, "YANG Groupings for SSH | Watsen, K., Wu, G., and L. Xia, "YANG Groupings for SSH | |||
Clients and SSH Servers", draft-ietf-netconf-ssh-client- | Clients and SSH Servers", draft-ietf-netconf-ssh-client- | |||
server-15 (work in progress), October 2019. | server-16 (work in progress), November 2019. | |||
[I-D.ietf-netconf-tls-client-server] | [I-D.ietf-netconf-tls-client-server] | |||
Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS | Watsen, K., Wu, G., and L. Xia, "YANG Groupings for TLS | |||
Clients and TLS Servers", draft-ietf-netconf-tls-client- | Clients and TLS Servers", draft-ietf-netconf-tls-client- | |||
server-15 (work in progress), October 2019. | server-16 (work in progress), November 2019. | |||
[I-D.kwatsen-netconf-tcp-client-server] | [I-D.kwatsen-netconf-tcp-client-server] | |||
Watsen, K. and M. Scharf, "YANG Groupings for TCP Clients | Watsen, K. and M. Scharf, "YANG Groupings for TCP Clients | |||
and TCP Servers", draft-kwatsen-netconf-tcp-client- | and TCP Servers", draft-kwatsen-netconf-tcp-client- | |||
server-02 (work in progress), April 2019. | server-02 (work in progress), April 2019. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
skipping to change at page 43, line 34 ¶ | skipping to change at page 44, line 22 ¶ | |||
RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
<https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
7.2. Informative References | 7.2. Informative References | |||
[I-D.ietf-netconf-trust-anchors] | [I-D.ietf-netconf-trust-anchors] | |||
Watsen, K., "A YANG Data Model for a Truststore", draft- | Watsen, K. and H. Birkholz, "A YANG Data Model for a | |||
ietf-netconf-trust-anchors-06 (work in progress), October | Truststore", draft-ietf-netconf-trust-anchors-07 (work in | |||
2019. | progress), November 2019. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
<https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
[RFC8071] Watsen, K., "NETCONF Call Home and RESTCONF Call Home", | [RFC8071] Watsen, K., "NETCONF Call Home and RESTCONF Call Home", | |||
skipping to change at page 50, line 46 ¶ | skipping to change at page 50, line 46 ¶ | |||
| | | | {local-binding-supported}? | | | | | {local-binding-supported}? | |||
| | | +--rw local-port? inet:port-number | | | | +--rw local-port? inet:port-number | |||
| | | | {local-binding-supported}? | | | | | {local-binding-supported}? | |||
| | | +--rw keepalives! | | | | +--rw keepalives! | |||
| | | {keepalives-supported}? | | | | {keepalives-supported}? | |||
| | | +--rw idle-time uint16 | | | | +--rw idle-time uint16 | |||
| | | +--rw max-probes uint16 | | | | +--rw max-probes uint16 | |||
| | | +--rw probe-interval uint16 | | | | +--rw probe-interval uint16 | |||
| | +--rw tls-client-parameters | | | +--rw tls-client-parameters | |||
| | | +--rw client-identity | | | | +--rw client-identity | |||
| | | | +--rw (local-or-keystore) | | | | | +--rw (auth-type) | |||
| | | | +--:(local) | | | | | +--:(certificate) | |||
| | | | | {local-definitions-suppo\ | | | | | | +--rw certificate | |||
| | | | | {x509-certificate-auth\ | ||||
\}? | ||||
| | | | | +--rw (local-or-keystore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymm\ | ||||
\etric-algorithm-type | ||||
| | | | | | +--rw public-key-f\ | ||||
\ormat? | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw public-key | ||||
| | | | | | | binary | ||||
| | | | | | +--rw private-key-\ | ||||
\format? | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw (private-key\ | ||||
\-type) | ||||
| | | | | | | +--:(private-ke\ | ||||
\y) | ||||
| | | | | | | | +--rw privat\ | ||||
\e-key? | ||||
| | | | | | | | bina\ | ||||
\ry | ||||
| | | | | | | +--:(hidden-pri\ | ||||
\vate-key) | ||||
| | | | | | | | +--rw hidden\ | ||||
\-private-key? | ||||
| | | | | | | | empty | ||||
| | | | | | | +--:(encrypted-\ | ||||
\private-key) | ||||
| | | | | | | +--rw encryp\ | ||||
\ted-private-key | ||||
| | | | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | | | b\ | ||||
\inary | ||||
| | | | | | +--rw cert? | ||||
| | | | | | | end-entity\ | ||||
\-cert-cms | ||||
| | | | | | +---n certificate-\ | ||||
\expiration | ||||
| | | | | | | +-- expiration-\ | ||||
\date | ||||
| | | | | | | yang:da\ | ||||
\te-and-time | ||||
| | | | | | +---x generate-cer\ | ||||
\tificate-signing-request | ||||
| | | | | | +---w input | ||||
| | | | | | | +---w subject | ||||
| | | | | | | | bina\ | ||||
\ry | ||||
| | | | | | | +---w attrib\ | ||||
\utes? | ||||
| | | | | | | bina\ | ||||
\ry | ||||
| | | | | | +--ro output | ||||
| | | | | | +--ro certif\ | ||||
\icate-signing-request | ||||
| | | | | | bina\ | ||||
\ry | ||||
| | | | | +--:(keystore) | ||||
| | | | | {keystore-suppo\ | ||||
\rted}? | \rted}? | |||
| | | | | +--rw local-definition | | | | | | +--rw keystore-refere\ | |||
| | | | | +--rw algorithm | \nce | |||
| | | | | | iasa:asymmetric-alg\ | | | | | | +--rw asymmetric-k\ | |||
\orithm-type | \ey? | |||
| | | | | +--rw public-key-format? | | | | | | | ks:asymmet\ | |||
| | | | | | identityref | \ric-key-ref | |||
| | | | | +--rw public-key | | | | | | +--rw certificate?\ | |||
| | | | | | binary | \ leafref | |||
| | | | | +--rw private-key-format? | | | | | +--:(raw-public-key) | |||
| | | | | | identityref | | | | | | +--rw raw-public-key | |||
| | | | | +--rw (private-key-type) | | | | | | {raw-public-key-auth}? | |||
| | | | | | +--:(private-key) | | | | | | +--rw (local-or-keystore) | |||
| | | | | | | +--rw private-key? | | | | | | +--:(local) | |||
| | | | | | | binary | | | | | | | {local-definiti\ | |||
| | | | | | +--:(hidden-private-key) | \ons-supported}? | |||
| | | | | | | +--rw hidden-private-\ | | | | | | | +--rw local-definition | |||
\key? | | | | | | | +--rw algorithm | |||
| | | | | | | empty | | | | | | | | iasa:asymm\ | |||
| | | | | | +--:(encrypted-private-k\ | \etric-algorithm-type | |||
\ey) | | | | | | | +--rw public-key-f\ | |||
| | | | | | +--rw encrypted-priva\ | \ormat? | |||
\te-key | | | | | | | | identityref | |||
| | | | | | +--rw (key-type) | | | | | | | +--rw public-key | |||
| | | | | | | +--:(symmetric-\ | | | | | | | | binary | |||
\key-ref) | | | | | | | +--rw private-key-\ | |||
| | | | | | | | +--rw symmet\ | \format? | |||
\ric-key-ref? leafref | | | | | | | | identityref | |||
| | | | | | | | {key\ | | | | | | | +--rw (private-key\ | |||
\store-supported}? | \-type) | |||
| | | | | | | +--:(asymmetric\ | | | | | | | +--:(private-ke\ | |||
\-key-ref) | \y) | |||
| | | | | | | +--rw asymme\ | | | | | | | | +--rw privat\ | |||
\tric-key-ref? leafref | \e-key? | |||
| | | | | | | {key\ | | | | | | | | bina\ | |||
\store-supported}? | \ry | |||
| | | | | | +--rw value? | | | | | | | +--:(hidden-pri\ | |||
| | | | | | binary | \vate-key) | |||
| | | | | +--rw cert? | | | | | | | | +--rw hidden\ | |||
| | | | | | end-entity-cert-cms | \-private-key? | |||
| | | | | +---n certificate-expiration | | | | | | | | empty | |||
| | | | | | +-- expiration-date | | | | | | | +--:(encrypted-\ | |||
| | | | | | yang:date-and-ti\ | \private-key) | |||
\me | | | | | | | +--rw encryp\ | |||
| | | | | +---x generate-certificate-\ | \ted-private-key | |||
\signing-request | | | | | | | +--rw (ke\ | |||
| | | | | +---w input | \y-type) | |||
| | | | | | +---w subject | | | | | | | | +--:(s\ | |||
| | | | | | | binary | \ymmetric-key-ref) | |||
| | | | | | +---w attributes? | | | | | | | | | +--\ | |||
| | | | | | binary | \rw symmetric-key-ref? leafref | |||
| | | | | +--ro output | | | | | | | | | \ | |||
| | | | | +--ro certificate-sig\ | \ {keystore-supported}? | |||
\ning-request | | | | | | | | +--:(a\ | |||
| | | | | binary | \symmetric-key-ref) | |||
| | | | +--:(keystore) | | | | | | | | +--\ | |||
| | | | {keystore-supported}? | \rw asymmetric-key-ref? leafref | |||
| | | | +--rw keystore-reference | | | | | | | | \ | |||
| | | | +--rw asymmetric-key? | \ {keystore-supported}? | |||
| | | | | ks:asymmetric-key-r\ | | | | | | | +--rw val\ | |||
\ef | \ue? | |||
| | | | +--rw certificate? lea\ | | | | | | | b\ | |||
\fref | \inary | |||
| | | | | +--:(keystore) | ||||
| | | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | | +--rw keystore-refere\ | ||||
\nce? | ||||
| | | | | ks:asymmetric\ | ||||
\-key-ref | ||||
| | | | +--:(psk) | ||||
| | | | +--rw psk {psk-auth}? | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw algorithm | ||||
| | | | | | isa:symmet\ | ||||
\ric-algorithm-type | ||||
| | | | | +--rw key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (key-type) | ||||
| | | | | +--:(key) | ||||
| | | | | | +--rw key? | ||||
| | | | | | bina\ | ||||
\ry | ||||
| | | | | +--:(hidden-key) | ||||
| | | | | | +--rw hidden\ | ||||
\-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-\ | ||||
\key) | ||||
| | | | | +--rw encryp\ | ||||
\ted-key | ||||
| | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | b\ | ||||
\inary | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | +--rw keystore-refere\ | ||||
\nce? | ||||
| | | | ks:symmetric-\ | ||||
\key-ref | ||||
| | | +--rw server-authentication | | | | +--rw server-authentication | |||
| | | | +--rw ca-certs! | | | | | +--rw ca-certs! | |||
| | | | | {x509-certificate-auth}? | ||||
| | | | | +--rw (local-or-truststore) | | | | | | +--rw (local-or-truststore) | |||
| | | | | +--:(local) | | | | | | +--:(local) | |||
| | | | | | {local-definitions-su\ | | | | | | | {local-definitions-su\ | |||
\pported}? | \pported}? | |||
| | | | | | +--rw local-definition | | | | | | | +--rw local-definition | |||
| | | | | | +--rw cert* | | | | | | | +--rw cert* | |||
| | | | | | | trust-anchor-cer\ | | | | | | | | trust-anchor-cer\ | |||
\t-cms | \t-cms | |||
| | | | | | +---n certificate-expira\ | | | | | | | +---n certificate-expira\ | |||
\tion | \tion | |||
| | | | | | +-- expiration-date | | | | | | | +-- expiration-date | |||
| | | | | | yang:date-and\ | | | | | | | yang:date-and\ | |||
\-time | \-time | |||
| | | | | +--:(truststore) | | | | | | +--:(truststore) | |||
| | | | | {truststore-supported\ | | | | | | {truststore-supported\ | |||
\,x509-certificates}? | \,x509-certificates}? | |||
| | | | | +--rw truststore-reference? | | | | | | +--rw truststore-reference? | |||
| | | | | ts:certificates-ref | | | | | | ts:certificates-ref | |||
| | | | +--rw server-certs! | | | | | +--rw server-certs! | |||
| | | | +--rw (local-or-truststore) | | | | | | {x509-certificate-auth}? | |||
| | | | +--:(local) | | | | | | +--rw (local-or-truststore) | |||
| | | | | {local-definitions-su\ | | | | | | +--:(local) | |||
| | | | | | {local-definitions-su\ | ||||
\pported}? | \pported}? | |||
| | | | | +--rw local-definition | | | | | | | +--rw local-definition | |||
| | | | | +--rw cert* | | | | | | | +--rw cert* | |||
| | | | | | trust-anchor-cer\ | | | | | | | | trust-anchor-cer\ | |||
\t-cms | \t-cms | |||
| | | | | +---n certificate-expira\ | | | | | | | +---n certificate-expira\ | |||
\tion | \tion | |||
| | | | | +-- expiration-date | | | | | | | +-- expiration-date | |||
| | | | | yang:date-and\ | | | | | | | yang:date-and\ | |||
\-time | \-time | |||
| | | | +--:(truststore) | | | | | | +--:(truststore) | |||
| | | | {truststore-supported\ | | | | | | {truststore-supported\ | |||
\,x509-certificates}? | \,x509-certificates}? | |||
| | | | +--rw truststore-reference? | | | | | | +--rw truststore-reference? | |||
| | | | ts:certificates-ref | | | | | | ts:certificates-ref | |||
| | | | +--rw raw-public-keys! | ||||
| | | | | {raw-public-key-auth}? | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw raw-public-key* | ||||
| | | | | | [name] | ||||
| | | | | | +--rw name | ||||
| | | | | | | string | ||||
| | | | | | +--rw algorithm | ||||
| | | | | | | iasa:asymmetr\ | ||||
\ic-algorithm-type | ||||
| | | | | | +--rw public-key-form\ | ||||
\at? | ||||
| | | | | | | identityref | ||||
| | | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported\ | ||||
\,raw-public-keys}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:raw-public-keys-\ | ||||
\ref | ||||
| | | | +--rw psks! {psk-auth}? | ||||
| | | +--rw hello-params | | | | +--rw hello-params | |||
| | | | {tls-client-hello-params-config\ | | | | | {tls-client-hello-params-config\ | |||
\}? | \}? | |||
| | | | +--rw tls-versions | | | | | +--rw tls-versions | |||
| | | | | +--rw tls-version* identityref | | | | | | +--rw tls-version* identityref | |||
| | | | +--rw cipher-suites | | | | | +--rw cipher-suites | |||
| | | | +--rw cipher-suite* identityref | | | | | +--rw cipher-suite* identityref | |||
| | | +--rw keepalives! | | | | +--rw keepalives! | |||
| | | {tls-client-keepalives}? | | | | {tls-client-keepalives}? | |||
| | | +--rw max-wait? uint16 | | | | +--rw max-wait? uint16 | |||
skipping to change at page 58, line 4 ¶ | skipping to change at page 61, line 24 ¶ | |||
+--rw tls | +--rw tls | |||
+--rw tcp-server-parameters | +--rw tcp-server-parameters | |||
| +--rw local-address inet:ip-address | | +--rw local-address inet:ip-address | |||
| +--rw local-port? inet:port-number | | +--rw local-port? inet:port-number | |||
| +--rw keepalives! {keepalives-supported}? | | +--rw keepalives! {keepalives-supported}? | |||
| +--rw idle-time uint16 | | +--rw idle-time uint16 | |||
| +--rw max-probes uint16 | | +--rw max-probes uint16 | |||
| +--rw probe-interval uint16 | | +--rw probe-interval uint16 | |||
+--rw tls-client-parameters | +--rw tls-client-parameters | |||
| +--rw client-identity | | +--rw client-identity | |||
| | +--rw (local-or-keystore) | | | +--rw (auth-type) | |||
| | +--:(local) | | | +--:(certificate) | |||
| | | {local-definitions-supported}? | | | | +--rw certificate | |||
| | | +--rw local-definition | | | | {x509-certificate-auth}? | |||
| | | +--rw algorithm | | | | +--rw (local-or-keystore) | |||
| | | | iasa:asymmetric-algorithm\ | | | | +--:(local) | |||
\-type | | | | | {local-definitions-su\ | |||
| | | +--rw public-key-format? | \pported}? | |||
| | | | identityref | | | | | +--rw local-definition | |||
| | | +--rw public-key | | | | | +--rw algorithm | |||
| | | | binary | | | | | | iasa:asymmetric-\ | |||
| | | +--rw private-key-format? | \algorithm-type | |||
| | | | identityref | | | | | +--rw public-key-format? | |||
| | | +--rw (private-key-type) | | | | | | identityref | |||
| | | | +--:(private-key) | | | | | +--rw public-key | |||
| | | | | +--rw private-key? | | | | | | binary | |||
| | | | | binary | | | | | +--rw private-key-format? | |||
| | | | +--:(hidden-private-key) | | | | | | identityref | |||
| | | | | +--rw hidden-private-key? | | | | | +--rw (private-key-type) | |||
| | | | | empty | | | | | | +--:(private-key) | |||
| | | | +--:(encrypted-private-key) | | | | | | | +--rw private-key? | |||
| | | | +--rw encrypted-private-key | | | | | | | binary | |||
| | | | +--rw (key-type) | | | | | | +--:(hidden-private-k\ | |||
| | | | | +--:(symmetric-key-re\ | \ey) | |||
\f) | | | | | | | +--rw hidden-priva\ | |||
| | | | | | +--rw symmetric-ke\ | \te-key? | |||
\y-ref? leafref | | | | | | | empty | |||
| | | | | | {keystore-\ | | | | | | +--:(encrypted-privat\ | |||
\supported}? | ||||
| | | | | +--:(asymmetric-key-r\ | \e-key) | |||
\ef) | | | | | | +--rw encrypted-pr\ | |||
| | | | | +--rw asymmetric-k\ | \ivate-key | |||
\ey-ref? leafref | | | | | | +--rw (key-type) | |||
| | | | | {keystore-\ | | | | | | | +--:(symmetr\ | |||
\supported}? | \ic-key-ref) | |||
| | | | +--rw value? | | | | | | | | +--rw sym\ | |||
| | | | binary | \metric-key-ref? leafref | |||
| | | +--rw cert? | | | | | | | | {\ | |||
| | | | end-entity-cert-cms | \keystore-supported}? | |||
| | | +---n certificate-expiration | | | | | | | +--:(asymmet\ | |||
| | | | +-- expiration-date | \ric-key-ref) | |||
| | | | yang:date-and-time | | | | | | | +--rw asy\ | |||
| | | +---x generate-certificate-signin\ | \mmetric-key-ref? leafref | |||
\g-request | | | | | | | {\ | |||
| | | +---w input | \keystore-supported}? | |||
| | | | +---w subject binary | | | | | | +--rw value? | |||
| | | | +---w attributes? binary | | | | | | binary | |||
| | | +--ro output | | | | | +--rw cert? | |||
| | | +--ro certificate-signing-r\ | | | | | | end-entity-cert-\ | |||
\equest | \cms | |||
| | | binary | | | | | +---n certificate-expira\ | |||
| | +--:(keystore) {keystore-supported}? | \tion | |||
| | +--rw keystore-reference | | | | | | +-- expiration-date | |||
| | +--rw asymmetric-key? | | | | | | yang:date-and\ | |||
| | | ks:asymmetric-key-ref | \-time | |||
| | +--rw certificate? leafref | | | | | +---x generate-certifica\ | |||
\te-signing-request | ||||
| | | | +---w input | ||||
| | | | | +---w subject | ||||
| | | | | | binary | ||||
| | | | | +---w attributes? | ||||
| | | | | binary | ||||
| | | | +--ro output | ||||
| | | | +--ro certificate-\ | ||||
\signing-request | ||||
| | | | binary | ||||
| | | +--:(keystore) | ||||
| | | {keystore-supported}? | ||||
| | | +--rw keystore-reference | ||||
| | | +--rw asymmetric-key? | ||||
| | | | ks:asymmetric-ke\ | ||||
\y-ref | ||||
| | | +--rw certificate? \ | ||||
\leafref | ||||
| | +--:(raw-public-key) | ||||
| | | +--rw raw-public-key | ||||
| | | {raw-public-key-auth}? | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw algorithm | ||||
| | | | | iasa:asymmetric-\ | ||||
\algorithm-type | ||||
| | | | +--rw public-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--rw private-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (private-key-type) | ||||
| | | | +--:(private-key) | ||||
| | | | | +--rw private-key? | ||||
| | | | | binary | ||||
| | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | empty | ||||
| | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | +--rw (key-type) | ||||
| | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | +--rw value? | ||||
| | | | binary | ||||
| | | +--:(keystore) | ||||
| | | {keystore-supported}? | ||||
| | | +--rw keystore-reference? | ||||
| | | ks:asymmetric-key-r\ | ||||
\ef | ||||
| | +--:(psk) | ||||
| | +--rw psk {psk-auth}? | ||||
| | +--rw (local-or-keystore) | ||||
| | +--:(local) | ||||
| | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | +--rw local-definition | ||||
| | | +--rw algorithm | ||||
| | | | isa:symmetric-al\ | ||||
\gorithm-type | ||||
| | | +--rw key-format? | ||||
| | | | identityref | ||||
| | | +--rw (key-type) | ||||
| | | +--:(key) | ||||
| | | | +--rw key? | ||||
| | | | binary | ||||
| | | +--:(hidden-key) | ||||
| | | | +--rw hidden-key? | ||||
| | | | empty | ||||
| | | +--:(encrypted-key) | ||||
| | | +--rw encrypted-key | ||||
| | | +--rw (key-type) | ||||
| | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | {\ | ||||
\keystore-supported}? | ||||
| | | +--rw value? | ||||
| | | binary | ||||
| | +--:(keystore) | ||||
| | {keystore-supported}? | ||||
| | +--rw keystore-reference? | ||||
| | ks:symmetric-key-ref | ||||
| +--rw server-authentication | | +--rw server-authentication | |||
| | +--rw ca-certs! | | | +--rw ca-certs! {x509-certificate-auth}? | |||
| | | +--rw (local-or-truststore) | | | | +--rw (local-or-truststore) | |||
| | | +--:(local) | | | | +--:(local) | |||
| | | | {local-definitions-supporte\ | | | | | {local-definitions-supporte\ | |||
\d}? | \d}? | |||
| | | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | | +--rw cert* | | | | | +--rw cert* | |||
| | | | | trust-anchor-cert-cms | | | | | | trust-anchor-cert-cms | |||
| | | | +---n certificate-expiration | | | | | +---n certificate-expiration | |||
| | | | +-- expiration-date | | | | | +-- expiration-date | |||
| | | | yang:date-and-time | | | | | yang:date-and-time | |||
| | | +--:(truststore) | | | | +--:(truststore) | |||
| | | {truststore-supported,x509-\ | | | | {truststore-supported,x509-\ | |||
\certificates}? | \certificates}? | |||
| | | +--rw truststore-reference? | | | | +--rw truststore-reference? | |||
| | | ts:certificates-ref | | | | ts:certificates-ref | |||
| | +--rw server-certs! | | | +--rw server-certs! | |||
| | +--rw (local-or-truststore) | | | | {x509-certificate-auth}? | |||
| | +--:(local) | | | | +--rw (local-or-truststore) | |||
| | | {local-definitions-supporte\ | | | | +--:(local) | |||
| | | | {local-definitions-supporte\ | ||||
\d}? | \d}? | |||
| | | +--rw local-definition | | | | | +--rw local-definition | |||
| | | +--rw cert* | | | | | +--rw cert* | |||
| | | | trust-anchor-cert-cms | | | | | | trust-anchor-cert-cms | |||
| | | +---n certificate-expiration | | | | | +---n certificate-expiration | |||
| | | +-- expiration-date | | | | | +-- expiration-date | |||
| | | yang:date-and-time | | | | | yang:date-and-time | |||
| | +--:(truststore) | | | | +--:(truststore) | |||
| | {truststore-supported,x509-\ | | | | {truststore-supported,x509-\ | |||
\certificates}? | \certificates}? | |||
| | +--rw truststore-reference? | | | | +--rw truststore-reference? | |||
| | ts:certificates-ref | | | | ts:certificates-ref | |||
| | +--rw raw-public-keys! | ||||
| | | {raw-public-key-auth}? | ||||
| | | +--rw (local-or-truststore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw raw-public-key* [name] | ||||
| | | | +--rw name | ||||
| | | | | string | ||||
| | | | +--rw algorithm | ||||
| | | | | iasa:asymmetric-alg\ | ||||
\orithm-type | ||||
| | | | +--rw public-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | binary | ||||
| | | +--:(truststore) | ||||
| | | {truststore-supported,raw-p\ | ||||
\ublic-keys}? | ||||
| | | +--rw truststore-reference? | ||||
| | | ts:raw-public-keys-ref | ||||
| | +--rw psks! {psk-auth}? | ||||
| +--rw hello-params | | +--rw hello-params | |||
| | {tls-client-hello-params-config}? | | | {tls-client-hello-params-config}? | |||
| | +--rw tls-versions | | | +--rw tls-versions | |||
| | | +--rw tls-version* identityref | | | | +--rw tls-version* identityref | |||
| | +--rw cipher-suites | | | +--rw cipher-suites | |||
| | +--rw cipher-suite* identityref | | | +--rw cipher-suite* identityref | |||
| +--rw keepalives! {tls-client-keepalives}? | | +--rw keepalives! {tls-client-keepalives}? | |||
| +--rw max-wait? uint16 | | +--rw max-wait? uint16 | |||
| +--rw max-attempts? uint8 | | +--rw max-attempts? uint8 | |||
+--rw netconf-client-parameters | +--rw netconf-client-parameters | |||
skipping to change at page 63, line 42 ¶ | skipping to change at page 69, line 49 ¶ | |||
\-key-ref | \-key-ref | |||
| | | | +--rw certificate? \ | | | | | +--rw certificate? \ | |||
\ leafref | \ leafref | |||
| | | +--rw client-authentication | | | | +--rw client-authentication | |||
| | | | +--rw supported-authentication-methods | | | | | +--rw supported-authentication-methods | |||
| | | | | +--rw publickey? empty | | | | | | +--rw publickey? empty | |||
| | | | | +--rw passsword? empty | | | | | | +--rw passsword? empty | |||
| | | | | +--rw hostbased? empty | | | | | | +--rw hostbased? empty | |||
| | | | | +--rw none? empty | | | | | | +--rw none? empty | |||
| | | | | +--rw other* string | | | | | | +--rw other* string | |||
| | | | +--rw (local-or-external) | | | | | +--rw users {client-auth-config-supported}? | |||
| | | | +--:(local) | | | | | | +--rw user* [name] | |||
| | | | | {local-client-auth-supported}? | | | | | | +--rw name string | |||
| | | | | +--rw users | | | | | | +--rw password? ianach:crypt-hash | |||
| | | | | +--rw user* [name] | | | | | | +--rw host-keys! | |||
| | | | | +--rw name string | | | | | | +--rw (local-or-truststore) | |||
| | | | | +--rw password? | | | | | | +--:(local) | |||
| | | | | | ianach:crypt-hash | | | | | | | {local-definitions-su\ | |||
| | | | | +--rw host-keys! | \pported}? | |||
| | | | | | +--rw (local-or-truststore) | | | | | | | +--rw local-definition | |||
| | | | | | +--:(local) | | | | | | | +--rw host-key* | |||
| | | | | | | {local-definiti\ | | | | | | | ct:ssh-host-key | |||
\ons-supported}? | | | | | | +--:(truststore) | |||
| | | | | | | +--rw local-definition | | | | | | {truststore-supported\ | |||
| | | | | | | +--rw host-key* | \,ssh-host-keys}? | |||
| | | | | | | ct:ssh-hos\ | | | | | | +--rw truststore-reference? | |||
\t-key | | | | | | ts:host-keys-ref | |||
| | | | | | +--:(truststore) | | | | | +--rw ca-certs! | |||
| | | | | | {truststore-sup\ | | | | | | {client-auth-config-supported,sshc\ | |||
\ported,ssh-host-keys}? | \mn:ssh-x509-certs}? | |||
| | | | | | +--rw truststore-refe\ | | | | | | +--rw (local-or-truststore) | |||
\rence? | | | | | | +--:(local) | |||
| | | | | | ts:host-keys-\ | | | | | | | {local-definitions-supporte\ | |||
\ref | ||||
| | | | | +--rw ca-certs! | ||||
| | | | | | {sshcmn:ssh-x509-certs\ | ||||
\}? | ||||
| | | | | | +--rw (local-or-truststore) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | | | +--rw local-definition | ||||
| | | | | | | +--rw cert* | ||||
| | | | | | | | trust-anch\ | ||||
\or-cert-cms | ||||
| | | | | | | +---n certificate-\ | ||||
\expiration | ||||
| | | | | | | +-- expiration-\ | ||||
\date | ||||
| | | | | | | yang:da\ | ||||
\te-and-time | ||||
| | | | | | +--:(truststore) | ||||
| | | | | | {truststore-sup\ | ||||
\ported,x509-certificates}? | ||||
| | | | | | +--rw truststore-refe\ | ||||
\rence? | ||||
| | | | | | ts:certificat\ | ||||
\es-ref | ||||
| | | | | +--rw client-certs! | ||||
| | | | | {sshcmn:ssh-x509-certs\ | ||||
\}? | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trust-anch\ | ||||
\or-cert-cms | ||||
| | | | | | +---n certificate-\ | ||||
\expiration | ||||
| | | | | | +-- expiration-\ | ||||
\date | ||||
| | | | | | yang:da\ | ||||
\te-and-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-sup\ | ||||
\ported,x509-certificates}? | ||||
| | | | | +--rw truststore-refe\ | ||||
\rence? | ||||
| | | | | ts:certificat\ | ||||
\es-ref | ||||
| | | | +--:(external) | ||||
| | | | {external-client-auth-supporte\ | ||||
\d}? | \d}? | |||
| | | | +--rw client-auth-defined-elsewhere? | | | | | | | +--rw local-definition | |||
| | | | empty | | | | | | | +--rw cert* | |||
| | | | | | | trust-anchor-cert-cms | ||||
| | | | | | +---n certificate-expiration | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported,x509-\ | ||||
\certificates}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:certificates-ref | ||||
| | | | +--rw client-certs! | ||||
| | | | {client-auth-config-supported,sshc\ | ||||
\mn:ssh-x509-certs}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cert-cms | ||||
| | | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,x509-\ | ||||
\certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificates-ref | ||||
| | | +--rw transport-params | | | | +--rw transport-params | |||
| | | | {ssh-server-transport-params-config}? | | | | | {ssh-server-transport-params-config}? | |||
| | | | +--rw host-key | | | | | +--rw host-key | |||
| | | | | +--rw host-key-alg* identityref | | | | | | +--rw host-key-alg* identityref | |||
| | | | +--rw key-exchange | | | | | +--rw key-exchange | |||
| | | | | +--rw key-exchange-alg* identityref | | | | | | +--rw key-exchange-alg* identityref | |||
| | | | +--rw encryption | | | | | +--rw encryption | |||
| | | | | +--rw encryption-alg* identityref | | | | | | +--rw encryption-alg* identityref | |||
| | | | +--rw mac | | | | | +--rw mac | |||
| | | | +--rw mac-alg* identityref | | | | | +--rw mac-alg* identityref | |||
| | | +--rw keepalives! {ssh-server-keepalives}? | | | | +--rw keepalives! {ssh-server-keepalives}? | |||
| | | +--rw max-wait? uint16 | | | | +--rw max-wait? uint16 | |||
| | | +--rw max-attempts? uint8 | | | | +--rw max-attempts? uint8 | |||
| | +--rw netconf-server-parameters | | | +--rw netconf-server-parameters | |||
| | +--rw client-identification | | | +--rw client-identity-mappings | |||
| | +--rw cert-maps | | | {tls-listen or tls-call-home or sshcm\ | |||
| | +--rw cert-to-name* [id] | \n:ssh-x509-certs}? | |||
| | +--rw id uint32 | | | +--rw cert-to-name* [id] | |||
| | +--rw fingerprint? | | | +--rw id uint32 | |||
| | | x509c2n:tls-fingerprint | | | +--rw fingerprint? | |||
| | +--rw map-type identityref | | | | x509c2n:tls-fingerprint | |||
| | +--rw name string | | | +--rw map-type identityref | |||
| | +--rw name string | ||||
| +--:(tls) {tls-listen}? | | +--:(tls) {tls-listen}? | |||
| +--rw tls | | +--rw tls | |||
| +--rw tcp-server-parameters | | +--rw tcp-server-parameters | |||
| | +--rw local-address inet:ip-address | | | +--rw local-address inet:ip-address | |||
| | +--rw local-port? inet:port-number | | | +--rw local-port? inet:port-number | |||
| | +--rw keepalives! {keepalives-supported}? | | | +--rw keepalives! {keepalives-supported}? | |||
| | +--rw idle-time uint16 | | | +--rw idle-time uint16 | |||
| | +--rw max-probes uint16 | | | +--rw max-probes uint16 | |||
| | +--rw probe-interval uint16 | | | +--rw probe-interval uint16 | |||
| +--rw tls-server-parameters | | +--rw tls-server-parameters | |||
| | +--rw server-identity | | | +--rw server-identity | |||
| | | +--rw (local-or-keystore) | | | | +--rw (auth-type) | |||
| | | +--:(local) | | | | +--:(certificate) | |||
| | | | {local-definitions-supported}? | | | | | +--rw certificate | |||
| | | | +--rw local-definition | | | | | {x509-certificate-auth}? | |||
| | | | +--rw algorithm | | | | | +--rw (local-or-keystore) | |||
| | | | | iasa:asymmetric-algorithm\ | ||||
\-type | ||||
| | | | +--rw public-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--rw private-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (private-key-type) | ||||
| | | | | +--:(private-key) | ||||
| | | | | | +--rw private-key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-private-key) | ||||
| | | | | | +--rw hidden-private-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-private-key) | ||||
| | | | | +--rw encrypted-private-key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetric-key-re\ | ||||
\f) | ||||
| | | | | | | +--rw symmetric-ke\ | ||||
\y-ref? leafref | ||||
| | | | | | | {keystore-\ | ||||
\supported}? | ||||
| | | | | | +--:(asymmetric-key-r\ | ||||
\ef) | ||||
| | | | | | +--rw asymmetric-k\ | ||||
\ey-ref? leafref | ||||
| | | | | | {keystore-\ | ||||
\supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--rw cert? | ||||
| | | | | end-entity-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +---x generate-certificate-signin\ | ||||
\g-request | ||||
| | | | +---w input | ||||
| | | | | +---w subject binary | ||||
| | | | | +---w attributes? binary | ||||
| | | | +--ro output | ||||
| | | | +--ro certificate-signing-r\ | ||||
\equest | ||||
| | | | binary | ||||
| | | +--:(keystore) {keystore-supported}? | ||||
| | | +--rw keystore-reference | ||||
| | | +--rw asymmetric-key? | ||||
| | | | ks:asymmetric-key-ref | ||||
| | | +--rw certificate? leafref | ||||
| | +--rw client-authentication! | ||||
| | | +--rw (required-or-optional) | ||||
| | | | +--:(required) | ||||
| | | | | +--rw required? | ||||
| | | | | empty | ||||
| | | | +--:(optional) | ||||
| | | | +--rw optional? | ||||
| | | | empty | ||||
| | | +--rw (local-or-external) | ||||
| | | +--:(local) | ||||
| | | | {local-client-auth-supported}? | ||||
| | | | +--rw ca-certs! | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported\ | ||||
\,x509-certificates}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:certificates-ref | ||||
| | | | +--rw client-certs! | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | | | | | +--:(local) | |||
| | | | | {local-definitions-su\ | | | | | | {local-definitions-su\ | |||
\pported}? | \pported}? | |||
| | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | +--rw cert* | | | | | | +--rw algorithm | |||
| | | | | | trust-anchor-cer\ | | | | | | | iasa:asymmetric-\ | |||
\t-cms | \algorithm-type | |||
| | | | | +--rw public-key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key-type) | ||||
| | | | | | +--:(private-key) | ||||
| | | | | | | +--rw private-key? | ||||
| | | | | | | binary | ||||
| | | | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | | | empty | ||||
| | | | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | | | +--rw (key-type) | ||||
| | | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | +--rw value? | ||||
| | | | | | binary | ||||
| | | | | +--rw cert? | ||||
| | | | | | end-entity-cert-\ | ||||
\cms | ||||
| | | | | +---n certificate-expira\ | | | | | | +---n certificate-expira\ | |||
\tion | \tion | |||
| | | | | +-- expiration-date | | | | | | | +-- expiration-date | |||
| | | | | yang:date-and\ | | | | | | | yang:date-and\ | |||
\-time | \-time | |||
| | | | +--:(truststore) | | | | | | +---x generate-certifica\ | |||
| | | | {truststore-supported\ | \te-signing-request | |||
\,x509-certificates}? | | | | | | +---w input | |||
| | | | +--rw truststore-reference? | | | | | | | +---w subject | |||
| | | | ts:certificates-ref | | | | | | | | binary | |||
| | | +--:(external) | | | | | | | +---w attributes? | |||
| | | {external-client-auth-supporte\ | | | | | | | binary | |||
| | | | | +--ro output | ||||
| | | | | +--ro certificate-\ | ||||
\signing-request | ||||
| | | | | binary | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-supported}? | ||||
| | | | +--rw keystore-reference | ||||
| | | | +--rw asymmetric-key? | ||||
| | | | | ks:asymmetric-ke\ | ||||
\y-ref | ||||
| | | | +--rw certificate? \ | ||||
\leafref | ||||
| | | +--:(raw-private-key) | ||||
| | | | +--rw raw-private-key | ||||
| | | | {raw-public-key-auth}? | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw algorithm | ||||
| | | | | | iasa:asymmetric-\ | ||||
\algorithm-type | ||||
| | | | | +--rw public-key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key-type) | ||||
| | | | | +--:(private-key) | ||||
| | | | | | +--rw private-key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-private-k\ | ||||
\ey) | ||||
| | | | | | +--rw hidden-priva\ | ||||
\te-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-privat\ | ||||
\e-key) | ||||
| | | | | +--rw encrypted-pr\ | ||||
\ivate-key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-supported}? | ||||
| | | | +--rw keystore-reference? | ||||
| | | | ks:asymmetric-key-r\ | ||||
\ef | ||||
| | | +--:(psk) | ||||
| | | +--rw psk {psk-auth}? | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw algorithm | ||||
| | | | | isa:symmetric-al\ | ||||
\gorithm-type | ||||
| | | | +--rw key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (key-type) | ||||
| | | | +--:(key) | ||||
| | | | | +--rw key? | ||||
| | | | | binary | ||||
| | | | +--:(hidden-key) | ||||
| | | | | +--rw hidden-key? | ||||
| | | | | empty | ||||
| | | | +--:(encrypted-key) | ||||
| | | | +--rw encrypted-key | ||||
| | | | +--rw (key-type) | ||||
| | | | | +--:(symmetr\ | ||||
\ic-key-ref) | ||||
| | | | | | +--rw sym\ | ||||
\metric-key-ref? leafref | ||||
| | | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | | +--:(asymmet\ | ||||
\ric-key-ref) | ||||
| | | | | +--rw asy\ | ||||
\mmetric-key-ref? leafref | ||||
| | | | | {\ | ||||
\keystore-supported}? | ||||
| | | | +--rw value? | ||||
| | | | binary | ||||
| | | +--:(keystore) | ||||
| | | {keystore-supported}? | ||||
| | | +--rw keystore-reference? | ||||
| | | ks:symmetric-key-ref | ||||
| | +--rw client-authentication! | ||||
| | | {client-auth-config-supported}? | ||||
| | | +--rw ca-certs! {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | \d}? | |||
| | | +--rw client-auth-defined-elsewhere? | | | | | | +--rw local-definition | |||
| | | empty | | | | | | +--rw cert* | |||
| | | | | | trust-anchor-cert-cms | ||||
| | | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,x509-\ | ||||
\certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificates-ref | ||||
| | | +--rw client-certs! | ||||
| | | | {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cert-cms | ||||
| | | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported,x509-\ | ||||
\certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificates-ref | ||||
| | | +--rw raw-public-keys! | ||||
| | | {raw-public-key-auth}? | ||||
| | | +--rw (local-or-truststore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-supporte\ | ||||
\d}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw raw-public-key* [name] | ||||
| | | | +--rw name | ||||
| | | | | string | ||||
| | | | +--rw algorithm | ||||
| | | | | iasa:asymmetric-alg\ | ||||
\orithm-type | ||||
| | | | +--rw public-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | binary | ||||
| | | +--:(truststore) | ||||
| | | {truststore-supported,raw-p\ | ||||
\ublic-keys}? | ||||
| | | +--rw truststore-reference? | ||||
| | | ts:raw-public-keys-ref | ||||
| | +--rw hello-params | | | +--rw hello-params | |||
| | | {tls-server-hello-params-config}? | | | | {tls-server-hello-params-config}? | |||
| | | +--rw tls-versions | | | | +--rw tls-versions | |||
| | | | +--rw tls-version* identityref | | | | | +--rw tls-version* identityref | |||
| | | +--rw cipher-suites | | | | +--rw cipher-suites | |||
| | | +--rw cipher-suite* identityref | | | | +--rw cipher-suite* identityref | |||
| | +--rw keepalives! {tls-server-keepalives}? | | | +--rw keepalives! {tls-server-keepalives}? | |||
| | +--rw max-wait? uint16 | | | +--rw max-wait? uint16 | |||
| | +--rw max-attempts? uint8 | | | +--rw max-attempts? uint8 | |||
| +--rw netconf-server-parameters | | +--rw netconf-server-parameters | |||
| +--rw client-identification | | +--rw client-identity-mappings | |||
| +--rw cert-maps | | {tls-listen or tls-call-home or sshcm\ | |||
| +--rw cert-to-name* [id] | \n:ssh-x509-certs}? | |||
| +--rw id uint32 | | +--rw cert-to-name* [id] | |||
| +--rw fingerprint? | | +--rw id uint32 | |||
| | x509c2n:tls-fingerprint | | +--rw fingerprint? | |||
| +--rw map-type identityref | | | x509c2n:tls-fingerprint | |||
| +--rw name string | | +--rw map-type identityref | |||
| +--rw name string | ||||
+--rw call-home! {ssh-call-home or tls-call-home}? | +--rw call-home! {ssh-call-home or tls-call-home}? | |||
+--rw netconf-client* [name] | +--rw netconf-client* [name] | |||
+--rw name string | +--rw name string | |||
+--rw endpoints | +--rw endpoints | |||
| +--rw endpoint* [name] | | +--rw endpoint* [name] | |||
| +--rw name string | | +--rw name string | |||
| +--rw (transport) | | +--rw (transport) | |||
| +--:(ssh) {ssh-call-home}? | | +--:(ssh) {ssh-call-home}? | |||
| | +--rw ssh | | | +--rw ssh | |||
| | +--rw tcp-client-parameters | | | +--rw tcp-client-parameters | |||
skipping to change at page 72, line 41 ¶ | skipping to change at page 80, line 39 ¶ | |||
| | | | +--rw certifica\ | | | | | +--rw certifica\ | |||
\te? leafref | \te? leafref | |||
| | | +--rw client-authentication | | | | +--rw client-authentication | |||
| | | | +--rw supported-authentication-metho\ | | | | | +--rw supported-authentication-metho\ | |||
\ds | \ds | |||
| | | | | +--rw publickey? empty | | | | | | +--rw publickey? empty | |||
| | | | | +--rw passsword? empty | | | | | | +--rw passsword? empty | |||
| | | | | +--rw hostbased? empty | | | | | | +--rw hostbased? empty | |||
| | | | | +--rw none? empty | | | | | | +--rw none? empty | |||
| | | | | +--rw other* string | | | | | | +--rw other* string | |||
| | | | +--rw (local-or-external) | | | | | +--rw users | |||
| | | | +--:(local) | | | | | | {client-auth-config-supporte\ | |||
| | | | | {local-client-auth-suppo\ | \d}? | |||
\rted}? | | | | | | +--rw user* [name] | |||
| | | | | +--rw users | | | | | | +--rw name string | |||
| | | | | +--rw user* [name] | | | | | | +--rw password? | |||
| | | | | +--rw name | | | | | | | ianach:crypt-hash | |||
| | | | | | string | | | | | | +--rw host-keys! | |||
| | | | | +--rw password? | | | | | | +--rw (local-or-truststore) | |||
| | | | | | ianach:crypt-hash | | | | | | +--:(local) | |||
| | | | | +--rw host-keys! | | | | | | | {local-definiti\ | |||
| | | | | | +--rw (local-or-trust\ | \ons-supported}? | |||
| | | | | | +--rw local-definition | ||||
\store) | | | | | | | +--rw host-key* | |||
| | | | | | +--:(local) | | | | | | | ct:ssh-hos\ | |||
| | | | | | | {local-de\ | \t-key | |||
\finitions-supported}? | | | | | | +--:(truststore) | |||
| | | | | | | +--rw local-def\ | | | | | | {truststore-sup\ | |||
\inition | \ported,ssh-host-keys}? | |||
| | | | | | | +--rw host-k\ | | | | | | +--rw truststore-refe\ | |||
\ey* | \rence? | |||
| | | | | | | ct:s\ | | | | | | ts:host-keys-\ | |||
\sh-host-key | \ref | |||
| | | | | | +--:(truststore) | | | | | +--rw ca-certs! | |||
| | | | | | {truststo\ | | | | | | {client-auth-config-supporte\ | |||
\re-supported,ssh-host-keys}? | \d,sshcmn:ssh-x509-certs}? | |||
| | | | | | +--rw truststor\ | | | | | | +--rw (local-or-truststore) | |||
\e-reference? | | | | | | +--:(local) | |||
| | | | | | ts:host\ | | | | | | | {local-definitions-su\ | |||
\-keys-ref | ||||
| | | | | +--rw ca-certs! | ||||
| | | | | | {sshcmn:ssh-x509\ | ||||
\-certs}? | ||||
| | | | | | +--rw (local-or-trust\ | ||||
\store) | ||||
| | | | | | +--:(local) | ||||
| | | | | | | {local-de\ | ||||
\finitions-supported}? | ||||
| | | | | | | +--rw local-def\ | ||||
\inition | ||||
| | | | | | | +--rw cert* | ||||
| | | | | | | | trus\ | ||||
\t-anchor-cert-cms | ||||
| | | | | | | +---n certif\ | ||||
\icate-expiration | ||||
| | | | | | | +-- expir\ | ||||
\ation-date | ||||
| | | | | | | y\ | ||||
\ang:date-and-time | ||||
| | | | | | +--:(truststore) | ||||
| | | | | | {truststo\ | ||||
\re-supported,x509-certificates}? | ||||
| | | | | | +--rw truststor\ | ||||
\e-reference? | ||||
| | | | | | ts:cert\ | ||||
\ificates-ref | ||||
| | | | | +--rw client-certs! | ||||
| | | | | {sshcmn:ssh-x509\ | ||||
\-certs}? | ||||
| | | | | +--rw (local-or-trust\ | ||||
\store) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-de\ | ||||
\finitions-supported}? | ||||
| | | | | | +--rw local-def\ | ||||
\inition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trus\ | ||||
\t-anchor-cert-cms | ||||
| | | | | | +---n certif\ | ||||
\icate-expiration | ||||
| | | | | | +-- expir\ | ||||
\ation-date | ||||
| | | | | | y\ | ||||
\ang:date-and-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststo\ | ||||
\re-supported,x509-certificates}? | ||||
| | | | | +--rw truststor\ | ||||
\e-reference? | ||||
| | | | | ts:cert\ | ||||
\ificates-ref | ||||
| | | | +--:(external) | ||||
| | | | {external-client-auth-su\ | ||||
\pported}? | \pported}? | |||
| | | | +--rw client-auth-defined-else\ | | | | | | | +--rw local-definition | |||
\where? | | | | | | | +--rw cert* | |||
| | | | empty | | | | | | | | trust-anchor-cer\ | |||
\t-cms | ||||
| | | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | | +-- expiration-date | ||||
| | | | | | yang:date-and\ | ||||
\-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-supported\ | ||||
\,x509-certificates}? | ||||
| | | | | +--rw truststore-reference? | ||||
| | | | | ts:certificates-ref | ||||
| | | | +--rw client-certs! | ||||
| | | | {client-auth-config-supporte\ | ||||
\d,sshcmn:ssh-x509-certs}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and\ | ||||
\-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported\ | ||||
\,x509-certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificates-ref | ||||
| | | +--rw transport-params | | | | +--rw transport-params | |||
| | | | {ssh-server-transport-params-co\ | | | | | {ssh-server-transport-params-co\ | |||
\nfig}? | \nfig}? | |||
| | | | +--rw host-key | | | | | +--rw host-key | |||
| | | | | +--rw host-key-alg* identityref | | | | | | +--rw host-key-alg* identityref | |||
| | | | +--rw key-exchange | | | | | +--rw key-exchange | |||
| | | | | +--rw key-exchange-alg* | | | | | | +--rw key-exchange-alg* | |||
| | | | | identityref | | | | | | identityref | |||
| | | | +--rw encryption | | | | | +--rw encryption | |||
| | | | | +--rw encryption-alg* | | | | | | +--rw encryption-alg* | |||
| | | | | identityref | | | | | | identityref | |||
| | | | +--rw mac | | | | | +--rw mac | |||
| | | | +--rw mac-alg* identityref | | | | | +--rw mac-alg* identityref | |||
| | | +--rw keepalives! | | | | +--rw keepalives! | |||
| | | {ssh-server-keepalives}? | | | | {ssh-server-keepalives}? | |||
| | | +--rw max-wait? uint16 | | | | +--rw max-wait? uint16 | |||
| | | +--rw max-attempts? uint8 | | | | +--rw max-attempts? uint8 | |||
| | +--rw netconf-server-parameters | | | +--rw netconf-server-parameters | |||
| | +--rw client-identification | | | +--rw client-identity-mappings | |||
| | +--rw cert-maps | | | {tls-listen or tls-call-home or\ | |||
| | +--rw cert-to-name* [id] | \ sshcmn:ssh-x509-certs}? | |||
| | +--rw id uint32 | | | +--rw cert-to-name* [id] | |||
| | +--rw fingerprint? | | | +--rw id uint32 | |||
| | | x509c2n:tls-fingerprint | | | +--rw fingerprint? | |||
| | +--rw map-type | | | | x509c2n:tls-fingerprint | |||
| | | identityref | | | +--rw map-type identityref | |||
| | +--rw name string | | | +--rw name string | |||
| +--:(tls) {tls-call-home}? | | +--:(tls) {tls-call-home}? | |||
| +--rw tls | | +--rw tls | |||
| +--rw tcp-client-parameters | | +--rw tcp-client-parameters | |||
| | +--rw remote-address inet:host | | | +--rw remote-address inet:host | |||
| | +--rw remote-port? inet:port-number | | | +--rw remote-port? inet:port-number | |||
| | +--rw local-address? inet:ip-address | | | +--rw local-address? inet:ip-address | |||
| | | {local-binding-supported}? | | | | {local-binding-supported}? | |||
| | +--rw local-port? inet:port-number | | | +--rw local-port? inet:port-number | |||
| | | {local-binding-supported}? | | | | {local-binding-supported}? | |||
| | +--rw keepalives! | | | +--rw keepalives! | |||
| | {keepalives-supported}? | | | {keepalives-supported}? | |||
| | +--rw idle-time uint16 | | | +--rw idle-time uint16 | |||
| | +--rw max-probes uint16 | | | +--rw max-probes uint16 | |||
| | +--rw probe-interval uint16 | | | +--rw probe-interval uint16 | |||
| +--rw tls-server-parameters | | +--rw tls-server-parameters | |||
| | +--rw server-identity | | | +--rw server-identity | |||
| | | +--rw (local-or-keystore) | | | | +--rw (auth-type) | |||
| | | +--:(local) | | | | +--:(certificate) | |||
| | | | {local-definitions-suppo\ | | | | | +--rw certificate | |||
\rted}? | | | | | {x509-certificate-auth\ | |||
| | | | +--rw local-definition | \}? | |||
| | | | +--rw algorithm | | | | | +--rw (local-or-keystore) | |||
| | | | | iasa:asymmetric-alg\ | ||||
\orithm-type | ||||
| | | | +--rw public-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | | binary | ||||
| | | | +--rw private-key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (private-key-type) | ||||
| | | | | +--:(private-key) | ||||
| | | | | | +--rw private-key? | ||||
| | | | | | binary | ||||
| | | | | +--:(hidden-private-key) | ||||
| | | | | | +--rw hidden-private-\ | ||||
\key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-private-k\ | ||||
\ey) | ||||
| | | | | +--rw encrypted-priva\ | ||||
\te-key | ||||
| | | | | +--rw (key-type) | ||||
| | | | | | +--:(symmetric-\ | ||||
\key-ref) | ||||
| | | | | | | +--rw symmet\ | ||||
\ric-key-ref? leafref | ||||
| | | | | | | {key\ | ||||
\store-supported}? | ||||
| | | | | | +--:(asymmetric\ | ||||
\-key-ref) | ||||
| | | | | | +--rw asymme\ | ||||
\tric-key-ref? leafref | ||||
| | | | | | {key\ | ||||
\store-supported}? | ||||
| | | | | +--rw value? | ||||
| | | | | binary | ||||
| | | | +--rw cert? | ||||
| | | | | end-entity-cert-cms | ||||
| | | | +---n certificate-expiration | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and-ti\ | ||||
\me | ||||
| | | | +---x generate-certificate-\ | ||||
\signing-request | ||||
| | | | +---w input | ||||
| | | | | +---w subject | ||||
| | | | | | binary | ||||
| | | | | +---w attributes? | ||||
| | | | | binary | ||||
| | | | +--ro output | ||||
| | | | +--ro certificate-sig\ | ||||
\ning-request | ||||
| | | | binary | ||||
| | | +--:(keystore) | ||||
| | | {keystore-supported}? | ||||
| | | +--rw keystore-reference | ||||
| | | +--rw asymmetric-key? | ||||
| | | | ks:asymmetric-key-r\ | ||||
\ef | ||||
| | | +--rw certificate? lea\ | ||||
\fref | ||||
| | +--rw client-authentication! | ||||
| | | +--rw (required-or-optional) | ||||
| | | | +--:(required) | ||||
| | | | | +--rw required? | ||||
| | | | | empty | ||||
| | | | +--:(optional) | ||||
| | | | +--rw optional? | ||||
| | | | empty | ||||
| | | +--rw (local-or-external) | ||||
| | | +--:(local) | ||||
| | | | {local-client-auth-suppo\ | ||||
\rted}? | ||||
| | | | +--rw ca-certs! | ||||
| | | | | +--rw (local-or-truststore) | ||||
| | | | | +--:(local) | ||||
| | | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | | +--rw local-definition | ||||
| | | | | | +--rw cert* | ||||
| | | | | | | trust-anch\ | ||||
\or-cert-cms | ||||
| | | | | | +---n certificate-\ | ||||
\expiration | ||||
| | | | | | +-- expiration-\ | ||||
\date | ||||
| | | | | | yang:da\ | ||||
\te-and-time | ||||
| | | | | +--:(truststore) | ||||
| | | | | {truststore-sup\ | ||||
\ported,x509-certificates}? | ||||
| | | | | +--rw truststore-refe\ | ||||
\rence? | ||||
| | | | | ts:certificat\ | ||||
\es-ref | ||||
| | | | +--rw client-certs! | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | | | | | +--:(local) | |||
| | | | | {local-definiti\ | | | | | | {local-definiti\ | |||
\ons-supported}? | \ons-supported}? | |||
| | | | | +--rw local-definition | | | | | | +--rw local-definition | |||
| | | | | +--rw cert* | | | | | | +--rw algorithm | |||
| | | | | | trust-anch\ | | | | | | | iasa:asymm\ | |||
\or-cert-cms | \etric-algorithm-type | |||
| | | | | +--rw public-key-f\ | ||||
\ormat? | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-\ | ||||
\format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key\ | ||||
\-type) | ||||
| | | | | | +--:(private-ke\ | ||||
\y) | ||||
| | | | | | | +--rw privat\ | ||||
\e-key? | ||||
| | | | | | | bina\ | ||||
\ry | ||||
| | | | | | +--:(hidden-pri\ | ||||
\vate-key) | ||||
| | | | | | | +--rw hidden\ | ||||
\-private-key? | ||||
| | | | | | | empty | ||||
| | | | | | +--:(encrypted-\ | ||||
\private-key) | ||||
| | | | | | +--rw encryp\ | ||||
\ted-private-key | ||||
| | | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | | b\ | ||||
\inary | ||||
| | | | | +--rw cert? | ||||
| | | | | | end-entity\ | ||||
\-cert-cms | ||||
| | | | | +---n certificate-\ | | | | | | +---n certificate-\ | |||
\expiration | \expiration | |||
| | | | | +-- expiration-\ | | | | | | | +-- expiration-\ | |||
\date | \date | |||
| | | | | yang:da\ | | | | | | | yang:da\ | |||
\te-and-time | \te-and-time | |||
| | | | +--:(truststore) | | | | | | +---x generate-cer\ | |||
| | | | {truststore-sup\ | \tificate-signing-request | |||
\ported,x509-certificates}? | | | | | | +---w input | |||
| | | | +--rw truststore-refe\ | | | | | | | +---w subject | |||
\rence? | | | | | | | | bina\ | |||
| | | | ts:certificat\ | \ry | |||
\es-ref | | | | | | | +---w attrib\ | |||
| | | +--:(external) | \utes? | |||
| | | {external-client-auth-su\ | | | | | | | bina\ | |||
\ry | ||||
| | | | | +--ro output | ||||
| | | | | +--ro certif\ | ||||
\icate-signing-request | ||||
| | | | | bina\ | ||||
\ry | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | +--rw keystore-refere\ | ||||
\nce | ||||
| | | | +--rw asymmetric-k\ | ||||
\ey? | ||||
| | | | | ks:asymmet\ | ||||
\ric-key-ref | ||||
| | | | +--rw certificate?\ | ||||
\ leafref | ||||
| | | +--:(raw-private-key) | ||||
| | | | +--rw raw-private-key | ||||
| | | | {raw-public-key-auth}? | ||||
| | | | +--rw (local-or-keystore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw algorithm | ||||
| | | | | | iasa:asymm\ | ||||
\etric-algorithm-type | ||||
| | | | | +--rw public-key-f\ | ||||
\ormat? | ||||
| | | | | | identityref | ||||
| | | | | +--rw public-key | ||||
| | | | | | binary | ||||
| | | | | +--rw private-key-\ | ||||
\format? | ||||
| | | | | | identityref | ||||
| | | | | +--rw (private-key\ | ||||
\-type) | ||||
| | | | | +--:(private-ke\ | ||||
\y) | ||||
| | | | | | +--rw privat\ | ||||
\e-key? | ||||
| | | | | | bina\ | ||||
\ry | ||||
| | | | | +--:(hidden-pri\ | ||||
\vate-key) | ||||
| | | | | | +--rw hidden\ | ||||
\-private-key? | ||||
| | | | | | empty | ||||
| | | | | +--:(encrypted-\ | ||||
\private-key) | ||||
| | | | | +--rw encryp\ | ||||
\ted-private-key | ||||
| | | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | +--rw val\ | ||||
\ue? | ||||
| | | | | b\ | ||||
\inary | ||||
| | | | +--:(keystore) | ||||
| | | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | | +--rw keystore-refere\ | ||||
\nce? | ||||
| | | | ks:asymmetric\ | ||||
\-key-ref | ||||
| | | +--:(psk) | ||||
| | | +--rw psk {psk-auth}? | ||||
| | | +--rw (local-or-keystore) | ||||
| | | +--:(local) | ||||
| | | | {local-definiti\ | ||||
\ons-supported}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw algorithm | ||||
| | | | | isa:symmet\ | ||||
\ric-algorithm-type | ||||
| | | | +--rw key-format? | ||||
| | | | | identityref | ||||
| | | | +--rw (key-type) | ||||
| | | | +--:(key) | ||||
| | | | | +--rw key? | ||||
| | | | | bina\ | ||||
\ry | ||||
| | | | +--:(hidden-key) | ||||
| | | | | +--rw hidden\ | ||||
\-key? | ||||
| | | | | empty | ||||
| | | | +--:(encrypted-\ | ||||
\key) | ||||
| | | | +--rw encryp\ | ||||
\ted-key | ||||
| | | | +--rw (ke\ | ||||
\y-type) | ||||
| | | | | +--:(s\ | ||||
\ymmetric-key-ref) | ||||
| | | | | | +--\ | ||||
\rw symmetric-key-ref? leafref | ||||
| | | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | | +--:(a\ | ||||
\symmetric-key-ref) | ||||
| | | | | +--\ | ||||
\rw asymmetric-key-ref? leafref | ||||
| | | | | \ | ||||
\ {keystore-supported}? | ||||
| | | | +--rw val\ | ||||
\ue? | ||||
| | | | b\ | ||||
\inary | ||||
| | | +--:(keystore) | ||||
| | | {keystore-suppo\ | ||||
\rted}? | ||||
| | | +--rw keystore-refere\ | ||||
\nce? | ||||
| | | ks:symmetric-\ | ||||
\key-ref | ||||
| | +--rw client-authentication! | ||||
| | | {client-auth-config-supported}? | ||||
| | | +--rw ca-certs! | ||||
| | | | {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | \pported}? | |||
| | | +--rw client-auth-defined-else\ | | | | | | +--rw local-definition | |||
\where? | | | | | | +--rw cert* | |||
| | | empty | | | | | | | trust-anchor-cer\ | |||
\t-cms | ||||
| | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and\ | ||||
\-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported\ | ||||
\,x509-certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificates-ref | ||||
| | | +--rw client-certs! | ||||
| | | | {x509-certificate-auth}? | ||||
| | | | +--rw (local-or-truststore) | ||||
| | | | +--:(local) | ||||
| | | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | | +--rw local-definition | ||||
| | | | | +--rw cert* | ||||
| | | | | | trust-anchor-cer\ | ||||
\t-cms | ||||
| | | | | +---n certificate-expira\ | ||||
\tion | ||||
| | | | | +-- expiration-date | ||||
| | | | | yang:date-and\ | ||||
\-time | ||||
| | | | +--:(truststore) | ||||
| | | | {truststore-supported\ | ||||
\,x509-certificates}? | ||||
| | | | +--rw truststore-reference? | ||||
| | | | ts:certificates-ref | ||||
| | | +--rw raw-public-keys! | ||||
| | | {raw-public-key-auth}? | ||||
| | | +--rw (local-or-truststore) | ||||
| | | +--:(local) | ||||
| | | | {local-definitions-su\ | ||||
\pported}? | ||||
| | | | +--rw local-definition | ||||
| | | | +--rw raw-public-key* | ||||
| | | | [name] | ||||
| | | | +--rw name | ||||
| | | | | string | ||||
| | | | +--rw algorithm | ||||
| | | | | iasa:asymmetr\ | ||||
\ic-algorithm-type | ||||
| | | | +--rw public-key-form\ | ||||
\at? | ||||
| | | | | identityref | ||||
| | | | +--rw public-key | ||||
| | | | binary | ||||
| | | +--:(truststore) | ||||
| | | {truststore-supported\ | ||||
\,raw-public-keys}? | ||||
| | | +--rw truststore-reference? | ||||
| | | ts:raw-public-keys-\ | ||||
\ref | ||||
| | +--rw hello-params | | | +--rw hello-params | |||
| | | {tls-server-hello-params-config\ | | | | {tls-server-hello-params-config\ | |||
\}? | \}? | |||
| | | +--rw tls-versions | | | | +--rw tls-versions | |||
| | | | +--rw tls-version* identityref | | | | | +--rw tls-version* identityref | |||
| | | +--rw cipher-suites | | | | +--rw cipher-suites | |||
| | | +--rw cipher-suite* identityref | | | | +--rw cipher-suite* identityref | |||
| | +--rw keepalives! | | | +--rw keepalives! | |||
| | {tls-server-keepalives}? | | | {tls-server-keepalives}? | |||
| | +--rw max-wait? uint16 | | | +--rw max-wait? uint16 | |||
| | +--rw max-attempts? uint8 | | | +--rw max-attempts? uint8 | |||
| +--rw netconf-server-parameters | | +--rw netconf-server-parameters | |||
| +--rw client-identification | | +--rw client-identity-mappings | |||
| +--rw cert-maps | | {tls-listen or tls-call-home or\ | |||
| +--rw cert-to-name* [id] | \ sshcmn:ssh-x509-certs}? | |||
| +--rw id uint32 | | +--rw cert-to-name* [id] | |||
| +--rw fingerprint? | | +--rw id uint32 | |||
| | x509c2n:tls-fingerprint | | +--rw fingerprint? | |||
| +--rw map-type | | | x509c2n:tls-fingerprint | |||
| | identityref | | +--rw map-type identityref | |||
| +--rw name string | | +--rw name string | |||
+--rw connection-type | +--rw connection-type | |||
| +--rw (connection-type) | | +--rw (connection-type) | |||
| +--:(persistent-connection) | | +--:(persistent-connection) | |||
| | +--rw persistent! | | | +--rw persistent! | |||
| +--:(periodic-connection) | | +--:(periodic-connection) | |||
| +--rw periodic! | | +--rw periodic! | |||
| +--rw period? uint16 | | +--rw period? uint16 | |||
| +--rw anchor-time? yang:date-and-time | | +--rw anchor-time? yang:date-and-time | |||
| +--rw idle-timeout? uint16 | | +--rw idle-timeout? uint16 | |||
+--rw reconnect-strategy | +--rw reconnect-strategy | |||
skipping to change at page 82, line 13 ¶ | skipping to change at page 92, line 34 ¶ | |||
and the ietf-restconf-client grouping. | and the ietf-restconf-client grouping. | |||
B.16. 15 to 16 | B.16. 15 to 16 | |||
o Added refinement to make "cert-to-name/fingerprint" be mandatory | o Added refinement to make "cert-to-name/fingerprint" be mandatory | |||
false. | false. | |||
o Commented out refinement to "tls-server-grouping/client- | o Commented out refinement to "tls-server-grouping/client- | |||
authentication" until a better "must" expression is defined. | authentication" until a better "must" expression is defined. | |||
B.17. 16 to 17 | ||||
o Updated examples to include the "*-key-format" nodes. | ||||
o Updated examples to remove the "required" nodes. | ||||
o Updated examples to remove the "client-auth-defined-elsewhere" | ||||
nodes. | ||||
Acknowledgements | Acknowledgements | |||
The authors would like to thank for following for lively discussions | The authors would like to thank for following for lively discussions | |||
on list and in the halls (ordered by last name): Andy Bierman, Martin | on list and in the halls (ordered by last name): Andy Bierman, Martin | |||
Bjorklund, Benoit Claise, Ramkumar Dhanapal, Mehmet Ersue, Balazs | Bjorklund, Benoit Claise, Ramkumar Dhanapal, Mehmet Ersue, Balazs | |||
Kovacs, David Lamparter, Alan Luchuk, Ladislav Lhotka, Radek Krejci, | Kovacs, David Lamparter, Alan Luchuk, Ladislav Lhotka, Radek Krejci, | |||
Tom Petch, Juergen Schoenwaelder, Phil Shafer, Sean Turner, and Bert | Tom Petch, Juergen Schoenwaelder, Phil Shafer, Sean Turner, and Bert | |||
Wijnen. | Wijnen. | |||
Author's Address | Author's Address | |||
End of changes. 100 change blocks. | ||||
735 lines changed or deleted | 1285 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |