]> git.ipfire.org Git - thirdparty/nettle.git/blobdiff - des3.c
Update config.guess and config.sub to 2024-01-01 versions.
[thirdparty/nettle.git] / des3.c
diff --git a/des3.c b/des3.c
index 6bba214de7236f58b4f2b3087314526615b64f9a..9b9d97e97e3165efaa1236410c1319adad1ecf3e 100644 (file)
--- a/des3.c
+++ b/des3.c
@@ -1,27 +1,35 @@
-/* des3.h
- *
- * Triple DES cipher. Three key encrypt-decrypt-encrypt.
- */
-
-/* nettle, low-level cryptographics library
- *
- * Copyright (C) 2001 Niels Möller
- *  
- * The nettle library is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or (at your
- * option) any later version.
- * 
- * The nettle library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
- * License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with the nettle library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- */
+/* des3.c
+
+   Triple DES cipher. Three key encrypt-decrypt-encrypt.
+
+   Copyright (C) 2001, 2010 Niels Möller
+
+   This file is part of GNU Nettle.
+
+   GNU Nettle is free software: you can redistribute it and/or
+   modify it under the terms of either:
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at your
+       option) any later version.
+
+   or
+
+     * the GNU General Public License as published by the Free
+       Software Foundation; either version 2 of the License, or (at your
+       option) any later version.
+
+   or both in parallel, as here.
+
+   GNU Nettle is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see http://www.gnu.org/licenses/.
+*/
 
 #if HAVE_CONFIG_H
 # include "config.h"
  * lsh/src/cascade.c, but as in practice it's never used for anything
  * like triple DES, it's not worth the effort. */
 
-/* On success, returns 1 and sets ctx->status to DES_OK (zero). On
- * error, returns 0 and sets ctx->status accordingly. */
+/* Returns 1 for good keys and 0 for weak keys. */
 int
 des3_set_key(struct des3_ctx *ctx, const uint8_t *key)
 {
   unsigned i;
+  int is_good = 1;
+  
   for (i = 0; i<3; i++, key += DES_KEY_SIZE)
     if (!des_set_key(&ctx->des[i], key))
-      {
-       ctx->status = ctx->des[i].status;
-       return 0;
-      }
-  ctx->status = DES_OK;
-  return 1;
+      is_good = 0;
+
+  return is_good;
 }
 
 void
-des3_encrypt(struct des3_ctx *ctx,
-            unsigned length, uint8_t *dst,
+des3_encrypt(const struct des3_ctx *ctx,
+            size_t length, uint8_t *dst,
             const uint8_t *src)
 {
   des_encrypt(&ctx->des[0],
@@ -63,9 +69,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,
+            size_t length, uint8_t *dst,
+            const uint8_t *src)
 {
   des_decrypt(&ctx->des[2],
              length, dst, src);