diff options
author | beck <> | 1999-09-29 04:37:45 +0000 |
---|---|---|
committer | beck <> | 1999-09-29 04:37:45 +0000 |
commit | de8f24ea083384bb66b32ec105dc4743c5663cdf (patch) | |
tree | 1412176ae62a3cab2cf2b0b92150fcbceaac6092 /src/lib/libcrypto/cast/c_enc.c | |
parent | cb929d29896bcb87c2a97417fbd03e50078fc178 (diff) | |
download | openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.gz openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.bz2 openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.zip |
OpenSSL 0.9.4 merge
Diffstat (limited to 'src/lib/libcrypto/cast/c_enc.c')
-rw-r--r-- | src/lib/libcrypto/cast/c_enc.c | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/src/lib/libcrypto/cast/c_enc.c b/src/lib/libcrypto/cast/c_enc.c index d998dd4953..0fe2cffecc 100644 --- a/src/lib/libcrypto/cast/c_enc.c +++ b/src/lib/libcrypto/cast/c_enc.c | |||
@@ -56,12 +56,10 @@ | |||
56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
57 | */ | 57 | */ |
58 | 58 | ||
59 | #include "cast.h" | 59 | #include <openssl/cast.h> |
60 | #include "cast_lcl.h" | 60 | #include "cast_lcl.h" |
61 | 61 | ||
62 | void CAST_encrypt(data,key) | 62 | void CAST_encrypt(CAST_LONG *data, CAST_KEY *key) |
63 | CAST_LONG *data; | ||
64 | CAST_KEY *key; | ||
65 | { | 63 | { |
66 | register CAST_LONG l,r,*k,t; | 64 | register CAST_LONG l,r,*k,t; |
67 | 65 | ||
@@ -81,18 +79,19 @@ CAST_KEY *key; | |||
81 | E_CAST( 9,k,r,l,+,^,-); | 79 | E_CAST( 9,k,r,l,+,^,-); |
82 | E_CAST(10,k,l,r,^,-,+); | 80 | E_CAST(10,k,l,r,^,-,+); |
83 | E_CAST(11,k,r,l,-,+,^); | 81 | E_CAST(11,k,r,l,-,+,^); |
84 | E_CAST(12,k,l,r,+,^,-); | 82 | if(!key->short_key) |
85 | E_CAST(13,k,r,l,^,-,+); | 83 | { |
86 | E_CAST(14,k,l,r,-,+,^); | 84 | E_CAST(12,k,l,r,+,^,-); |
87 | E_CAST(15,k,r,l,+,^,-); | 85 | E_CAST(13,k,r,l,^,-,+); |
86 | E_CAST(14,k,l,r,-,+,^); | ||
87 | E_CAST(15,k,r,l,+,^,-); | ||
88 | } | ||
88 | 89 | ||
89 | data[1]=l&0xffffffffL; | 90 | data[1]=l&0xffffffffL; |
90 | data[0]=r&0xffffffffL; | 91 | data[0]=r&0xffffffffL; |
91 | } | 92 | } |
92 | 93 | ||
93 | void CAST_decrypt(data,key) | 94 | void CAST_decrypt(CAST_LONG *data, CAST_KEY *key) |
94 | CAST_LONG *data; | ||
95 | CAST_KEY *key; | ||
96 | { | 95 | { |
97 | register CAST_LONG l,r,*k,t; | 96 | register CAST_LONG l,r,*k,t; |
98 | 97 | ||
@@ -100,10 +99,13 @@ CAST_KEY *key; | |||
100 | l=data[0]; | 99 | l=data[0]; |
101 | r=data[1]; | 100 | r=data[1]; |
102 | 101 | ||
103 | E_CAST(15,k,l,r,+,^,-); | 102 | if(!key->short_key) |
104 | E_CAST(14,k,r,l,-,+,^); | 103 | { |
105 | E_CAST(13,k,l,r,^,-,+); | 104 | E_CAST(15,k,l,r,+,^,-); |
106 | E_CAST(12,k,r,l,+,^,-); | 105 | E_CAST(14,k,r,l,-,+,^); |
106 | E_CAST(13,k,l,r,^,-,+); | ||
107 | E_CAST(12,k,r,l,+,^,-); | ||
108 | } | ||
107 | E_CAST(11,k,l,r,-,+,^); | 109 | E_CAST(11,k,l,r,-,+,^); |
108 | E_CAST(10,k,r,l,^,-,+); | 110 | E_CAST(10,k,r,l,^,-,+); |
109 | E_CAST( 9,k,l,r,+,^,-); | 111 | E_CAST( 9,k,l,r,+,^,-); |
@@ -121,20 +123,15 @@ CAST_KEY *key; | |||
121 | data[0]=r&0xffffffffL; | 123 | data[0]=r&0xffffffffL; |
122 | } | 124 | } |
123 | 125 | ||
124 | void CAST_cbc_encrypt(in, out, length, ks, iv, encrypt) | 126 | void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, |
125 | unsigned char *in; | 127 | CAST_KEY *ks, unsigned char *iv, int enc) |
126 | unsigned char *out; | ||
127 | long length; | ||
128 | CAST_KEY *ks; | ||
129 | unsigned char *iv; | ||
130 | int encrypt; | ||
131 | { | 128 | { |
132 | register CAST_LONG tin0,tin1; | 129 | register CAST_LONG tin0,tin1; |
133 | register CAST_LONG tout0,tout1,xor0,xor1; | 130 | register CAST_LONG tout0,tout1,xor0,xor1; |
134 | register long l=length; | 131 | register long l=length; |
135 | CAST_LONG tin[2]; | 132 | CAST_LONG tin[2]; |
136 | 133 | ||
137 | if (encrypt) | 134 | if (enc) |
138 | { | 135 | { |
139 | n2l(iv,tout0); | 136 | n2l(iv,tout0); |
140 | n2l(iv,tout1); | 137 | n2l(iv,tout1); |