diff --git a/des.c b/des.c
index c9f294c24f9f5775a677a74a1d28fda526d2c43f..2cebbaa8e09dd183b0752c789b7c90ee27a19d94 100644
--- a/des.c
+++ b/des.c
@@ -228,7 +228,7 @@ des_set_key(struct des_ctx *ctx, const uint8_t *key)
 }
 
 void
-des_encrypt(struct des_ctx *ctx,
+des_encrypt(const struct des_ctx *ctx,
 	    unsigned length, uint8_t *dst,
 	    const uint8_t *src)
 {
@@ -245,7 +245,7 @@ des_encrypt(struct des_ctx *ctx,
 }
 
 void
-des_decrypt(struct des_ctx *ctx,
+des_decrypt(const struct des_ctx *ctx,
 	    unsigned length, uint8_t *dst,
 	    const uint8_t *src)
 {
diff --git a/des.h b/des.h
index a6d34cdc59912c858fb6b1973910f8a83bcddde2..57e20250138d69266a39a32cc1e962dd3db762f1 100644
--- a/des.h
+++ b/des.h
@@ -66,11 +66,11 @@ int
 des_set_key(struct des_ctx *ctx, const uint8_t *key);
 
 void
-des_encrypt(struct des_ctx *ctx,
+des_encrypt(const struct des_ctx *ctx,
 	    unsigned length, uint8_t *dst,
 	    const uint8_t *src);
 void
-des_decrypt(struct des_ctx *ctx,
+des_decrypt(const struct des_ctx *ctx,
 	    unsigned length, uint8_t *dst,
 	    const uint8_t *src);
 
@@ -94,12 +94,12 @@ int
 des3_set_key(struct des3_ctx *ctx, const uint8_t *key);
 
 void
-des3_encrypt(struct des3_ctx *ctx,
-	    unsigned length, uint8_t *dst,
-	    const uint8_t *src);
+des3_encrypt(const struct des3_ctx *ctx,
+	     unsigned length, uint8_t *dst,
+	     const uint8_t *src);
 void
-des3_decrypt(struct des3_ctx *ctx,
-	    unsigned length, uint8_t *dst,
-	    const uint8_t *src);
+des3_decrypt(const struct des3_ctx *ctx,
+	     unsigned length, uint8_t *dst,
+	     const uint8_t *src);
 
 #endif /* NETTLE_DES_H_INCLUDED */
diff --git a/des3.c b/des3.c
index 6bba214de7236f58b4f2b3087314526615b64f9a..ea7bfef3d37638c26d3c545db4a4992f2a38210a 100644
--- a/des3.c
+++ b/des3.c
@@ -50,7 +50,7 @@ des3_set_key(struct des3_ctx *ctx, const uint8_t *key)
 }
 
 void
-des3_encrypt(struct des3_ctx *ctx,
+des3_encrypt(const struct des3_ctx *ctx,
 	     unsigned length, uint8_t *dst,
 	     const uint8_t *src)
 {
@@ -63,9 +63,9 @@ des3_encrypt(struct des3_ctx *ctx,
 }
 
 void
-des3_decrypt(struct des3_ctx *ctx,
-	    unsigned length, uint8_t *dst,
-	    const uint8_t *src)
+des3_decrypt(const struct des3_ctx *ctx,
+	     unsigned length, uint8_t *dst,
+	     const uint8_t *src)
 {
   des_decrypt(&ctx->des[2],
 	      length, dst, src);