<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:15:08 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[NETCONF-476] NetConf SBP uses global privatekey for all connections</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-476</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;Problem:&lt;br/&gt;
Current implementation of NetConf south bound plugin uses single instance of kaypair for all connected netconf devices. User is able to set username/password per netconf device, but connection key is shared for all connections.&lt;/p&gt;

&lt;p&gt;Solution:&lt;br/&gt;
When new netconf device configuration is created via in data store in netconf topology, this configuration must contain the username/password or keypair for the device. &lt;/p&gt;

&lt;p&gt;What needs to be done:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;netconf model (device configuration) must be adapted in order to contain username/password or keypair in base64 format&lt;/li&gt;
	&lt;li&gt;org.opendaylight.netconf.topology.AbstractNetconfTopology&lt;/li&gt;
	&lt;li&gt;privateKeyPath and privateKeyPassphrase must be removed (also from blueprint and configuration)&lt;/li&gt;
	&lt;li&gt;method getClientConfig must be adapted accordingly&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="21489">NETCONF-476</key>
            <summary>NetConf SBP uses global privatekey for all connections</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="tcere">Tomas Cere</assignee>
                                    <reporter username="juraj.veverka@pantheon.tech">Juraj Veverka</reporter>
                        <labels>
                    </labels>
                <created>Tue, 10 Oct 2017 11:23:22 +0000</created>
                <updated>Fri, 9 Jul 2021 13:30:33 +0000</updated>
                            <resolved>Fri, 9 Jul 2021 13:30:33 +0000</resolved>
                                                                    <component>netconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="40228" author="tcere" created="Thu, 12 Oct 2017 13:58:06 +0000"  >&lt;p&gt;I think the reason it was implemented like this was to prevent anybody being able to read the keypair from the datastore.&lt;br/&gt;
However we should be able to create a store for the key-pairs which would be encrypted via AAA&apos;s EncryptionService.&lt;br/&gt;
So it would look something liek this:&lt;br/&gt;
1. credentials store - restconf crud rpc&apos;s to store/remove key pairs, which would be encrypted inside the datastore&lt;br/&gt;
2. when the southbound plugin needs to retrieve these, they would be decrypted via the EncryptionService&lt;br/&gt;
3. each key pair would have its own unique credentialsId&lt;br/&gt;
4. when user adda a new device with key-pair authentication only the credentialsId would needed to be specified.&lt;/p&gt;

&lt;p&gt;The netconf model will need to be updated, we will need to prevent breaking api changes for now so we need to keep the&lt;br/&gt;
old way credentials were configured, with the new cases being wrapped in a container to allow us to also specify whether we want&lt;br/&gt;
encrypted username/pw.&lt;/p&gt;

&lt;p&gt;The new model would look like this:&lt;br/&gt;
grouping netconf-node-credentials {&lt;br/&gt;
	choice credentials {&lt;br/&gt;
		config true;&lt;br/&gt;
		case login-password-deprecated {&lt;br/&gt;
			status deprecated;&lt;br/&gt;
			leaf username &lt;/p&gt;
{
				type string;
			}&lt;br/&gt;
&lt;br/&gt;
			leaf password {				type string;			}
&lt;p&gt;		}&lt;br/&gt;
		case login-password {&lt;br/&gt;
			container login-password {&lt;br/&gt;
				leaf username &lt;/p&gt;
{
					type string;
				}&lt;br/&gt;
&lt;br/&gt;
				leaf password {					type string;				}
&lt;p&gt;			}&lt;br/&gt;
		}&lt;br/&gt;
		case login-password-unencrypted {&lt;br/&gt;
			container login-password-unencrypted {&lt;br/&gt;
				leaf username &lt;/p&gt;
{
					type string;
				}&lt;br/&gt;
&lt;br/&gt;
				leaf password {					type string;				}
&lt;p&gt;			}&lt;br/&gt;
		}&lt;br/&gt;
		case key-based {&lt;br/&gt;
			container key-pair {&lt;br/&gt;
				leaf pair-id &lt;/p&gt;
{
					type string;
				}
&lt;p&gt;			}&lt;br/&gt;
		}&lt;br/&gt;
	}&lt;br/&gt;
}&lt;/p&gt;</comment>
                            <comment id="59765" author="tcere" created="Tue, 24 Oct 2017 12:45:08 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/q/topic:keyauth-refactor&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/q/topic:keyauth-refactor&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9261</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=9261]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i01yrz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>