Refresh IETF client/server models
[netconf.git] / transport / transport-ssh / src / main / yang / ietf-ssh-client@2023-12-28.yang
similarity index 87%
rename from transport/transport-ssh/src/main/yang/ietf-ssh-client@2023-04-17.yang
rename to transport/transport-ssh/src/main/yang/ietf-ssh-client@2023-12-28.yang
index 77c3ea52fc6aacf27ade42637840c5ebe6cc9ada..afe7ac1ab938534cb6ba90018396df7f97d78e65 100644 (file)
@@ -66,7 +66,7 @@ module ietf-ssh-client {
      (RFC 8174) when, and only when, they appear in all
      capitals, as shown here.";
 
-  revision 2023-04-17 {
+  revision 2023-12-28 {
     description
       "Initial version";
     reference
@@ -85,9 +85,8 @@ module ietf-ssh-client {
     description
       "Indicates that the 'publickey' authentication type, per
        RFC 4252, is supported for client identification.
-
        The 'publickey' authentication type is required by
-       RFC 4252, but common implementations enable it to
+       RFC 4252, but common implementations allow it to
        be disabled.";
     reference
       "RFC 4252:
@@ -115,7 +114,8 @@ module ietf-ssh-client {
   feature client-ident-none {
     description
       "Indicates that the 'none' authentication type, per
-       RFC 4252, is supported for client identification.";
+       RFC 4252, is supported for client identification.
+       It is NOT RECOMMENDED to enable this feature.";
     reference
       "RFC 4252:
         The Secure Shell (SSH) Authentication Protocol";
@@ -169,12 +169,14 @@ module ietf-ssh-client {
           "RFC CCCC: A YANG Data Model for a Keystore";
         uses ks:inline-or-keystore-asymmetric-key-grouping {
           refine "inline-or-keystore/inline/inline-definition" {
-            must 'derived-from-or-self(public-key-format,'
-               + ' "ct:ssh-public-key-format")';
+            must 'not(public-key-format) or derived-from-or-self'
+               + '(public-key-format, "ct:ssh-public-key-format")';
           }
-          refine "inline-or-keystore/keystore/keystore-reference" {
-            must 'derived-from-or-self(deref(.)/../ks:public-key-'
-               + 'format, "ct:ssh-public-key-format")';
+          refine "inline-or-keystore/central-keystore/"
+               + "central-keystore-reference" {
+            must 'not(deref(.)/../ks:public-key-format) or derived-'
+               + 'from-or-self(deref(.)/../ks:public-key-format, '
+               + '"ct:ssh-public-key-format")';
           }
         }
       }
@@ -203,12 +205,14 @@ module ietf-ssh-client {
           "RFC CCCC: A YANG Data Model for a Keystore";
         uses ks:inline-or-keystore-asymmetric-key-grouping {
           refine "inline-or-keystore/inline/inline-definition" {
-            must 'derived-from-or-self(public-key-format,'
-               + ' "ct:ssh-public-key-format")';
+            must 'not(public-key-format) or derived-from-or-self('
+               + 'public-key-format, "ct:ssh-public-key-format")';
           }
-          refine "inline-or-keystore/keystore/keystore-reference" {
-            must 'derived-from-or-self(deref(.)/../ks:public-key-'
-               + 'format, "ct:ssh-public-key-format")';
+          refine "inline-or-keystore/central-keystore/"
+               + "central-keystore-reference" {
+            must 'not(deref(.)/../ks:public-key-format) or derived-'
+               + 'from-or-self(deref(.)/../ks:public-key-format, '
+               + '"ct:ssh-public-key-format")';
           }
         }
       }
@@ -234,13 +238,15 @@ module ietf-ssh-client {
         uses
           ks:inline-or-keystore-end-entity-cert-with-key-grouping {
           refine "inline-or-keystore/inline/inline-definition" {
-            must 'derived-from-or-self(public-key-format,'
-               + ' "ct:subject-public-key-info-format")';
+            must 'not(public-key-format) or derived-from-or-self('
+               + 'public-key-format, "ct:subject-public-key-info-'
+               + 'format")';
           }
-          refine "inline-or-keystore/keystore/keystore-reference"
-               + "/asymmetric-key" {
-            must 'derived-from-or-self(deref(.)/../ks:public-key-'
-               + 'format, "ct:subject-public-key-info-format")';
+          refine "inline-or-keystore/central-keystore/"
+               + "central-keystore-reference/asymmetric-key" {
+            must 'not(deref(.)/../ks:public-key-format) or derived-'
+               + 'from-or-self(deref(.)/../ks:public-key-format, '
+               + '"ct:subject-public-key-info-format")';
           }
         }
       }
@@ -272,8 +278,8 @@ module ietf-ssh-client {
             must 'derived-from-or-self(public-key-format,'
                + ' "ct:ssh-public-key-format")';
           }
-          refine
-            "inline-or-truststore/truststore/truststore-reference" {
+          refine "inline-or-truststore/central-truststore/"
+               + "central-truststore-reference" {
             must 'not(deref(.)/../ts:public-key/ts:public-key-'
                + 'format[not(derived-from-or-self(., "ct:ssh-'
                + 'public-key-format"))])';
@@ -329,7 +335,7 @@ module ietf-ssh-client {
       description
         "Configures the keep-alive policy, to proactively test
          the aliveness of the SSH server.  An unresponsive SSH
-         server is dropped after approximately max-wait *
+         server is dropped after approximately max-wait * 
          max-attempts seconds.  Per Section 4 of RFC 4254,
          the SSH client SHOULD send an SSH_MSG_GLOBAL_REQUEST
          message with a purposely nonexistent 'request name'