aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/openssl/crypto/des
diff options
context:
space:
mode:
authortpashkin <tpashkin@yandex-team.ru>2022-02-10 16:46:42 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:46:42 +0300
commit656921707c02b816d730f31c1fdc1d615adbfe00 (patch)
tree49e222ea1c5804306084bb3ae065bb702625360f /contrib/libs/openssl/crypto/des
parent5475379a04e37df30085bd1724f1c57e3f40996f (diff)
downloadydb-656921707c02b816d730f31c1fdc1d615adbfe00.tar.gz
Restoring authorship annotation for <tpashkin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/openssl/crypto/des')
-rw-r--r--contrib/libs/openssl/crypto/des/cbc_cksm.c2
-rw-r--r--contrib/libs/openssl/crypto/des/cfb64ede.c2
-rw-r--r--contrib/libs/openssl/crypto/des/cfb64enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/cfb_enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/des_enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/des_local.h452
-rw-r--r--contrib/libs/openssl/crypto/des/ecb3_enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/ecb_enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/fcrypt.c2
-rw-r--r--contrib/libs/openssl/crypto/des/fcrypt_b.c2
-rw-r--r--contrib/libs/openssl/crypto/des/ncbc_enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/ofb64ede.c2
-rw-r--r--contrib/libs/openssl/crypto/des/ofb64enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/ofb_enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/pcbc_enc.c2
-rw-r--r--contrib/libs/openssl/crypto/des/qud_cksm.c2
-rw-r--r--contrib/libs/openssl/crypto/des/set_key.c2
-rw-r--r--contrib/libs/openssl/crypto/des/str2key.c2
-rw-r--r--contrib/libs/openssl/crypto/des/xcbc_enc.c2
19 files changed, 244 insertions, 244 deletions
diff --git a/contrib/libs/openssl/crypto/des/cbc_cksm.c b/contrib/libs/openssl/crypto/des/cbc_cksm.c
index 9995bca8e7..c5e2e017b8 100644
--- a/contrib/libs/openssl/crypto/des/cbc_cksm.c
+++ b/contrib/libs/openssl/crypto/des/cbc_cksm.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
DES_LONG DES_cbc_cksum(const unsigned char *in, DES_cblock *output,
long length, DES_key_schedule *schedule,
diff --git a/contrib/libs/openssl/crypto/des/cfb64ede.c b/contrib/libs/openssl/crypto/des/cfb64ede.c
index f8f5683431..490d925f46 100644
--- a/contrib/libs/openssl/crypto/des/cfb64ede.c
+++ b/contrib/libs/openssl/crypto/des/cfb64ede.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
/*
* The input and output encrypted as though 64bit cfb mode is being used.
diff --git a/contrib/libs/openssl/crypto/des/cfb64enc.c b/contrib/libs/openssl/crypto/des/cfb64enc.c
index 3b049bc4d1..ca0e821648 100644
--- a/contrib/libs/openssl/crypto/des/cfb64enc.c
+++ b/contrib/libs/openssl/crypto/des/cfb64enc.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
/*
* The input and output encrypted as though 64bit cfb mode is being used.
diff --git a/contrib/libs/openssl/crypto/des/cfb_enc.c b/contrib/libs/openssl/crypto/des/cfb_enc.c
index 2d2ebcd1c4..17018420e6 100644
--- a/contrib/libs/openssl/crypto/des/cfb_enc.c
+++ b/contrib/libs/openssl/crypto/des/cfb_enc.c
@@ -8,7 +8,7 @@
*/
#include "e_os.h"
-#include "des_local.h"
+#include "des_local.h"
#include <assert.h>
/*
diff --git a/contrib/libs/openssl/crypto/des/des_enc.c b/contrib/libs/openssl/crypto/des/des_enc.c
index d4e743c254..45eec615d8 100644
--- a/contrib/libs/openssl/crypto/des/des_enc.c
+++ b/contrib/libs/openssl/crypto/des/des_enc.c
@@ -8,7 +8,7 @@
*/
#include <openssl/crypto.h>
-#include "des_local.h"
+#include "des_local.h"
#include "spr.h"
void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
diff --git a/contrib/libs/openssl/crypto/des/des_local.h b/contrib/libs/openssl/crypto/des/des_local.h
index c9018239d9..0f58a1c9ae 100644
--- a/contrib/libs/openssl/crypto/des/des_local.h
+++ b/contrib/libs/openssl/crypto/des/des_local.h
@@ -1,226 +1,226 @@
-/*
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
- *
- * Licensed under the OpenSSL license (the "License"). You may not use
- * this file except in compliance with the License. You can obtain a copy
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-#ifndef OSSL_CRYPTO_DES_LOCAL_H
-# define OSSL_CRYPTO_DES_LOCAL_H
-
-# include <openssl/e_os2.h>
-
-# include <stdio.h>
-# include <stdlib.h>
-# include <string.h>
-
-# include <openssl/des.h>
-
-# ifdef OPENSSL_BUILD_SHLIBCRYPTO
-# undef OPENSSL_EXTERN
-# define OPENSSL_EXTERN OPENSSL_EXPORT
-# endif
-
-# define ITERATIONS 16
-# define HALF_ITERATIONS 8
-
-# define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \
- l|=((DES_LONG)(*((c)++)))<< 8L, \
- l|=((DES_LONG)(*((c)++)))<<16L, \
- l|=((DES_LONG)(*((c)++)))<<24L)
-
-/* NOTE - c is not incremented as per c2l */
-# define c2ln(c,l1,l2,n) { \
- c+=n; \
- l1=l2=0; \
- switch (n) { \
- case 8: l2 =((DES_LONG)(*(--(c))))<<24L; \
- /* fall thru */ \
- case 7: l2|=((DES_LONG)(*(--(c))))<<16L; \
- /* fall thru */ \
- case 6: l2|=((DES_LONG)(*(--(c))))<< 8L; \
- /* fall thru */ \
- case 5: l2|=((DES_LONG)(*(--(c)))); \
- /* fall thru */ \
- case 4: l1 =((DES_LONG)(*(--(c))))<<24L; \
- /* fall thru */ \
- case 3: l1|=((DES_LONG)(*(--(c))))<<16L; \
- /* fall thru */ \
- case 2: l1|=((DES_LONG)(*(--(c))))<< 8L; \
- /* fall thru */ \
- case 1: l1|=((DES_LONG)(*(--(c)))); \
- } \
- }
-
-# define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
- *((c)++)=(unsigned char)(((l)>>24L)&0xff))
-
-/*
- * replacements for htonl and ntohl since I have no idea what to do when
- * faced with machines with 8 byte longs.
- */
-
-# define n2l(c,l) (l =((DES_LONG)(*((c)++)))<<24L, \
- l|=((DES_LONG)(*((c)++)))<<16L, \
- l|=((DES_LONG)(*((c)++)))<< 8L, \
- l|=((DES_LONG)(*((c)++))))
-
-# define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
- *((c)++)=(unsigned char)(((l) )&0xff))
-
-/* NOTE - c is not incremented as per l2c */
-# define l2cn(l1,l2,c,n) { \
- c+=n; \
- switch (n) { \
- case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \
- /* fall thru */ \
- case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \
- /* fall thru */ \
- case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \
- /* fall thru */ \
- case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \
- /* fall thru */ \
- case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \
- /* fall thru */ \
- case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \
- /* fall thru */ \
- case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \
- /* fall thru */ \
- case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \
- } \
- }
-
-# if defined(_MSC_VER)
-# define ROTATE(a,n) (_lrotr(a,n))
-# elif defined(__ICC)
-# define ROTATE(a,n) (_rotr(a,n))
-# elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC)
-# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
-# define ROTATE(a,n) ({ register unsigned int ret; \
- asm ("rorl %1,%0" \
- : "=r"(ret) \
- : "I"(n),"0"(a) \
- : "cc"); \
- ret; \
- })
-# endif
-# endif
-# ifndef ROTATE
-# define ROTATE(a,n) (((a)>>(n))+((a)<<(32-(n))))
-# endif
-
-/*
- * Don't worry about the LOAD_DATA() stuff, that is used by fcrypt() to add
- * it's little bit to the front
- */
-
-# ifdef DES_FCRYPT
-
-# define LOAD_DATA_tmp(R,S,u,t,E0,E1) \
- { DES_LONG tmp; LOAD_DATA(R,S,u,t,E0,E1,tmp); }
-
-# define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
- t=R^(R>>16L); \
- u=t&E0; t&=E1; \
- tmp=(u<<16); u^=R^s[S ]; u^=tmp; \
- tmp=(t<<16); t^=R^s[S+1]; t^=tmp
-# else
-# define LOAD_DATA_tmp(a,b,c,d,e,f) LOAD_DATA(a,b,c,d,e,f,g)
-# define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
- u=R^s[S ]; \
- t=R^s[S+1]
-# endif
-
-/*
- * It recently occurred to me that 0^0^0^0^0^0^0 == 0, so there is no reason
- * to not xor all the sub items together. This potentially saves a register
- * since things can be xored directly into L
- */
-
-# define D_ENCRYPT(LL,R,S) { \
- LOAD_DATA_tmp(R,S,u,t,E0,E1); \
- t=ROTATE(t,4); \
- LL^= \
- DES_SPtrans[0][(u>> 2L)&0x3f]^ \
- DES_SPtrans[2][(u>>10L)&0x3f]^ \
- DES_SPtrans[4][(u>>18L)&0x3f]^ \
- DES_SPtrans[6][(u>>26L)&0x3f]^ \
- DES_SPtrans[1][(t>> 2L)&0x3f]^ \
- DES_SPtrans[3][(t>>10L)&0x3f]^ \
- DES_SPtrans[5][(t>>18L)&0x3f]^ \
- DES_SPtrans[7][(t>>26L)&0x3f]; }
-
- /*-
- * IP and FP
- * The problem is more of a geometric problem that random bit fiddling.
- 0 1 2 3 4 5 6 7 62 54 46 38 30 22 14 6
- 8 9 10 11 12 13 14 15 60 52 44 36 28 20 12 4
- 16 17 18 19 20 21 22 23 58 50 42 34 26 18 10 2
- 24 25 26 27 28 29 30 31 to 56 48 40 32 24 16 8 0
-
- 32 33 34 35 36 37 38 39 63 55 47 39 31 23 15 7
- 40 41 42 43 44 45 46 47 61 53 45 37 29 21 13 5
- 48 49 50 51 52 53 54 55 59 51 43 35 27 19 11 3
- 56 57 58 59 60 61 62 63 57 49 41 33 25 17 9 1
-
- The output has been subject to swaps of the form
- 0 1 -> 3 1 but the odd and even bits have been put into
- 2 3 2 0
- different words. The main trick is to remember that
- t=((l>>size)^r)&(mask);
- r^=t;
- l^=(t<<size);
- can be used to swap and move bits between words.
-
- So l = 0 1 2 3 r = 16 17 18 19
- 4 5 6 7 20 21 22 23
- 8 9 10 11 24 25 26 27
- 12 13 14 15 28 29 30 31
- becomes (for size == 2 and mask == 0x3333)
- t = 2^16 3^17 -- -- l = 0 1 16 17 r = 2 3 18 19
- 6^20 7^21 -- -- 4 5 20 21 6 7 22 23
- 10^24 11^25 -- -- 8 9 24 25 10 11 24 25
- 14^28 15^29 -- -- 12 13 28 29 14 15 28 29
-
- Thanks for hints from Richard Outerbridge - he told me IP&FP
- could be done in 15 xor, 10 shifts and 5 ands.
- When I finally started to think of the problem in 2D
- I first got ~42 operations without xors. When I remembered
- how to use xors :-) I got it to its final state.
- */
-# define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
- (b)^=(t),\
- (a)^=((t)<<(n)))
-
-# define IP(l,r) \
- { \
- register DES_LONG tt; \
- PERM_OP(r,l,tt, 4,0x0f0f0f0fL); \
- PERM_OP(l,r,tt,16,0x0000ffffL); \
- PERM_OP(r,l,tt, 2,0x33333333L); \
- PERM_OP(l,r,tt, 8,0x00ff00ffL); \
- PERM_OP(r,l,tt, 1,0x55555555L); \
- }
-
-# define FP(l,r) \
- { \
- register DES_LONG tt; \
- PERM_OP(l,r,tt, 1,0x55555555L); \
- PERM_OP(r,l,tt, 8,0x00ff00ffL); \
- PERM_OP(l,r,tt, 2,0x33333333L); \
- PERM_OP(r,l,tt,16,0x0000ffffL); \
- PERM_OP(l,r,tt, 4,0x0f0f0f0fL); \
- }
-
-extern const DES_LONG DES_SPtrans[8][64];
-
-void fcrypt_body(DES_LONG *out, DES_key_schedule *ks,
- DES_LONG Eswap0, DES_LONG Eswap1);
-
-#endif
+/*
+ * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#ifndef OSSL_CRYPTO_DES_LOCAL_H
+# define OSSL_CRYPTO_DES_LOCAL_H
+
+# include <openssl/e_os2.h>
+
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
+
+# include <openssl/des.h>
+
+# ifdef OPENSSL_BUILD_SHLIBCRYPTO
+# undef OPENSSL_EXTERN
+# define OPENSSL_EXTERN OPENSSL_EXPORT
+# endif
+
+# define ITERATIONS 16
+# define HALF_ITERATIONS 8
+
+# define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \
+ l|=((DES_LONG)(*((c)++)))<< 8L, \
+ l|=((DES_LONG)(*((c)++)))<<16L, \
+ l|=((DES_LONG)(*((c)++)))<<24L)
+
+/* NOTE - c is not incremented as per c2l */
+# define c2ln(c,l1,l2,n) { \
+ c+=n; \
+ l1=l2=0; \
+ switch (n) { \
+ case 8: l2 =((DES_LONG)(*(--(c))))<<24L; \
+ /* fall thru */ \
+ case 7: l2|=((DES_LONG)(*(--(c))))<<16L; \
+ /* fall thru */ \
+ case 6: l2|=((DES_LONG)(*(--(c))))<< 8L; \
+ /* fall thru */ \
+ case 5: l2|=((DES_LONG)(*(--(c)))); \
+ /* fall thru */ \
+ case 4: l1 =((DES_LONG)(*(--(c))))<<24L; \
+ /* fall thru */ \
+ case 3: l1|=((DES_LONG)(*(--(c))))<<16L; \
+ /* fall thru */ \
+ case 2: l1|=((DES_LONG)(*(--(c))))<< 8L; \
+ /* fall thru */ \
+ case 1: l1|=((DES_LONG)(*(--(c)))); \
+ } \
+ }
+
+# define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
+ *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
+ *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
+ *((c)++)=(unsigned char)(((l)>>24L)&0xff))
+
+/*
+ * replacements for htonl and ntohl since I have no idea what to do when
+ * faced with machines with 8 byte longs.
+ */
+
+# define n2l(c,l) (l =((DES_LONG)(*((c)++)))<<24L, \
+ l|=((DES_LONG)(*((c)++)))<<16L, \
+ l|=((DES_LONG)(*((c)++)))<< 8L, \
+ l|=((DES_LONG)(*((c)++))))
+
+# define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
+ *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
+ *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
+ *((c)++)=(unsigned char)(((l) )&0xff))
+
+/* NOTE - c is not incremented as per l2c */
+# define l2cn(l1,l2,c,n) { \
+ c+=n; \
+ switch (n) { \
+ case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \
+ /* fall thru */ \
+ case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \
+ /* fall thru */ \
+ case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \
+ /* fall thru */ \
+ case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \
+ /* fall thru */ \
+ case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \
+ /* fall thru */ \
+ case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \
+ /* fall thru */ \
+ case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \
+ /* fall thru */ \
+ case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \
+ } \
+ }
+
+# if defined(_MSC_VER)
+# define ROTATE(a,n) (_lrotr(a,n))
+# elif defined(__ICC)
+# define ROTATE(a,n) (_rotr(a,n))
+# elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC)
+# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
+# define ROTATE(a,n) ({ register unsigned int ret; \
+ asm ("rorl %1,%0" \
+ : "=r"(ret) \
+ : "I"(n),"0"(a) \
+ : "cc"); \
+ ret; \
+ })
+# endif
+# endif
+# ifndef ROTATE
+# define ROTATE(a,n) (((a)>>(n))+((a)<<(32-(n))))
+# endif
+
+/*
+ * Don't worry about the LOAD_DATA() stuff, that is used by fcrypt() to add
+ * it's little bit to the front
+ */
+
+# ifdef DES_FCRYPT
+
+# define LOAD_DATA_tmp(R,S,u,t,E0,E1) \
+ { DES_LONG tmp; LOAD_DATA(R,S,u,t,E0,E1,tmp); }
+
+# define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
+ t=R^(R>>16L); \
+ u=t&E0; t&=E1; \
+ tmp=(u<<16); u^=R^s[S ]; u^=tmp; \
+ tmp=(t<<16); t^=R^s[S+1]; t^=tmp
+# else
+# define LOAD_DATA_tmp(a,b,c,d,e,f) LOAD_DATA(a,b,c,d,e,f,g)
+# define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
+ u=R^s[S ]; \
+ t=R^s[S+1]
+# endif
+
+/*
+ * It recently occurred to me that 0^0^0^0^0^0^0 == 0, so there is no reason
+ * to not xor all the sub items together. This potentially saves a register
+ * since things can be xored directly into L
+ */
+
+# define D_ENCRYPT(LL,R,S) { \
+ LOAD_DATA_tmp(R,S,u,t,E0,E1); \
+ t=ROTATE(t,4); \
+ LL^= \
+ DES_SPtrans[0][(u>> 2L)&0x3f]^ \
+ DES_SPtrans[2][(u>>10L)&0x3f]^ \
+ DES_SPtrans[4][(u>>18L)&0x3f]^ \
+ DES_SPtrans[6][(u>>26L)&0x3f]^ \
+ DES_SPtrans[1][(t>> 2L)&0x3f]^ \
+ DES_SPtrans[3][(t>>10L)&0x3f]^ \
+ DES_SPtrans[5][(t>>18L)&0x3f]^ \
+ DES_SPtrans[7][(t>>26L)&0x3f]; }
+
+ /*-
+ * IP and FP
+ * The problem is more of a geometric problem that random bit fiddling.
+ 0 1 2 3 4 5 6 7 62 54 46 38 30 22 14 6
+ 8 9 10 11 12 13 14 15 60 52 44 36 28 20 12 4
+ 16 17 18 19 20 21 22 23 58 50 42 34 26 18 10 2
+ 24 25 26 27 28 29 30 31 to 56 48 40 32 24 16 8 0
+
+ 32 33 34 35 36 37 38 39 63 55 47 39 31 23 15 7
+ 40 41 42 43 44 45 46 47 61 53 45 37 29 21 13 5
+ 48 49 50 51 52 53 54 55 59 51 43 35 27 19 11 3
+ 56 57 58 59 60 61 62 63 57 49 41 33 25 17 9 1
+
+ The output has been subject to swaps of the form
+ 0 1 -> 3 1 but the odd and even bits have been put into
+ 2 3 2 0
+ different words. The main trick is to remember that
+ t=((l>>size)^r)&(mask);
+ r^=t;
+ l^=(t<<size);
+ can be used to swap and move bits between words.
+
+ So l = 0 1 2 3 r = 16 17 18 19
+ 4 5 6 7 20 21 22 23
+ 8 9 10 11 24 25 26 27
+ 12 13 14 15 28 29 30 31
+ becomes (for size == 2 and mask == 0x3333)
+ t = 2^16 3^17 -- -- l = 0 1 16 17 r = 2 3 18 19
+ 6^20 7^21 -- -- 4 5 20 21 6 7 22 23
+ 10^24 11^25 -- -- 8 9 24 25 10 11 24 25
+ 14^28 15^29 -- -- 12 13 28 29 14 15 28 29
+
+ Thanks for hints from Richard Outerbridge - he told me IP&FP
+ could be done in 15 xor, 10 shifts and 5 ands.
+ When I finally started to think of the problem in 2D
+ I first got ~42 operations without xors. When I remembered
+ how to use xors :-) I got it to its final state.
+ */
+# define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
+ (b)^=(t),\
+ (a)^=((t)<<(n)))
+
+# define IP(l,r) \
+ { \
+ register DES_LONG tt; \
+ PERM_OP(r,l,tt, 4,0x0f0f0f0fL); \
+ PERM_OP(l,r,tt,16,0x0000ffffL); \
+ PERM_OP(r,l,tt, 2,0x33333333L); \
+ PERM_OP(l,r,tt, 8,0x00ff00ffL); \
+ PERM_OP(r,l,tt, 1,0x55555555L); \
+ }
+
+# define FP(l,r) \
+ { \
+ register DES_LONG tt; \
+ PERM_OP(l,r,tt, 1,0x55555555L); \
+ PERM_OP(r,l,tt, 8,0x00ff00ffL); \
+ PERM_OP(l,r,tt, 2,0x33333333L); \
+ PERM_OP(r,l,tt,16,0x0000ffffL); \
+ PERM_OP(l,r,tt, 4,0x0f0f0f0fL); \
+ }
+
+extern const DES_LONG DES_SPtrans[8][64];
+
+void fcrypt_body(DES_LONG *out, DES_key_schedule *ks,
+ DES_LONG Eswap0, DES_LONG Eswap1);
+
+#endif
diff --git a/contrib/libs/openssl/crypto/des/ecb3_enc.c b/contrib/libs/openssl/crypto/des/ecb3_enc.c
index 9a1286f8ed..7afa8eaadd 100644
--- a/contrib/libs/openssl/crypto/des/ecb3_enc.c
+++ b/contrib/libs/openssl/crypto/des/ecb3_enc.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,
DES_key_schedule *ks1, DES_key_schedule *ks2,
diff --git a/contrib/libs/openssl/crypto/des/ecb_enc.c b/contrib/libs/openssl/crypto/des/ecb_enc.c
index afba573f34..513c65e116 100644
--- a/contrib/libs/openssl/crypto/des/ecb_enc.c
+++ b/contrib/libs/openssl/crypto/des/ecb_enc.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
#include <openssl/opensslv.h>
#include <openssl/bio.h>
diff --git a/contrib/libs/openssl/crypto/des/fcrypt.c b/contrib/libs/openssl/crypto/des/fcrypt.c
index 7ca8f77f5e..e83cf76b61 100644
--- a/contrib/libs/openssl/crypto/des/fcrypt.c
+++ b/contrib/libs/openssl/crypto/des/fcrypt.c
@@ -19,7 +19,7 @@
#endif
#include <openssl/crypto.h>
-#include "des_local.h"
+#include "des_local.h"
/*
* Added more values to handle illegal salt values the way normal crypt()
diff --git a/contrib/libs/openssl/crypto/des/fcrypt_b.c b/contrib/libs/openssl/crypto/des/fcrypt_b.c
index 92d5f104c7..22f967b8c6 100644
--- a/contrib/libs/openssl/crypto/des/fcrypt_b.c
+++ b/contrib/libs/openssl/crypto/des/fcrypt_b.c
@@ -10,7 +10,7 @@
#include <stdio.h>
#define DES_FCRYPT
-#include "des_local.h"
+#include "des_local.h"
#undef DES_FCRYPT
#undef PERM_OP
diff --git a/contrib/libs/openssl/crypto/des/ncbc_enc.c b/contrib/libs/openssl/crypto/des/ncbc_enc.c
index f3c151339e..cd4b071a3d 100644
--- a/contrib/libs/openssl/crypto/des/ncbc_enc.c
+++ b/contrib/libs/openssl/crypto/des/ncbc_enc.c
@@ -13,7 +13,7 @@
* des_enc.c (DES_ncbc_encrypt)
*/
-#include "des_local.h"
+#include "des_local.h"
#ifdef CBC_ENC_C__DONT_UPDATE_IV
void DES_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
diff --git a/contrib/libs/openssl/crypto/des/ofb64ede.c b/contrib/libs/openssl/crypto/des/ofb64ede.c
index f105e201d3..68cf2dc557 100644
--- a/contrib/libs/openssl/crypto/des/ofb64ede.c
+++ b/contrib/libs/openssl/crypto/des/ofb64ede.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
/*
* The input and output encrypted as though 64bit ofb mode is being used.
diff --git a/contrib/libs/openssl/crypto/des/ofb64enc.c b/contrib/libs/openssl/crypto/des/ofb64enc.c
index ae221f65d7..5796980c18 100644
--- a/contrib/libs/openssl/crypto/des/ofb64enc.c
+++ b/contrib/libs/openssl/crypto/des/ofb64enc.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
/*
* The input and output encrypted as though 64bit ofb mode is being used.
diff --git a/contrib/libs/openssl/crypto/des/ofb_enc.c b/contrib/libs/openssl/crypto/des/ofb_enc.c
index 7bba21d27e..2b0498994b 100644
--- a/contrib/libs/openssl/crypto/des/ofb_enc.c
+++ b/contrib/libs/openssl/crypto/des/ofb_enc.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
/*
* The input and output are loaded in multiples of 8 bits. What this means is
diff --git a/contrib/libs/openssl/crypto/des/pcbc_enc.c b/contrib/libs/openssl/crypto/des/pcbc_enc.c
index 492eb773a3..3490592741 100644
--- a/contrib/libs/openssl/crypto/des/pcbc_enc.c
+++ b/contrib/libs/openssl/crypto/des/pcbc_enc.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,
long length, DES_key_schedule *schedule,
diff --git a/contrib/libs/openssl/crypto/des/qud_cksm.c b/contrib/libs/openssl/crypto/des/qud_cksm.c
index bc9366e683..10b6abf69e 100644
--- a/contrib/libs/openssl/crypto/des/qud_cksm.c
+++ b/contrib/libs/openssl/crypto/des/qud_cksm.c
@@ -13,7 +13,7 @@
* only based on the code in this paper and is almost definitely not the same
* as the MIT implementation.
*/
-#include "des_local.h"
+#include "des_local.h"
#define Q_B0(a) (((DES_LONG)(a)))
#define Q_B1(a) (((DES_LONG)(a))<<8)
diff --git a/contrib/libs/openssl/crypto/des/set_key.c b/contrib/libs/openssl/crypto/des/set_key.c
index 2a4cd810be..cbcb616cb2 100644
--- a/contrib/libs/openssl/crypto/des/set_key.c
+++ b/contrib/libs/openssl/crypto/des/set_key.c
@@ -16,7 +16,7 @@
* 1.0 First working version
*/
#include <openssl/crypto.h>
-#include "des_local.h"
+#include "des_local.h"
/* defaults to false */
OPENSSL_IMPLEMENT_GLOBAL(int, DES_check_key, 0)
diff --git a/contrib/libs/openssl/crypto/des/str2key.c b/contrib/libs/openssl/crypto/des/str2key.c
index b2d4a2f3ed..61db605125 100644
--- a/contrib/libs/openssl/crypto/des/str2key.c
+++ b/contrib/libs/openssl/crypto/des/str2key.c
@@ -8,7 +8,7 @@
*/
#include <openssl/crypto.h>
-#include "des_local.h"
+#include "des_local.h"
void DES_string_to_key(const char *str, DES_cblock *key)
{
diff --git a/contrib/libs/openssl/crypto/des/xcbc_enc.c b/contrib/libs/openssl/crypto/des/xcbc_enc.c
index 55775ce7f8..fb3fd5292c 100644
--- a/contrib/libs/openssl/crypto/des/xcbc_enc.c
+++ b/contrib/libs/openssl/crypto/des/xcbc_enc.c
@@ -7,7 +7,7 @@
* https://www.openssl.org/source/license.html
*/
-#include "des_local.h"
+#include "des_local.h"
/* RSA's DESX */