Skip to contentSkip to conversation

crypto: mark unused ciphers as obsolete

PATCH In review Ard Biesheuvel 4 participants 6 messages Sep 11, 2020 – Sep 18, 2020

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 crypto: mark unused ciphers as obsolete

We have a few interesting pieces in our cipher museum, which are never used internally, and were only ever provided as generic C implementations.

Unfortunately, we cannot simply remove this code, as we cannot be sure that it is not being used via the AF_ALG socket API, however unlikely.

So let's mark the Anubis, Khazad, SEED and TEA algorithms as obsolete, which means they can only be enabled in the build if the socket API is enabled in the first place.

---
Hopefully, I will be able to convince the distro kernel maintainers to disable CRYPTO_USER_API_ENABLE_OBSOLETE in their v5.10+ builds once the iwd changes for arc4 make it downstream (Debian already has an updated version in its unstable distro). With the joint coverage of their QA, we should be able to confirm that these algos are never used, and actually remove them altogether.

 crypto/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)
crypto/Kconfig +4 -0
index e85d8a059489..fac10143d23f 100644
@@ -1185,6 +1185,7 @@ config CRYPTO_AES_PPC_SPE
 
 config CRYPTO_ANUBIS
 	tristate "Anubis cipher algorithm"
+	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 	select CRYPTO_ALGAPI
 	help
 	  Anubis cipher algorithm.
@@ -1424,6 +1425,7 @@ config CRYPTO_FCRYPT
 
 config CRYPTO_KHAZAD
 	tristate "Khazad cipher algorithm"
+	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 	select CRYPTO_ALGAPI
 	help
 	  Khazad cipher algorithm.
@@ -1487,6 +1489,7 @@ config CRYPTO_CHACHA_MIPS
 
 config CRYPTO_SEED
 	tristate "SEED cipher algorithm"
+	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 	select CRYPTO_ALGAPI
 	help
 	  SEED cipher algorithm (RFC4269).
@@ -1613,6 +1616,7 @@ config CRYPTO_SM4
 
 config CRYPTO_TEA
 	tristate "TEA, XTEA and XETA cipher algorithms"
+	depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 	select CRYPTO_ALGAPI
 	help
 	  TEA cipher algorithm.
Signature · 1 line
2.17.1
#1 lore raw
Quoted 7 lines

-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Ard Biesheuvel
Sent: Friday, September 11, 2020 4:11 PM
To: [email protected]
Cc: [email protected]; [email protected]; Ard Biesheuvel <[email protected]>
Subject: [PATCH] crypto: mark unused ciphers as obsolete

Quoted 8 lines

<<< External Email >>>
We have a few interesting pieces in our cipher museum, which are never used internally, and were only ever provided as generic C implementations.

Unfortunately, we cannot simply remove this code, as we cannot be sure that it is not being used via the AF_ALG socket API, however unlikely. So let's mark the Anubis, Khazad, SEED and TEA algorithms as obsolete,

Wouldn't the IKE deamon be able to utilize these algorithms through the XFRM API? I'm by no means an expert on the subject, but it looks like the cipher template is provided there directly via XFRM, so it does not need to live in the kernel source. And I know for a fact that SEED is being used for IPsec (and TLS) in Korea.

The point being, there are more users to consider beyond "internal" (meaning hard coded in the kernel source in this context?) and AF_ALG.

I'm not aware of any real use cases for Anubis, Khazad and TEA though.

Quoted 52 lines

which means they can only be enabled in the build if the socket API is enabled in the first place.

---
Hopefully, I will be able to convince the distro kernel maintainers to disable CRYPTO_USER_API_ENABLE_OBSOLETE in their v5.10+ builds once the iwd changes for arc4 make it downstream (Debian already has an updated version in its unstable distro). With the joint coverage of their QA, we should be able to confirm that these algos are never used, and actually remove them altogether.

 crypto/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)
crypto/Kconfig +4 -1
index e85d8a059489..fac10143d23f 100644
@@ -1185,6 +1185,7 @@ config CRYPTO_AES_PPC_SPE
 
 config CRYPTO_ANUBIS
 tristate "Anubis cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   Anubis cipher algorithm.
@@ -1424,6 +1425,7 @@ config CRYPTO_FCRYPT
 
 config CRYPTO_KHAZAD
 tristate "Khazad cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   Khazad cipher algorithm.
