}
}
+ grouping private-keys {
+ list private-key {
+ key name;
+ description "A private key.";
+ leaf name {
+ type string;
+ }
+ leaf data {
+ description "Base64 encoded private key.";
+ type string;
+ }
+ leaf-list certificate-chain {
+ description "A certificate chain for this public key. Each certificate is an X.509 v3 certificate
+ structure as specified by RFC5280, encoded using the Base64 format.";
+ type string;
+ }
+ }
+ }
+
+ grouping trusted-certificates {
+ list trusted-certificate {
+ key name;
+ description "A list of trusted certificate. These cerfitifcates can be used by a server to
+ authenticate clients, or by clients to authenticate servers.";
+ leaf name {
+ type string;
+ }
+ leaf certificate {
+ description "An X.509 v3 certificate structure as specified by RFC5280, encoded using
+ the Base64 format.";
+ type string;
+ }
+ }
+ }
+
container keystore {
uses keystore-entry;
+ uses private-keys;
+ uses trusted-certificates;
}
rpc add-keystore-entry {
}
}
}
+
+ rpc add-private-key {
+ description "Add a list of private keys into the keystore.";
+ input {
+ uses private-keys;
+ }
+ }
+
+ rpc remove-private-key {
+ description "Remove a list of private keys from the datastore.";
+ input {
+ leaf-list name {
+ type string;
+ }
+ }
+ }
+
+ rpc add-trusted-certificate {
+ description "Add a list of trusted certificates into the keystore.";
+ input {
+ uses trusted-certificates;
+ }
+ }
+
+ rpc remove-trusted-certificate {
+ description "Remove a list of trusted certificates from the datastore.";
+ input {
+ leaf-list name {
+ type string;
+ }
+ }
+ }
}
\ No newline at end of file