summaryrefslogtreecommitdiffstats
path: root/crypto/seed/seed_cfb.c
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2008-12-23 11:33:01 +0000
committerAndy Polyakov <appro@openssl.org>2008-12-23 11:33:01 +0000
commit5d48a66a6a4bc27b54d32721f7183077489c2e5f (patch)
tree27b158f856e0636bf349375c047a38b1fc97ee7c /crypto/seed/seed_cfb.c
parent63fc7f848d4e047c3bd0f4a1c7e843191b2e9f0a (diff)
Engage crypto/modes.
Diffstat (limited to 'crypto/seed/seed_cfb.c')
-rw-r--r--crypto/seed/seed_cfb.c34
1 files changed, 3 insertions, 31 deletions
diff --git a/crypto/seed/seed_cfb.c b/crypto/seed/seed_cfb.c
index 07d878a788..694597dd06 100644
--- a/crypto/seed/seed_cfb.c
+++ b/crypto/seed/seed_cfb.c
@@ -105,40 +105,12 @@
* [including the GNU Public Licence.]
*/
-#include "seed_locl.h"
-#include <string.h>
+#include <openssl/seed.h>
+#include <openssl/modes.h>
void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out,
size_t len, const SEED_KEY_SCHEDULE *ks,
unsigned char ivec[SEED_BLOCK_SIZE], int *num, int enc)
{
- int n;
- unsigned char c;
-
- n = *num;
-
- if (enc)
- {
- while (len--)
- {
- if (n == 0)
- SEED_encrypt(ivec, ivec, ks);
- ivec[n] = *(out++) = *(in++) ^ ivec[n];
- n = (n+1) % SEED_BLOCK_SIZE;
- }
- }
- else
- {
- while (len--)
- {
- if (n == 0)
- SEED_encrypt(ivec, ivec, ks);
- c = *(in);
- *(out++) = *(in++) ^ ivec[n];
- ivec[n] = c;
- n = (n+1) % SEED_BLOCK_SIZE;
- }
- }
-
- *num = n;
+ CRYPTO_cfb128_encrypt(in,out,len,ks,ivec,num,enc,(block128_f)SEED_encrypt);
}