@@ -1487,6 +1489,7 @@ config CRYPTO_CHACHA_MIPS
 
 config CRYPTO_SEED
 tristate "SEED cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   SEED cipher algorithm (RFC4269).
@@ -1613,6 +1616,7 @@ config CRYPTO_SM4
 
 config CRYPTO_TEA
 tristate "TEA, XTEA and XETA cipher algorithms"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   TEA cipher algorithm.
--
Quoted 1 line

2.17.1

Regards,
Pascal van Leeuwen
Silicon IP Architect Multi-Protocol Engines, Rambus Security Rambus ROTW Holding BV
+31-73 6581953

Note: The Inside Secure/Verimatrix Silicon IP team was recently acquired by Rambus. Please be so kind to update your e-mail address book with my new e-mail address.

** This message and any attachments are for the sole use of the intended recipient(s). It may contain information that is confidential and privileged. If you are not the intended recipient of this message, you are prohibited from printing, copying, forwarding or saving it. Please delete the message and attachments and notify the sender immediately. **

Rambus Inc.<http://www.rambus.com>

#2 lore raw

(cc Milan and dm-devel)

Quoted 12 lines · Pascal
Quoted 12 lines

-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Ard Biesheuvel
Sent: Friday, September 11, 2020 4:11 PM
To: [email protected]
Cc: [email protected]; [email protected]; Ard Biesheuvel <[email protected]>
Subject: [PATCH] crypto: mark unused ciphers as obsolete

<<< External Email >>>
We have a few interesting pieces in our cipher museum, which are never used internally, and were only ever provided as generic C implementations.

Quoted 9 lines
Quoted 4 lines

Unfortunately, we cannot simply remove this code, as we cannot be sure that it is not being used via the AF_ALG socket API, however unlikely. So let's mark the Anubis, Khazad, SEED and TEA algorithms as obsolete,

Wouldn't the IKE deamon be able to utilize these algorithms through the XFRM API? I'm by no means an expert on the subject, but it looks like the cipher template is provided there directly via XFRM, so it does not need to live in the kernel source. And I know for a fact that SEED is being used for IPsec (and TLS) in Korea.

I have been staring at net/xfrm/xfrm_algo.c, and as far as I can tell, algorithms have to be mentioned there in order to be usable. None of the ciphers that this patch touches are listed there or anywhere else in the kernel.

Quoted 3 lines

The point being, there are more users to consider beyond "internal" (meaning hard coded in the kernel source in this context?) and AF_ALG.

That is a good point, actually, since dm-crypt could be affected here as well, hence the CCs.

Milan (or others): are you aware of any of these ciphers being used for dm-crypt?

Quoted 2 lines

I'm not aware of any real use cases for Anubis, Khazad and TEA though.

OK, thanks for confirming. Removing those would be a good start.

Quoted 67 lines
Quoted 52 lines

which means they can only be enabled in the build if the socket API is enabled in the first place.

---
Hopefully, I will be able to convince the distro kernel maintainers to disable CRYPTO_USER_API_ENABLE_OBSOLETE in their v5.10+ builds once the iwd changes for arc4 make it downstream (Debian already has an updated version in its unstable distro). With the joint coverage of their QA, we should be able to confirm that these algos are never used, and actually remove them altogether.

 crypto/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)
crypto/Kconfig +4 -1
index e85d8a059489..fac10143d23f 100644
@@ -1185,6 +1185,7 @@ config CRYPTO_AES_PPC_SPE
 
 config CRYPTO_ANUBIS
 tristate "Anubis cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   Anubis cipher algorithm.
@@ -1424,6 +1425,7 @@ config CRYPTO_FCRYPT
 
 config CRYPTO_KHAZAD
 tristate "Khazad cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   Khazad cipher algorithm.
@@ -1487,6 +1489,7 @@ config CRYPTO_CHACHA_MIPS
 
 config CRYPTO_SEED
 tristate "SEED cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   SEED cipher algorithm (RFC4269).
@@ -1613,6 +1616,7 @@ config CRYPTO_SM4
 
 config CRYPTO_TEA
 tristate "TEA, XTEA and XETA cipher algorithms"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   TEA cipher algorithm.
--
Quoted 1 line

2.17.1

Regards,
Pascal van Leeuwen
Silicon IP Architect Multi-Protocol Engines, Rambus Security Rambus ROTW Holding BV
+31-73 6581953

