Cisco-IOS-XR-um-crypto-cfg

This module contains a collection of YANG definitions for Cisco IOS-XR crypto package configuration. This YANG module augments ...

  • Version: 2021-04-02

    Cisco-IOS-XR-um-crypto-cfg@2021-04-02


    
      module Cisco-IOS-XR-um-crypto-cfg {
    
        yang-version 1;
    
        namespace
          "http://cisco.com/ns/yang/Cisco-IOS-XR-um-crypto-cfg";
    
        prefix um-crypto-cfg;
    
        import Cisco-IOS-XR-types {
          prefix xr;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import Cisco-IOS-XR-um-snmp-server-cfg {
          prefix a1;
        }
        import cisco-semver {
          prefix semver;
        }
    
        organization "Cisco Systems, Inc.";
    
        contact
          "Cisco Systems, Inc.
         Customer Service
         
         Postal: 170 West Tasman Drive
         San Jose, CA 95134
         
         Tel: +1 800 553-NETS
         
         E-mail: cs-yang@cisco.com";
    
        description
          "This module contains a collection of YANG definitions
         for Cisco IOS-XR crypto package configuration.
         
         This YANG module augments the
         modules with configuration data.
         
         Copyright (c) 2021 by Cisco Systems, Inc.
         All rights reserved.";
    
        revision "2021-04-02" {
          description "Initial release";
        }
    
        semver:module-version "1.0.0";
    
        container crypto {
          description
            "Global Crypto configuration command";
          container ca {
            description
              "Certification authority";
            container trustpoint {
              description
                "  Config a trustpoint";
              container system-trustpoint {
                presence
                  "Indicates a system-trustpoint node is configured.";
                description
                  "Default System trustpoint";
                leaf description {
                  type string {
                    length "1..80";
                  }
                  description
                    "Description for the trustpoint";
                }
    
                container enrollment {
                  description
                    "Enrollment parameters";
                  container retry {
                    description
                      "Polling parameters";
                    leaf count {
                      type uint32 {
                        range "1..100";
                      }
                      description
                        "How many times to poll CA for our certificate";
                    }
    
                    leaf period {
                      type uint32 {
                        range "1..60";
                      }
                      description
                        "How long to wait between requests to CA for our certificate";
                    }
                  }  // container retry
    
                  leaf url {
                    type string {
                      length "1..800";
                    }
                    description
                      "CA server enrollment URL";
                  }
    
                  container terminal {
                    must "not(../self)";
                    presence
                      "Indicates a terminal node is configured.";
                    description
                      "Enroll via the terminal (cut-and-paste)";
                  }  // container terminal
    
                  container self {
                    must "not(../terminal)";
                    presence
                      "Indicates a self node is configured.";
                    description
                      "Enroll self create self signed CA cert and the router cert signed using the same";
                  }  // container self
                }  // container enrollment
    
                container sftp-password {
                  description
                    "Secure FTP password";
                  leaf password {
                    type xr:Proprietary-password;
                    description
                      "Enter password in encrypted form";
                  }
                }  // container sftp-password
    
                leaf sftp-username {
                  type xr:Cisco-ios-xr-string {
                    length "1..800";
                  }
                  description
                    "Secure FTP username";
                }
    
                leaf rsakeypair {
                  type xr:Cisco-ios-xr-string {
                    length "1..800";
                  }
                  description "RSA key pair";
                }
    
                container ca-keypair {
                  description
                    "Self enrollment, key pair ca cert";
                  leaf rsa {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../ecdsanistp256 or ../ecdsanistp384
                     or ../ecdsanistp521 or ../dsa
                     or ../ed25519)";
                    description
                      "Self enrollment, rsa key pair";
                  }
    
                  leaf ecdsanistp256 {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp384
                     or ../ecdsanistp521 or ../dsa
                     or ../ed25519)";
                    description
                      "Self enrollment, ecdsa key pair";
                  }
    
                  leaf ecdsanistp384 {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp256
                     or ../ecdsanistp521 or ../dsa
                     or ../ed25519)";
                    description
                      "Self enrollment, ecdsa key pair";
                  }
    
                  leaf ecdsanistp521 {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp256
                     or ../ecdsanistp384 or ../dsa
                     or ../ed25519)";
                    description
                      "Self enrollment, ecdsa key pair";
                  }
    
                  leaf dsa {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp256
                     or ../ecdsanistp384 or ../ecdsanistp521
                     or ../ed25519)";
                    description
                      "Self enrollment, dsa key pair label";
                  }
    
                  leaf ed25519 {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp256
                     or ../ecdsanistp384 or ../ecdsanistp521
                     or ../dsa)";
                    description
                      "ed25519 key pair label";
                  }
                }  // container ca-keypair
    
                container keypair {
                  description
                    "key pair for router/leaf cert";
                  leaf rsa {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../ecdsanistp256 or ../ecdsanistp384
                     or ../ecdsanistp521 or ../dsa
                     or ../ed25519)";
                    description "Rsa key pair";
                  }
    
                  leaf ecdsanistp256 {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp384
                     or ../ecdsanistp521 or ../dsa
                     or ../ed25519)";
                    description "Ecdsa key pair";
                  }
    
                  leaf ecdsanistp384 {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp256
                     or ../ecdsanistp521 or ../dsa
                     or ../ed25519)";
                    description
                      "Self enrollment, ecdsa key pair";
                  }
    
                  leaf ecdsanistp521 {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp256
                     or ../ecdsanistp384 or ../dsa
                     or ../ed25519)";
                    description
                      "Self enrollment, ecdsa key pair";
                  }
    
                  leaf dsa {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp256
                     or ../ecdsanistp384 or ../ecdsanistp521
                     or ../ed25519)";
                    description
                      "Dsa key pair label";
                  }
    
                  leaf ed25519 {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    must
                      "not(../rsa or ../ecdsanistp256
                     or ../ecdsanistp384 or ../ecdsanistp521
                     or ../dsa)";
                    description
                      "ed25519 key pair label";
                  }
                }  // container keypair
    
                container crl {
                  description "CRL options";
                  container optional {
                    presence
                      "Indicates a optional node is configured.";
                    description
                      "CRL verification as optional";
                  }  // container optional
                }  // container crl
    
                container query {
                  description "Query parameters";
                  leaf url {
                    type string {
                      length "1..800";
                    }
                    description
                      "CA server query URL";
                  }
                }  // container query
    
                container ip-address {
                  description
                    "include ip address";
                  leaf ipv4-address {
                    type inet:ipv4-address-no-zone;
                    must "not(../none)";
                    description "ip address";
                  }
    
                  container none {
                    must "not(../ipv4-address)";
                    presence
                      "Indicates a none node is configured.";
                    description
                      "do not include ip address";
                  }  // container none
                }  // container ip-address
    
                container subject-name {
                  description "Subject Name";
                  leaf ca-certificate {
                    type string {
                      length "1..800";
                    }
                    description
                      "Ca Certificate subject name for self enrollment";
                  }
                }  // container subject-name
    
                container serial-number {
                  description
                    "include serial number";
                  container none {
                    presence
                      "Indicates a none node is configured.";
                    description
                      "do not include serial number";
                  }  // container none
                }  // container serial-number
    
                leaf vrf {
                  type xr:Cisco-ios-xr-string {
                    length "1..32";
                  }
                  description
                    "Source interface VRF ";
                }
    
                container lifetime {
                  description
                    "lifetime for certificate valid for self enrollment";
                  leaf ca-certificate {
                    type uint32 {
                      range "30..5475";
                    }
                    description
                      "lifetime for ca-certificate valid for self enrollemnt";
                  }
    
                  leaf certificate {
                    type uint32 {
                      range "30..5474";
                    }
                    description
                      "lifetime for ertificate valid for self enrollemnt";
                  }
                }  // container lifetime
    
                container key-usage {
                  description
                    "key usage field for the certificate self enrollment";
                  container ca-certificate {
                    presence
                      "Indicates a ca-certificate node is configured.";
                    description
                      "key usage field for the CA certificate";
                    leaf digitalsignature {
                      type boolean;
                      mandatory true;
                      description
                        "Key usage field as digital-signature for CA certificate";
                    }
    
                    leaf keycertsign {
                      type boolean;
                      mandatory true;
                      description
                        "Key usage field as key-certsign for CA certificate";
                    }
    
                    leaf crlsign {
                      type boolean;
                      mandatory true;
                      description
                        "Key usage field as crl-sign for CA certificate";
                    }
    
                    leaf nonrepudiation {
                      type boolean;
                      mandatory true;
                      description
                        "Key usage field as non-repudiation for CA certificate";
                    }
                  }  // container ca-certificate
    
                  container certificate {
                    must
                      "digitalsignature or keyagreement or nonrepudiation or dataencipherment or keyencipherment";
                    presence
                      "Indicates a certificate node is configured.";
                    description
                      "key usage field for the leaf certificates";
                    container digitalsignature {
                      presence
                        "Indicates a digitalsignature node is configured.";
                      description
                        "Key usage field as digital-signature for certificate";
                    }  // container digitalsignature
    
                    container keyagreement {
                      presence
                        "Indicates a keyagreement node is configured.";
                      description
                        "Key usage field as key-agreement for certificate";
                    }  // container keyagreement
    
                    container nonrepudiation {
                      presence
                        "Indicates a nonrepudiation node is configured.";
                      description
                        "Key usage field as non-repudiation for certificate";
                    }  // container nonrepudiation
    
                    container dataencipherment {
                      presence
                        "Indicates a dataencipherment node is configured.";
                      description
                        "Key usage field as data-encipherment for certificate";
                    }  // container dataencipherment
    
                    container keyencipherment {
                      presence
                        "Indicates a keyencipherment node is configured.";
                      description
                        "Key usage field as key-encipherment for certificate";
                    }  // container keyencipherment
                  }  // container certificate
                }  // container key-usage
    
                leaf message-digest {
                  type enumeration {
                    enum "md5" {
                      value 1;
                      description
                        "md5 algorithm for message digest.(1)";
                    }
                    enum "sha1" {
                      value 2;
                      description
                        "sha1 algorithm for message digest.(2)";
                    }
                    enum "sha256" {
                      value 3;
                      description
                        "sha256 algorithm for message digest.(3)";
                    }
                    enum "sha384" {
                      value 4;
                      description
                        "sha384 algorithm for message digest.(4)";
                    }
                    enum "sha512" {
                      value 5;
                      description
                        "sha384 algorithm for message digest.(5)";
                    }
                  }
                  description
                    "Certificate message digesti self enrollment";
                }
              }  // container system-trustpoint
    
              container trustpoints {
                description
                  "Config a trustpoint";
                list trustpoint {
                  key "trustpoint-name";
                  description "Trustpoint";
                  leaf trustpoint-name {
                    type xr:Cisco-ios-xr-string {
                      length "1..1024";
                    }
                    description
                      "Trustpoint Name";
                  }
    
                  leaf description {
                    type string {
                      length "1..80";
                    }
                    description
                      "Description for the trustpoint";
                  }
    
                  container enrollment {
                    description
                      "Enrollment parameters";
                    container retry {
                      description
                        "Polling parameters";
                      leaf count {
                        type uint32 {
                          range "1..100";
                        }
                        description
                          "How many times to poll CA for our certificate";
                      }
    
                      leaf period {
                        type uint32 {
                          range "1..60";
                        }
                        description
                          "How long to wait between requests to CA for our certificate";
                      }
                    }  // container retry
    
                    leaf url {
                      type string {
                        length "1..800";
                      }
                      description
                        "CA server enrollment URL";
                    }
    
                    container terminal {
                      presence
                        "Indicates a terminal node is configured.";
                      description
                        "Enroll via the terminal (cut-and-paste)";
                    }  // container terminal
                  }  // container enrollment
    
                  container sftp-password {
                    description
                      "Secure FTP password";
                    leaf password {
                      type xr:Proprietary-password;
                      description
                        "Enter password in encrypted form";
                    }
                  }  // container sftp-password
    
                  leaf sftp-username {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    description
                      "Secure FTP username";
                  }
    
                  leaf rsakeypair {
                    type xr:Cisco-ios-xr-string {
                      length "1..800";
                    }
                    description "RSA key pair";
                  }
    
                  container crl {
                    description "CRL options";
                    container optional {
                      presence
                        "Indicates a optional node is configured.";
                      description
                        "CRL verification as optional";
                    }  // container optional
                  }  // container crl
    
                  container query {
                    description
                      "Query parameters";
                    leaf url {
                      type string {
                        length "1..800";
                      }
                      description
                        "CA server query URL";
                    }
                  }  // container query
    
                  container ip-address {
                    description
                      "include ip address";
                    leaf ipv4-address {
                      type inet:ipv4-address-no-zone;
                      must "not(../none)";
                      description "ip address";
                    }
    
                    container none {
                      must
                        "not(../ipv4-address)";
                      presence
                        "Indicates a none node is configured.";
                      description
                        "do not include ip address";
                    }  // container none
                  }  // container ip-address
    
                  container subject-name {
                    description "Subject Name";
                    leaf ca-certificate {
                      type string {
                        length "1..800";
                      }
                      description
                        "Ca Certificate subject name for self enrollment";
                    }
                  }  // container subject-name
    
                  container serial-number {
                    description
                      "include serial number";
                    container none {
                      presence
                        "Indicates a none node is configured.";
                      description
                        "do not include serial number";
                    }  // container none
                  }  // container serial-number
    
                  leaf vrf {
                    type xr:Cisco-ios-xr-string {
                      length "1..32";
                    }
                    description
                      "Source interface VRF ";
                  }
                }  // list trustpoint
              }  // container trustpoints
            }  // container trustpoint
    
            leaf http-proxy {
              type xr:Cisco-ios-xr-string {
                length "1..64";
              }
              must "../port";
              description
                "Specify proxy server for http request";
            }
    
            leaf port {
              type uint32 {
                range "1..65535";
              }
              must "../http-proxy";
              description
                "proxy server port number";
            }
    
            container source-interface {
              description
                "Cisco source-interface name";
              leaf ipv4 {
                type xr:Interface-name;
                must "not(../ipv6)";
                description
                  "Choose Ipv4 address from interface";
              }
    
              leaf ipv6 {
                type xr:Interface-name;
                must "not(../ipv4)";
                description
                  "Choose Ipv6 address from interface";
              }
            }  // container source-interface
    
            container trustpool {
              description "  Config a trustpool";
              container policy {
                presence
                  "Indicates a policy node is configured.";
                description
                  " Config a trustpool policy";
                leaf description {
                  type string {
                    length "1..80";
                  }
                  description
                    "Description for the trustpoint";
                }
    
                container cabundle {
                  description
                    "certificate bundle";
                  leaf url {
                    type string {
                      length "1..800";
                    }
                    description
                      "CA bundle download parameters";
                  }
                }  // container cabundle
    
                container crl {
                  description "CRL options";
                  container optional {
                    presence
                      "Indicates a optional node is configured.";
                    description
                      "CRL verification as optional";
                  }  // container optional
                }  // container crl
    
                leaf vrf {
                  type string {
                    length "1..32";
                  }
                  description "Cisco vrf name";
                }
              }  // container policy
            }  // container trustpool
          }  // container ca
    
          container fips-mode {
            presence
              "Indicates a fips-mode node is configured.";
            description "Enable FIPS mode";
          }  // container fips-mode
        }  // container crypto
      }  // module Cisco-IOS-XR-um-crypto-cfg
    

© 2023 YumaWorks, Inc. All rights reserved.