Skip to content

Commit 3bedaee

Browse files
Add documentation for preferred_key_agreement property (#963) (#967) (#970)
* Add documentation for `preferred_key_agreement` property (#963) * Refs #19921. Add new `preferred_key_agreement` property to auth plugin section. * Refs #19921. Add new `preferred_key_agreement` property to property policies section. * Refs #19921. Add new `preferred_key_agreement` property to snippets. * Refs #19921. Fix doc8. * Refs #22280. Apply suggestion. * Refs #19921. Add `AUTO` value to new option. --------- (cherry picked from commit 2f51e7c) * Change default value to `DH`. --------- (cherry picked from commit 949a673) Signed-off-by: Miguel Company <miguelcompany@eprosima.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
1 parent cef40fb commit 3bedaee

File tree

5 files changed

+25
-2
lines changed

5 files changed

+25
-2
lines changed

code/DDSCodeTester.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,9 @@ void dds_domain_examples()
588588
pqos.properties().properties().emplace_back(
589589
"dds.sec.auth.builtin.PKI-DH.password",
590590
"domainParticipantPassword");
591+
pqos.properties().properties().emplace_back(
592+
"dds.sec.auth.builtin.PKI-DH.preferred_key_agreement",
593+
"ECDH");
591594
//!--
592595
}
593596
{

code/XMLTester.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2641,6 +2641,10 @@
26412641
<name>dds.sec.auth.builtin.PKI-DH.password</name>
26422642
<value>domainParticipantPassword</value>
26432643
</property>
2644+
<property>
2645+
<name>dds.sec.auth.builtin.PKI-DH.preferred_key_agreement</name>
2646+
<value>ECDH</value>
2647+
</property>
26442648
</properties>
26452649
</propertiesPolicy>
26462650
</rtps>

docs/fastdds/library_overview/includes/functionalities.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ Security
4040
* Authentication of remote DomainParticipants.
4141
The **DDS:Auth:PKI-DH** plugin provides authentication using a trusted Certificate
4242
Authority (CA) and ECDSA Digital Signature Algorithms to perform the mutual authentication.
43-
It also establishes a shared secret using Elliptic Curve Diffie-Hellman (ECDH) Key Agreement protocol.
43+
It also establishes a shared secret using either Elliptic Curve Diffie-Hellman (ECDH) or MODP-2048 Diffie-Hellman (DH)
44+
as Key Agreement protocol.
4445
* Access control of entities.
4546
The **DDS:Access:Permissions** plugin provides access control to DomainParticipants at the DDS Domain and Topic level.
4647
* Encryption of data.

docs/fastdds/property_policies/security.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ The following table outlines the properties used for the :ref:`DDS\:Auth\:PKI-DH
4242
If the *password* property is not present, then the value supplied in the |br|
4343
*private_key* property must contain the decrypted private key. |br|
4444
The *password* property is ignored if the *private_key* is given in PKCS#11 scheme.
45+
* - ``preferred_key_agreement`` *(optional)*
46+
- The preferred algorithm to use for generating the session's shared secret |br|
47+
at the end of the authentication phase. Supported values are: |br|
48+
a) ``DH``, ``DH+MODP-2048-256`` for Diffie-Hellman Ephemeral with 2048-bit MODP Group parameters. |br|
49+
b) ``ECDH``, ``ECDH+prime256v1-CEUM`` for Elliptic Curve Diffie-Hellman Ephemeral with the NIST P-256 curve. |br|
50+
c) ``AUTO`` for selecting the key agreement based on the signature algorithm in the Identity CA's certificate. |br|
51+
Will default to ``DH`` if the property is not present.
4552

4653
.. note::
4754
All properties listed above have the ``dds.sec.auth.builtin.PKI-DH."`` prefix.

docs/fastdds/security/auth_plugin/auth_plugin.rst

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ The authentication plugin implemented in Fast DDS is referred to as "DDS:\Auth\:
2424
`DDS Security <https://www.omg.org/spec/DDS-SECURITY/1.1/>`_ specification.
2525
The DDS:\Auth\:PKI-DH plugin uses a trusted *Certificate Authority* (CA) and the ECDSA
2626
Digital Signature Algorithms to perform the mutual authentication.
27-
It also establishes a shared secret using Elliptic Curve Diffie-Hellman (ECDH) Key Agreement Methods.
27+
It also establishes a shared secret using either Elliptic Curve Diffie-Hellman (ECDH) or MODP-2048 Diffie-Hellman (DH)
28+
as Key Agreement protocol.
2829
This shared secret can be used by other security plugins as :ref:`crypto-aes-gcm-gmac`.
2930

3031
The DDS:\Auth\:PKI-DH authentication plugin, can be activated setting the |DomainParticipantQos|
@@ -56,6 +57,13 @@ The following table outlines the properties used for the DDS:\Auth\:PKI-DH plugi
5657
If the *password* property is not present, then the value supplied in the |br|
5758
*private_key* property must contain the decrypted private key. |br|
5859
The *password* property is ignored if the *private_key* is given in PKCS#11 scheme.
60+
* - preferred_key_agreement *(optional)*
61+
- The preferred algorithm to use for generating the session's shared secret |br|
62+
at the end of the authentication phase. Supported values are: |br|
63+
a) ``DH``, ``DH+MODP-2048-256`` for Diffie-Hellman Ephemeral with 2048-bit MODP Group parameters. |br|
64+
b) ``ECDH``, ``ECDH+prime256v1-CEUM`` for Elliptic Curve Diffie-Hellman Ephemeral with the NIST P-256 curve. |br|
65+
c) ``AUTO`` for selecting the key agreement based on the signature algorithm in the Identity CA's certificate. |br|
66+
Will default to ``DH`` if the property is not present.
5967

6068
.. note::
6169
All listed properties have "dds.sec.auth.builtin.PKI-DH." prefix.

0 commit comments

Comments
 (0)