Note: The Inside Secure/Verimatrix Silicon IP team was recently acquired by Rambus. Please be so kind to update your e-mail address book with my new e-mail address.

** This message and any attachments are for the sole use of the intended recipient(s). It may contain information that is confidential and privileged. If you are not the intended recipient of this message, you are prohibited from printing, copying, forwarding or saving it. Please delete the message and attachments and notify the sender immediately. **

Rambus Inc.<http://www.rambus.com>

#3 lore raw
Quoted 34 lines

-----Original Message-----
From: Ard Biesheuvel <[email protected]>
Sent: Friday, September 11, 2020 6:30 PM
To: Van Leeuwen, Pascal <[email protected]>; [email protected]; Milan Broz <[email protected]>
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: [PATCH] crypto: mark unused ciphers as obsolete

<<< External Email >>>
(cc Milan and dm-devel)

Quoted 12 lines · Pascal
Quoted 12 lines

-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Ard Biesheuvel
Sent: Friday, September 11, 2020 4:11 PM
To: [email protected]
Cc: [email protected]; [email protected]; Ard Biesheuvel <[email protected]>
Subject: [PATCH] crypto: mark unused ciphers as obsolete

<<< External Email >>>
We have a few interesting pieces in our cipher museum, which are never used internally, and were only ever provided as generic C implementations.

Quoted 9 lines
Quoted 4 lines

Unfortunately, we cannot simply remove this code, as we cannot be sure that it is not being used via the AF_ALG socket API, however unlikely. So let's mark the Anubis, Khazad, SEED and TEA algorithms as obsolete,

Wouldn't the IKE deamon be able to utilize these algorithms through the XFRM API? I'm by no means an expert on the subject, but it looks like the cipher template is provided there directly via XFRM, so it does not need to live in the kernel source. And I know for a fact that SEED is being used for IPsec (and TLS) in Korea.

Quoted 5 lines

I have been staring at net/xfrm/xfrm_algo.c, and as far as I can tell, algorithms have to be mentioned there in order to be usable. None of the ciphers that this patch touches are listed there or anywhere else in the kernel.

Hmmm ... good point. Wasn't aware XFRM was actively allowing only a subset. Actually found this commented out code in my Pluto source (kernel_netlink.c):

/*
* Not yet implemented in Linux kernel xfrm_algo.c
{ SADB_X_EALG_SEEDCBC, "cbc(seed)" },
*/

Go figure.

Quoted 76 lines
Quoted 3 lines

The point being, there are more users to consider beyond "internal" (meaning hard coded in the kernel source in this context?) and AF_ALG.

That is a good point, actually, since dm-crypt could be affected here as well, hence the CCs.

Milan (or others): are you aware of any of these ciphers being used for dm-crypt?

Quoted 2 lines

I'm not aware of any real use cases for Anubis, Khazad and TEA though.

OK, thanks for confirming. Removing those would be a good start.

Quoted 60 lines
Quoted 52 lines

which means they can only be enabled in the build if the socket API is enabled in the first place.

---
Hopefully, I will be able to convince the distro kernel maintainers to disable CRYPTO_USER_API_ENABLE_OBSOLETE in their v5.10+ builds once the iwd changes for arc4 make it downstream (Debian already has an updated version in its unstable distro). With the joint coverage of their QA, we should be able to confirm that these algos are never used, and actually remove them altogether.

 crypto/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)
crypto/Kconfig +4 -1
index e85d8a059489..fac10143d23f 100644
@@ -1185,6 +1185,7 @@ config CRYPTO_AES_PPC_SPE
 
 config CRYPTO_ANUBIS
 tristate "Anubis cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   Anubis cipher algorithm.
@@ -1424,6 +1425,7 @@ config CRYPTO_FCRYPT
 
 config CRYPTO_KHAZAD
 tristate "Khazad cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   Khazad cipher algorithm.
@@ -1487,6 +1489,7 @@ config CRYPTO_CHACHA_MIPS
 
 config CRYPTO_SEED
 tristate "SEED cipher algorithm"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   SEED cipher algorithm (RFC4269).
@@ -1613,6 +1616,7 @@ config CRYPTO_SM4
 
 config CRYPTO_TEA
 tristate "TEA, XTEA and XETA cipher algorithms"
+depends on CRYPTO_USER_API_ENABLE_OBSOLETE
 select CRYPTO_ALGAPI
 help
   TEA cipher algorithm.
--
Quoted 1 line

2.17.1

Regards,
Pascal van Leeuwen
Silicon IP Architect Multi-Protocol Engines, Rambus Security Rambus ROTW Holding BV
+31-73 6581953

Quoted 9 lines
Quoted 5 lines

Note: The Inside Secure/Verimatrix Silicon IP team was recently acquired by Rambus. Please be so kind to update your e-mail address book with my new e-mail address.

** This message and any attachments are for the sole use of the intended recipient(s). It may contain information that is

confidential and privileged. If you are not the intended recipient of this message, you are prohibited from printing, copying, forwarding or saving it. Please delete the message and attachments and notify the sender immediately. **

Quoted 2 lines

Rambus Inc.<http://www.rambus.com>

Regards,
Pascal van Leeuwen
Silicon IP Architect Multi-Protocol Engines, Rambus Security Rambus ROTW Holding BV
+31-73 6581953

Note: The Inside Secure/Verimatrix Silicon IP team was recently acquired by Rambus. Please be so kind to update your e-mail address book with my new e-mail address.

** This message and any attachments are for the sole use of the intended recipient(s). It may contain information that is confidential and privileged. If you are not the intended recipient of this message, you are prohibited from printing, copying, forwarding or saving it. Please delete the message and attachments and notify the sender immediately. **

Rambus Inc.<http://www.rambus.com>

#4 lore raw
In reply to Ard Biesheuvel
Quoted 35 lines · Ard Biesheuvel

(cc Milan and dm-devel)

Quoted 12 lines · Pascal
Quoted 12 lines

-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Ard Biesheuvel
Sent: Friday, September 11, 2020 4:11 PM
To: [email protected]
Cc: [email protected]; [email protected]; Ard Biesheuvel <[email protected]>
Subject: [PATCH] crypto: mark unused ciphers as obsolete

<<< External Email >>>
We have a few interesting pieces in our cipher museum, which are never used internally, and were only ever provided as generic C implementations.

Quoted 9 lines
Quoted 4 lines

Unfortunately, we cannot simply remove this code, as we cannot be sure that it is not being used via the AF_ALG socket API, however unlikely. So let's mark the Anubis, Khazad, SEED and TEA algorithms as obsolete,

Wouldn't the IKE deamon be able to utilize these algorithms through the XFRM API? I'm by no means an expert on the subject, but it looks like the cipher template is provided there directly via XFRM, so it does not need to live in the kernel source. And I know for a fact that SEED is being used for IPsec (and TLS) in Korea.

I have been staring at net/xfrm/xfrm_algo.c, and as far as I can tell, algorithms have to be mentioned there in order to be usable. None of the ciphers that this patch touches are listed there or anywhere else in the kernel.

Quoted 3 lines

The point being, there are more users to consider beyond "internal" (meaning hard coded in the kernel source in this context?) and AF_ALG.

Quoted 5 lines

That is a good point, actually, since dm-crypt could be affected here as well, hence the CCs.

Milan (or others): are you aware of any of these ciphers being used for dm-crypt?

Cryptsetup/dm-crypt can use them (talking about Seed, Khazad, Anubis, TEA), but I think there is no real use of these.
(IOW these are used only if someone deliberately uses them - manually specifying on format.)

For dm-crypt. there should be no big harm if these are marked obsolete.

Milan

maintainer
#5 lore raw
In reply to Ard Biesheuvel
Quoted 19 lines · Ard Biesheuvel

We have a few interesting pieces in our cipher museum, which are never used internally, and were only ever provided as generic C implementations.

Unfortunately, we cannot simply remove this code, as we cannot be sure that it is not being used via the AF_ALG socket API, however unlikely.

So let's mark the Anubis, Khazad, SEED and TEA algorithms as obsolete, which means they can only be enabled in the build if the socket API is enabled in the first place.

---
Hopefully, I will be able to convince the distro kernel maintainers to disable CRYPTO_USER_API_ENABLE_OBSOLETE in their v5.10+ builds once the iwd changes for arc4 make it downstream (Debian already has an updated version in its unstable distro). With the joint coverage of their QA, we should be able to confirm that these algos are never used, and actually remove them altogether.

Quoted 2 lines
 crypto/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)

Patch applied. Thanks.

Signature · 3 lines
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt